Amazon-Web-Services

什麼可能導致 LDAP 拒絕來自某些但不是所有來源的連接?(不是防火牆)

  • May 16, 2015

我正在將伺服器遷移到新的基礎架構,並且必須再次設置 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上的說明進行操作。

引用自:https://serverfault.com/questions/690508