Openldap
在 ldap-2.4 中啟用 TLS 後無法使用外部身份驗證
我使用以下 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
並離線編輯配置。
- 停止
slapd
:service slapd stop
- 將配置數據庫轉儲到文本文件:
slapcat -F /etc/ldap/slapd.d -b cn=config -l config.ldif
- 將現有的配置數據庫移開:
mv /etc/ldap/slapd.d{,.old}
- 創建一個新的空配置數據庫:
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
設置(或添加olcRootDN
和olcRootPW
到cn=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 管理指南以及相關的手冊頁中找到更多資訊。