В продолжении заметки где на практическом примере показал, как развернуть FreePBX на Ubuntu Trusty я хочу чтобы авторизация на сервере АТС происходила с использования единой базы учетных записей Active Directory по аналогии, как у меня работает на системе мониторинга 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, а потому изменяю:
Directory Type: 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 на Ubuntu 14.04.5 Desktop amd64).
На заметку: данный доменный пользователь ad@polygon.local
все лишь состоит в группе «Пользователи домена
»
На заметку: заострять внимание на полях связи AD и FreePBX выше не имею надобности, все понятно кто администрирует Active Directory. У меня по крайней мере это не вызвало трудностей все интуитивно понятно.
Теперь нужно изменить какой тип аутентификации будет дефолтным, сейчас все еще PBX Internal Directory. Выделяю созданный тип аутентификации и ставлю галочку в колонке Default:
Проверить что данная настройка активирована, нужно зайти в нее в режим редактирования и посмотреть на поле Status должна быть надпись: Connected
Также можно проверить, а видит ли система FreePBX доменные учетные записи. Для этого все также находясь в модуле User Manager перейдем из вкладки Directories во вкладку Users и вот ответ должны быть перечислены списком все учетные записи домена:
Также и с группами домена если перейти во вкладку Groups модуля User Manager.
Теперь нужно добавить администратора в систему, т. е. Что доменная учетная запись при авторизации во FreePBX будет обладать полным правами на цифровой АТС. Все также находясь в модуле User Manager, но уже вкладки Users находим того доменного пользователя которому хотим представить доступ. К примеру это моя учетная запись:
Затем переходим на вкладку → FreePBX Administration GUI и приводим настройки к следующему виду:
и нажимаем в правом нижнем углу кнопку 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.