
Zabbix 2.4 で LDAPS 認証を設定しようとしましたが、機能しません。設定に関する情報は次のとおりです。
- OS: デビアン
インストールされている PHP パッケージ:
libapache2-mod-php5 php-pear php5 php5-cli php5-common php5-curl php5-gd php5-imagick php5-json php5-ldap php5-mysqlnd php5-pgsql php5-readline php5-sasl zabbix-frontend-php
このコマンドは動作しています:
ldapsearch -H ldaps://ldaps.mptest.be:636 -D cn=reader,dc=antidot,dc=prv -W -b ou=people,dc=antidot,dc=prv
Zabbix の認証 LDAP セットアップ ページに同じ URI、OU、ログイン、パスワードがあります。
ldap_bind(): サーバーにバインドできません: LDAP サーバーに接続できません
[authentication.php:120 → CLdapAuthValidator->validate() → CLdap->checkPass() → ldap_bind() in /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での認証は不可能です)
答え1
これは Ubuntu 14.04 で動作するものです。Debian ベースのシステムでも同様です。
答え2
私はZabbixのウェブインターフェースにアクセスし、管理->認証->LDAP のそして、LDAPホストパラメータをホスト名 (例: ldap.example.com
) から IP アドレス (例: 10.6.10.10
) に変更します。
答え3
PHP の LDAP は、率直に言って、まったくの駄作です。少し前に、私も Zabbix と LDAPS で苦労しました。すべてを 100% 正しく実行しても、やはり失敗します。ですから、心配しないでください。ここでの問題は、あなたの側にあるのではありません。
これを機能させるには、OpenLDAP で TLS/SSL 証明書の検証を無効にする必要があります。PHP の LDAP は OpenLDAP ライブラリを使用するため、または/etc/openldap/ldap.conf
が~/.ldaprc
ロードされ、問題となります。(これは、PHP LDAP クエリの例を使用して、 で実行することで確認できますstrace -e trace=open php example.php
)。ここでの問題は、PHP による OpenLDAP ライブラリの使用領域にあるようで、TLS 証明書の検証を成功させるための呼び出しが欠落している、間違っている、または実装されていない可能性があります。これを修正するには、PHP にパッチを当てる必要があります。
TLS_REQCERT never
は、これを実行するために必要なパラメータです。ldap.conf の URL と OU/DC 設定は、Zabbix 構成から提供されるため、関係ありません。LDAPS を~/.ldaprc
使用する他のアプリケーションに影響を与えないように、Web サーバーのホーム ディレクトリでこれを変更することを強くお勧めします。
この解決策は良いものではありませんが、暗号化されていない LDAP にフォールバックするよりはましです。念のため、OpenLDAP の CACerts を手動で配置し、証明書キャッシュを再生成してTLS_REQCERT
に設定してみましたalways
。これは、たとえば (PHP と同じライブラリを使用) を使用するとうまくいきましたldapsearch
が、PHP の LDAP 機能では失敗しました。したがって、この試みはおそらく時間の無駄になるでしょう。@jouflux の回答に示されているように、クライアント証明書を配置して使用することは試みませんでしたTLS_KEY/TLS_CERT
。それが機能する場合は、より良い解決策になります。