Ldap

帶有 haproxy 的 openldap -(ldap_result() 失敗:無法聯繫 LDAP 伺服器)

  • July 12, 2018

我在通過 haproxy 代理的 openldap 遇到問題。身份驗證在 CentOS (7.5.1804) 和 Debian (9.4) 上執行良好。唯一的問題是我在 syslog 和 authlog 中遇到錯誤:

中央作業系統:

nslcd[10082]: [9f6e5f] ldap_result() failed: Can't contact LDAP server

Debian:

nscd: nss_ldap: reconnected to LDAP server ldap://haproxy.exemple.com after 1 attempt

當我從以下配置將 LDAP 端點直接更改為任何 ldap 伺服器時,整個問題就消失了:

全球的
登錄 127.0.0.1 本地 3
pidfile /var/run/haproxy.pid
chroot /var/lib/haproxy
麥克康8192
使用者代理
組代理
守護程序
stats socket / var / lib / haproxy / stats
tune.ssl.default-dh-param 2048

前端 ldap_service_front
模式 tcp
綁定 10.0.0.2:389
描述 LDAP 服務
選項套接字統計
選項 tcpka
客戶端超時 10s
default_backend ldap_service_back



後端 ldap_service_back
伺服器 ldap01 10.0.0.3:389 檢查下降 3 上升 5 國際 5000 重量 10
伺服器 ldap02 10.0.0.4:389 檢查下降 3 上升 5 國際 5000 重量 10
伺服器 ldap03 10.0.0.5:389 檢查下降 3 上升 5 國際 5000 重量 10
伺服器 ldap04 10.0.0.6:389 檢查下降 3 上升 5 國際 5000 重量 10



模式 tcp
平衡最小連接
stick-table 類型 ip 大小 200k 過期 30m
伺服器超時 12s
超時連接10s
選項 tcpka
選項 tcp 檢查
tcp-check 連接埠 389
tcp-check 發送二進制 300c0201
tcp-check 發送二進制 01
tcp 檢查發送二進制 6007
tcp 檢查發送二進制 0201
tcp-check 發送二進制 03
tcp-check 發送二進制 04008000
tcp-check 期望二進制 0a0100
tcp-check 發送二進制 30050201034200



前端 ldaps_service_front
模式 tcp
綁定 10.0.0.2:636 ssl crt /etc/haproxy/ssl/chain.pem no-sslv3 no-tlsv10
描述 LDAPS 服務
選項套接字統計
選項 tcpka
客戶端超時 10s
default_backend ldaps_service_back



後端 ldaps_service_back
伺服器 ldap01 10.0.0.3:636 檢查 ssl 驗證無下降 3 上升 5 國際 5000 重量 10
伺服器 ldap02 10.0.0.4:636 檢查 ssl 驗證無下降 3 上升 5 國際 5000 重量 10
伺服器 ldap03 10.0.0.5:636 檢查 ssl 驗證無下降 3 上升 5 國際間 5000 重量 10
伺服器 ldap04 10.0.0.6:636 檢查 ssl 驗證無下降 3 上升 5 國際 5000 重量 10



模式 tcp
平衡最小連接
伺服器超時 12s
超時連接10s
選項 tcpka
選項 tcp 檢查
tcp-check 連接埠 636 ssl
tcp-check 發送二進制 300c0201
tcp-check 發送二進制 01
tcp 檢查發送二進制 6007
tcp 檢查發送二進制 0201
tcp-check 發送二進制 03
tcp-check 發送二進制 04008000
tcp-check 期望二進制 0a0100
tcp-check 發送二進制 30050201034200

所以,我的問題是:我是否錯過了 haproxy 配置中的某些內容?我試圖設置idle_timelimitin nslcd.conf,但它根本沒有幫助。

更多可能有幫助的細節:

haproxy:HA-Proxy 版本 1.8.12-1~bpo9+1
openldap:slapd 2.4.44
nslcd:nss-pam-ldapd 0.8.13
frontend ldap_service_front   
  timeout client        10s

可能會導致空閒斷開連接。

如果您將 nslcd 設置為idle_timelimit小於timeout clienthaproxy,則不應收到這些消息。

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