Amazon-Web-Services
什麼可能導致 LDAP 拒絕來自某些但不是所有來源的連接?(不是防火牆)
我正在將伺服器遷移到新的基礎架構,並且必須再次設置 LDAP。它不是用於訪問伺服器,而是作為我們網站上的使用者儲存庫,供我們的 BI 平台訪問。
LDAP 已啟動並正在執行,我可以在辦公室的電腦上使用 LDAP 管理員進行連接和綁定,不用擔心。
我不能做的是讓 Drupal(在同一台伺服器上)或 YellowFin(不同伺服器同一集群上的 java 應用程序)綁定。我很確定他們正在連接,但沒有綁定,而且我在所有三個地方都使用完全相同的憑據。
我從 Drupal 得到的唯一錯誤是:
Failed to bind to server. ldap error #82 Success
Yellowfin 提供了更多資訊(我認為;辨識數據已編輯):
YF:2015-05-08 01:54:26:DEBUG (LDAPUtil:createConnection) - Opening connection to xx.xx.xx.xx on port 636 YF:2015-05-08 01:54:26:DEBUG (JNDILDAPProvider:authenticate) - Connecting: ldaps://xx.xx.xx.xx:636 YF:2015-05-08 01:54:26:DEBUG (JNDILDAPProvider:authenticate) - User: cn=admin,dc=xxxxxxxxxxx,dc=com,dc=au YF:2015-05-08 01:54:26:ERROR (LDAPUtil:createConnection) - LDAP authentication failed YF:2015-05-08 01:54:26:ERROR (LDAPUtil:createConnection) - LDAP authentication failed YF:2015-05-08 01:54:26:ERROR (LDAPUtil:testConnection) - LDAP connection failed YF:2015-05-08 01:54:26:DEBUG (DSTCache:getJavaTimeZoneID) - Invalid TimeZoneCode passed. Value was ASIA/ABU_DHABI YF:2015-05-08 01:54:27:DEBUG (MIImageAction:execute) - MIImageAction entered
我想知道時區錯誤是否是一個問題,也許?
slapd 服務正在監聽 636 埠上的所有 IP,相關
netstat
結果:Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN 9150/slapd tcp6 0 0 :::636 :::* LISTEN 9150/slapd
我們正在使用 AWS,我嘗試在埠 636 上完全打開安全組(防火牆),但沒有任何結果。
ldap.conf 看起來像這樣:
# See ldap.conf(5) for details # This file should be world readable but not world writable. BASE dc=intermedium,dc=com,dc=au #URI ldap://ldap.example.com ldap://ldap-master.example.com:666 URI ldap://127.0.0.1 ldaps://xxxxxxxxxxxxxxxxx #SIZELIMIT 12 #TIMELIMIT 15 #DEREF never TLS_CACERTDIR /etc/openldap/certs TLSCACertificateFile /etc/pki/tls/certs/xxxxxxxxxxxxxxxxx.ca-bundle TLSCertificateFile /etc/pki/tls/certs/xxxxxxxxxxxxxxxxx.crt TLSCertificateKeyFile /etc/pki/tls/certs/xxxxxxxxxxxxxxxxx.key TLS_REQCERT allow REFERRALS off # Turning this off breaks GSSAPI used with krb5 when rdns = false #SASL_NOCANON on
slapd.conf 看起來像這樣:
# OpenLDAP server configuration # see 'man slapd' for additional information # Where the server will run (-h option) # - ldapi:/// is required for on-the-fly configuration using client tools # (use SASL with EXTERNAL mechanism for authentication) # - default: ldapi:/// ldap:/// # - example: ldapi:/// ldap://127.0.0.1/ ldap://10.0.0.1:1389/ ldaps:/// SLAPD_URLS="ldapi:/// ldaps:///" # Any custom options #SLAPD_OPTIONS="" # Keytab location for GSSAPI Kerberos authentication #KRB5_KTNAME="FILE:/etc/openldap/ldap.keytab"
我將非常感謝任何建議。
非常感謝@strongline 和@Craig Miskell 為我指明了一個方向,最後這是兩個不同的錯誤,我將把它們放在這里以防其他人發現這很有用。
德魯巴:
綁定失敗是因為源站點啟用了 Blowfish 加密,而目標伺服器沒有安裝 php-mcrypt mod,即使我更新了密碼,它仍然嘗試使用 Blowfish 加密作為綁定密碼。安裝 php-mcrypt 解決了這個問題。
黃鰭(Java):
YellowFin 需要 LDAP 伺服器的證書和 Java 密鑰庫中的鏈。要修復,請為 LDAP 伺服器找到或製作證書,然後按照Stack Overflow answer上的說明進行操作。