Openldap

在 ldap-2.4 中啟用 TLS 後無法使用外部身份驗證

  • May 17, 2020

我使用以下 LDIF 文件來啟動 LDAP 伺服器的 TLS 支持:

dn: cn=config
changetype: modify
add: olcTLSCipherSuite
olcTLSCipherSuite: NORMAL 
-
add: olcTLSCRLCheck
olcTLSCRLCheck: none
-
add: olcTLSVerifyClient
olcTLSVerifyClient: never
-
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/CA.crt
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/server.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/key.pem

並通過以下 LDIF 強制客戶端連接使用 TLS:

dn: cn=config
changetype: modify
add: olcSecurity
olcSecurity: tls=1

在此之後,我不能再使用“-Y EXTERNAL”來讀取或修改配置模式。例如,如果我執行,我會收到 SASL 錯誤:

$ sudo ldapsearch -Q -Y EXTERNAL -H ldapi:/// -b "" -LLL -s base -Z supportedSASLMechanisms
ldap_sasl_interactive_bind_s: Authentication method not supported (7)
   additional info: SASL(-4): no mechanism available: 

如果我檢查支持的 SASL 機制:

$ sudo ldapsearch -x -H ldapi:/// -b "" -LLL -s base -Z supportedSASLMechanisms
dn:
supportedSASLMechanisms: DIGEST-MD5
supportedSASLMechanisms: CRAM-MD5
supportedSASLMechanisms: NTLM
supportedSASLMechanisms: PLAIN
supportedSASLMechanisms: LOGIN

我真的看不到列表中包含的EXTERNAL。我在這裡想念什麼?

這是在 Ubuntu-12.04 和 slapd-2.4.31 上。

如果無法訪問正在執行的配置,您將不得不停止slapd並離線編輯配置。

  1. 停止slapdservice slapd stop
  2. 將配置數據庫轉儲到文本文件:slapcat -F /etc/ldap/slapd.d -b cn=config -l config.ldif
  3. 將現有的配置數據庫移開:mv /etc/ldap/slapd.d{,.old}
  4. 創建一個新的空配置數據庫:

mkdir /etc/ldap/slapd.d chown --reference=/etc/ldap/slapd.d.old /etc/ldap/slapd.d chmod --reference=/etc/ldap/slapd.d.old /etc/ldap/slapd.d 5. 編輯轉儲config.ldif以刪除您的olcSecurity設置(或添加olcRootDNolcRootPWcn=config,或您喜歡的任何其他更改) 6. 將編輯後的 LDIF 載入到新的空數據庫中:slapadd -F /etc/ldap/slapd.d -b cn=config -l config.ldif

(以上假設您的配置位於/etc/ldap/slapd.d,這是 Debian 和 Ubuntu 中的預設設置。)

請注意,slapadd完整的 LDIF 應始終放入空數據庫;因此,如果您犯了錯誤並slapadd失敗,請確保在重試之前清除部分數據庫。

您可以在OpenLDAP 管理指南以及相關的手冊頁中找到更多資訊。

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