Связываем FreePBX и Active Directory

Posted by

В продолжении заметки где на практическом примере показал, как развернуть на Ubuntu Trusty я хочу чтобы авторизация на сервере АТС происходила с использования единой базы учетных записей по аналогии, как у меня работает на системе мониторинга Zabbix, OpenFire.

Тестовое окружение: (после успешных шагов ниже все было перенесено на боевое)

  • Mikrotik (Для выхода в интернет из локальной сети)
  • AD (Домен контроллер в локальной сети под управлением Windows Server 2012 R2 Standard)
  • FreePBX (Ubuntu Trusty Server amd64)

Подключаюсь к серверу FreePBX посредством SSH:

Текущая схема аутентификации:

ekzorchik@srv-trusty:~$ sudo fwconsole userman --list

[sudo] password for ekzorchik:

+----+------------------------+

| ID | Name |

+----+------------------------+

| 1 | PBX Internal Directory |

ekzorchik@srv-trusty:~$ sudo nano /etc/hosts

10.9.9.130 srv-trusty.polygon.local srv-trusty

10.9.9.181 srv-dc.polygon.local srv-dc

ekzorchik@srv-trusty:~$ sudo nano /etc/hostname

srv-trusty.polygon.local

Чтобы увидеть другие схемы аутентификации посредством которых можно настроить связку:

ekzorchik@srv-trusty:~$ php --version

PHP 5.5.9-1ubuntu4.21 (cli) (built: Feb 9 2017 20:54:58)

Copyright (c) 1997-2014 The PHP Group

Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies

with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

ekzorchik@srv-trusty:~$ apt-cache search php5-ldap

php5-ldap - LDAP module for php5

ekzorchik@srv-trusty:~$ sudo apt-get install php5-ldap -y

ekzorchik@srv-trusty:~$ sudo apt-get update && sudo apt-get -f install

ekzorchik@srv-trusty:~$ sudo apt-get install php5-ldap -y

ekzorchik@srv-trusty:~$ sudo amportal restart

ekzorchik@srv-trusty:~$ sudo service apache2 restart

ekzorchik@srv-trusty:~$ sudo reboot

Возвращаюсь к URL странице http://IP&DNS — Admin — User Manager, вкладка Directories — Add

По дефолту режим аутентификации это внутренний режим FreePBX Internal Directory, мне же нужно связать FreePBX и Active Directory, а потому изменяю:

  • : Microsoft Active Directory
  • Directory Name: AD
  • Enable Directory: Yes
  • Synchronize: 1 Hour
  • Secure Connection Type: None
  • Host: 10.9.9.181
  • Port: 389
  • Username: ad
  • Password: Aa1234567
  • Domain: polygon.local
  • Base DN: dc=polygon,dc=local
  • User object attribue: (&(objectCategory=Person)(sAMAccountName=*))

остальные настройки оставляю как есть и нажимаю Submit (браузер Google Chrome на .5 Desktop amd64).

На заметку: данный доменный пользователь ad@polygon.local все лишь состоит в группе «Пользователи домена»

На заметку: заострять внимание на полях связи AD и FreePBX выше не имею надобности, все понятно кто администрирует Active Directory. У меня по крайней мере это не вызвало трудностей все интуитивно понятно.

Теперь нужно изменить какой тип аутентификации будет дефолтным, сейчас все еще PBX Internal Directory. Выделяю созданный тип аутентификации и ставлю галочку в колонке Default:

Изменяю тип аутентификации во FreePBX с локального на Active Directory

Проверить что данная настройка активирована, нужно зайти в нее в режим редактирования и посмотреть на поле Status должна быть надпись: Connected

Также можно проверить, а видит ли система FreePBX доменные учетные записи. Для этого все также находясь в модуле User Manager перейдем из вкладки Directories во вкладку Users и вот ответ должны быть перечислены списком все учетные записи домена:

FreePBX через модуль User Manager видит всех доменных пользователей

 

Также и с группами домена если перейти во вкладку Groups модуля User Manager.

Теперь нужно добавить администратора в систему, т. е. Что доменная учетная запись при авторизации во FreePBX будет обладать полным правами на цифровой АТС. Все также находясь в модуле User Manager, но уже вкладки Users находим того доменного пользователя которому хотим представить доступ. К примеру это моя учетная запись:

Открываем "Редактировать" у пользователя которому хотим предоставить доступ в FreePBXЗатем переходим на вкладку → FreePBX Administration GUI и приводим настройки к следующему виду:

Настройка полный прав для доменного пользователя во FreePBX

и нажимаем в правом нижнем углу кнопку Submit

Теперь проверяем, как отработает доменная авторизация во FreePBX

http://IP&DNS/admin/config.php → нажимаю на иконку с подписью FreePBX Administration и указываю доменные данные:

  • Username: alexander.ollo
  • Pass: 712mbddr@

и нажимаю кнопку Continue, после чего я проваливаюсь в Web-интерфейс цифровой АТС FreePBX релиз 13.0.192.19 и для меня доступны все модули и настройки также как и если бы я подключился через локальные учетные данные, а не доменные.

Если очень нужно чтобы изменения во FreePBX отобразились прямо сейчас, а до начала репликации еще много времени, тем более что она выполняется каждый час, можно запустить репликацию вручную через консоль:

ekzorchik@srv-trusty:~$ sudo fwconsole userman --list

+----+------------------------+

| ID | Name |

+----+------------------------+

| 1 | PBX Internal Directory |

| 2 | AD |

+----+------------------------+

ekzorchik@srv-trusty:~$ sudo fwconsole userman --sync 2 --force

Starting Sync on directory 'AD'...

Finished

Также можно указать ключ вывода на консоль полного лога репликации:

ekzorchik@srv-trusty:~$ sudo fwconsole userman --sync 2 --force --verbose

Итого я разобрал для себя, как настроить доменную авторизацию во FreePBX, как и ранее я делал с Zabbix, OpenFire. Вот что значит знание и практика.

Что еще хотелось бы добавить:

  • Сейчас работает как локальная авторизация
  • Сейчас работает доменная авторизация

Первый вариант можно оставить на случай какого-либо чрезвычайного происшествия, к примеру домен не будет доступен и т. д.

Также если все же хочется оставить только одну авторизации то в модуле User Manager удаляем: PBX Internal Directory А после перейдя: Admin — Administrators — отобразить всех, выделив локального пользователя нажимаем Delete. Но я бы все же оставил две авторизации, а от локальной знал бы логин и пароль только я сам. Я верю только если все сделал сам то сам и администрируешь и не использовать облачные ресурсы где нет доступа к логам, к настройкам серверной части и т.д.

Теперь все гораздо прозрачнее в моей подконтрольной сети. Авторизаций рулит домен контроллер. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.