Назад | Перейти на главную страницу

Настройка аутентификации LDAPS в Zabbix

Я пытаюсь настроить аутентификацию LDAPS на Zabbix 2.4, но это не работает. Вот информация о моей конфигурации:

ldapsearch -H ldaps: //ldaps.mptest.be: 636 -D cn = reader, dc = antidot, dc = prv -W -b ou = people, dc = antidot, dc = prv

Тот же URI, OU, логин, пароль на странице настройки аутентификации LDAP на zabbix, у меня это:

ldap_bind (): невозможно выполнить привязку к серверу: невозможно связаться с сервером LDAP

[authentication.php: 120 → CLdapAuthValidator-> validate () → CLdap-> checkPass () → ldap_bind () в /usr/share/zabbix/include/classes/ldap/CLdap.php:112] LDAP: невозможно выполнить привязку по заданному Привязать DN. Логин или пароль неверны!

Вот содержимое /etc/ldap/ldap.conf: TLS_REQCERT allow BASE dc=antidot,dc=prv URI ldaps://ldap.mptest.be TLS_CACERTDIR /etc/ssl/mptest/wildcard_mptest_be.ca

(Аутентификация без SSL, на порт 386 невозможна)

Это то, что работает в Ubuntu 14.04. Система на основе Debian должна быть такой же:

https://www.novell.com/coolsolutions/tip/5838.html

Откровенно говоря, LDAP PHP - чистая чушь. Некоторое время назад я тоже боролся с Zabbix и LDAPS. Вы можете сделать все на 100% правильно, но все равно ничего не получится. Так что не беспокойтесь, проблема здесь не на вашей стороне.

Чтобы это заработало, вам нужно отключить проверку сертификатов TLS / SSL в OpenLDAP. LDAP PHP использует библиотеки OpenLDAP, и поэтому /etc/openldap/ldap.conf или ~/.ldaprc загружены и имеют значение. (Это можно увидеть, используя пример запроса PHP LDAP и запустив его с strace -e trace=open php example.php). Проблема здесь, похоже, находится в области использования PHP библиотек OpenLDAP, некоторые отсутствующие / неправильные / не реализованные вызовы для успешной проверки сертификата TLS. Для исправления этого потребуется исправление PHP.

TLS_REQCERT never должен быть параметром, необходимым для этого. Настройки URL и OU / DC в ldap.conf не должны иметь значения, поскольку они предоставляются из конфигурации Zabbix. Я настоятельно рекомендую изменить это в ~/.ldaprc домашнего каталога вашего веб-сервера, чтобы не влиять на другие приложения, использующие LDAPS.

Это решение не очень хорошее, но все же лучше, чем возврат к незашифрованному LDAP. И чтобы уточнить, я попробовал вручную разместить CACerts для OpenLDAP, регенерировать кеш сертификатов и настроить TLS_REQCERT к always. Это отлично работало, например, ldapsearch (использует ту же библиотеку, что и PHP), но по-прежнему не работает с функцией LDAP PHP. Так что эта попытка, скорее всего, будет пустой тратой времени. Ставить клиентский сертификат и пользоваться не пробовал TLS_KEY/TLS_CERT как указано в ответе от @jouflux. Если это сработает, это будет лучшим решением.

Я решил эту проблему, посетив веб-интерфейс Zabbix, а затем перейдя в Администрация -> Аутентификация -> LDAP и изменение Хост LDAP параметр из имени хоста (например, ldap.example.com) на свой IP-адрес (например, 10.6.10.10).