Авторизация через LDAP Active Directory в Zabbix вещь удобная, поскольку позволяет использовать один логин для входа как в систему так и в веб-интерфейс мониторинга. В данной статье заметка как сделать это максимально безопасно.
Что такое Zabbix и как его установить в Ubuntu показано в этом курсе.
Пользователь для локального входа в Zabbix
Одной из ошибок может стать перевод всех пользователей Zabbix на авторизацию в AD. Иногда могут случится непредвиденные обстоятельства с доменом или с самим сервером мониторинга, которые не позволят авторизоваться через LDAP. Чтобы это не стало проблемой необходимо предусмотреть сервисную учетную запись, с которой вы всегда сможете войти в Zabbix и что-то исправить.
Для этих целей сделайте отдельную группу, например LocalZabbix_Admins, в свойствах которой установите параметр Frontend Access в значение Internal

Затем создайте отдельного пользователя с административными привилегиями и добавьте его в эту группу.
Настройка аутентификации Zabbix в Active Directory
Для начала необходимо создать обычного пользователя в AD, для того, чтобы службы Zabbix через эту учетную запись могли делать запросы к LDAP службе домена.
Затем в разделе Administration\Authentification перейдите на вкладку LDAP Settings и укажите параметры:
- LDAP Host — адрес контроллера домена;
- Port — порт службы LDAP 389 или 636 если используете зашифрованный LDAPs;
- Base DN — базовый корень поиска учетных записей для авторизации, можно сузить до конкретной OU при необходимости;
- Search attribute — атрибут по которому будет происходить поиск учетной записи в LDAP для авторизации. В случае с AD укажите sAMAccountName;
- Bind DN — DN пользователя от имени которого будет происходить работа с LDAP для поиска и авторизации учетных записей;
- Bind Password — пароль указанной выше учетной записи;
- Test authentication — после заполнения всех полей правильными данными можно протестировать работоспособность связки указанием логина и пароля из домена.

Настоятельно рекомендуется использовать для аутентификации в рабочем домене протокол LDAPS, он как правило по умолчанию включен на контроллере домена, либо настраивается с использованием локального Центра Сертификации в несколько кликов мышкой.
Без использования LDAPS все данные аутентификации, включая пароли учетных записей, передаются в открытом виде и могут быть легко скомпрометированы!
Обратите внимание, что для использования LDAPS необходимо указывать хост с протоколом, так же в строке хоста можно указать и порт.
Не работает аутентификация LDAPS в Zabbix на Ubuntu
В моем случае прямое указание в настройках Zabbix не позволило подключится к AD по защищенному протоколу LDAPS. Может помочь следующая манипуляция: в файле /etc/ldap/ldap.conf добавить следующую строчку:
TLS_REQCERT allow
В качестве дополнительной альтернативы можно попробовать прописать корневой сертификат доменного центра сертификации в доверенные на сервере мониторинга Zabbix. Идея тут в том, что LDAPS использует для работы сертификат подписанный доменным центром сертификации (если он у вас имеется). Добавив сертификат ЦС в доверенные вы обеспечите прохождение валидации сертификата контроллера домена на сервере Zabbix. Подробнее о том как это сделать писал тут. В любом случае сделать это будет не лишним для дальнейшей работы.
Добавление пользователей из домена в Zabbix
Для того, чтобы аутентифицироваться в Web-интерфейсе Zabbix под доменным пользователем необходимо сначала добавить обычного пользователя в настройках.

В качестве Alias необходимо указать логин пользователя в домене, остальные данные как обычно. Пароль при авторизации не используется, но эти поля обязательны к заполнению.Группы согласно необходимости.
После всех настроек необходимо переключить режим аутентификации по умолчанию на LDAP

Если вы все сделали правильно то после этих манипуляций вы сможете войти в WEB-интерфейс Zabbix с доменным пользователем, которого добавили. Для безопасности не забудьте настроить веб-сервер на использование HTTPS.
В дополнение к данной теме:
Создание SSL сертификата в Linux подписанного доменным центром сертификации.
Ошибки, опечатки, критика, дополнения — прошу в комментарии!







