OpenLDAP 與 StartTLS 在 Debian Lenny 上被破壞

OpenLDAP 與 StartTLS 在 Debian Lenny 上被破壞

我正在嘗試讓 Lenny 上的 OpenLDAP 與 StartTLS 一起使用。我有一台 Fedora 13 機器,我將其用作測試客戶端。到目前為止,當我嘗試使用 ldapsearch 進行連線時,Fedora 用戶端忽略 /etc/ldap.conf 中的「host」指令。即使我在使用 ldapsearch 時指定 -H ldaps://server.name,客戶端仍希望連線到 127.0.0.1:389。客戶端電腦上的 /etc/ldap.conf 處於模式 444。

但即使當我嘗試從 ssh 會話本地連接時,我也會看到以下錯誤: ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)

有人用線索打了我,請你。

更新:您必須使用 ~/.ldaprc 進行「主機」等設定。另外,我剛剛對 ldap 伺服器使用了 nmap,它顯示 636 和 389 處於開啟狀態。

這是我嘗試連接時打印到螢幕上的內容,ldapsearch -ZZ –x '(objectclass=*)'+ -d -1

ldap_創建
ldap_擴充_操作_s
ldap_擴充_操作
ldap_send_initial_request ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host:TCP 192.168.10.41:636
ldap_new_socket:3
ldap_prepare_socket:3
ldap_connect_to_host:試試 192.168.10.41:636
ldap_pvt_connect:fd:3 tm:-1非同步:0
ldap_open_defconn:成功
ldap_發送_伺服器_請求
ber_scanf fmt ({it) ber:
ber_dump: buf=0x9bdbdb8 ptr=0x9bdbdb8 end=0x9bdbdd7 len=31
  0000: 30 1d 02 01 01 77 18 80 16 31 2e 33 2e 36 2e 31 0....w...1.3.6.1  
  0010: 2e 34 2e 31 2e 31 34 36 36 2e 32 30 30 33 37 .4.1.1466.20037   
ber_scanf fmt({) 誤碼:
ber_dump: buf=0x9bdbdb8 ptr=0x9bdbdbd 結束=0x9bdbdd7 len=26
  0000:77 18 80 16 31 2e 33 2e 36 2e 31 2e 34 2e 31 2e w...1.3.6.1.4.1。  
  0010: 31 34 36 36 2e 32 30 30 33 37 1466.20037        
ber_flush2: 31 位元組到 sd 3
  0000: 30 1d 02 01 01 77 18 80 16 31 2e 33 2e 36 2e 31 0....w...1.3.6.1  
  0010: 2e 34 2e 31 2e 31 34 36 36 2e 32 30 30 33 37 .4.1.1466.20037   
ldap_write:想要=31,寫入=31
  0000: 30 1d 02 01 01 77 18 80 16 31 2e 33 2e 36 2e 31 0....w...1.3.6.1  
  0010: 2e 34 2e 31 2e 31 34 36 36 2e 32 30 30 33 37 .4.1.1466.20037   
ldap_result ld 0x9bd3050 msgid 1
wait4msg ld 0x9bd3050 msgid 1(無限超時)
wait4msg continue ld 0x9bd3050 msgid 1 全部 1
** ld 0x9bd3050 連接:
* 主機:192.168.10.41 連接埠:636(預設)
  refcnt:2 狀態:已連接
  最後使用時間: 2010 年 6 月 6 日星期日 12:54:05


** ld 0x9bd3050 未完成的請求:
 * msgid 1,origid 1,狀態進行中
   未完成推薦 0,家長人數 0
  ld 0x9bd3050 請求計數1(廢棄0)
** ld 0x9bd3050 回應佇列:
   空的
  ld 0x9bd3050 回應計數 0
ldap_chkResponseList ld 0x9bd3050 msgid 1 全部 1
ldap_chkResponseList 回傳 ld 0x9bd3050 NULL
ldap_int_select
read1msg: ld 0x9bd3050 msgid 1 全部 1
ber_get_next
ldap_read:想要=8,得到=0

ber_get_next 失敗。
ldap_err2字串
ldap_start_tls:無法聯繫 LDAP 伺服器 (-1)

答案1

預設情況下,客戶端檢查伺服器的憑證。只需將“TLS_REQCERT never”新增至 /etc/openldap/ldap.conf

答案2

我最近成功地讓 SSL 與 Lenny 上的 SLAPD 一起工作。雖然我不記得我到底做了什麼,但我確實記得它與 GNUTLS 和 OPENSSL 之間的密碼差異有關。 Lenny 的 SLAPD 套件是根據 GNUTLS 編譯的。可能與以下有關

答案3

看起來無法讀取密鑰檔。您應該有一個無密碼的密鑰。將 openldap 新增到 ssl-cert 群組。將金鑰 ssl-cert 分組,權限為 440。

答案4

如果您有一個由中間憑證簽署的 SSL 憑證(這在當今並不罕見),您將在 Lenny 下的 slapd 中遇到 TLS 問題。正如 sybreon Lenny slapd 與 GNUTLS 連結所提到的,它不支援您需要的所有選項。

解決方案是使用 slapd 的 Lenny 向後移植。然而我們發現2.4.17-2.1~bpo50+1反向移植針對libdb4.6進行編譯,其中存在一個錯誤,在運行大約一周後影響了我們。

因此,如果您需要 TLS,此時我不建議使用 Lenny 來運行 slapd。升級為擠壓。

相關內容