Ldap

Openldap 在複製時啟用 ssl

  • October 22, 2018

你能告訴我如何修改 olcSyncRepl 的目前配置嗎?

我有以下情況:

  1. 我配置了主 ldap 伺服器和從伺服器
  2. 我在這兩台伺服器之間配置了複製(一切正常)
  3. 我對從客戶端有以下配置:
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=001
  provider=ldap://10.101.11.130:389/
  bindmethod=simple
  binddn="uid=rpuser,dc=itzgeek,dc=local"
  credentials=root1234
  searchbase="dc=itzgeek,dc=local"
  scope=sub
  schemachecking=on
  type=refreshAndPersist
  retry="30 5 300 3"
  interval=00:00:05:00

我想補充一點:

  1. 憑證不是純文字(我想添加 {SSHA}….)
  2. 添加證書(我還啟用了帶有自簽名證書 .crt 和 .key 的 ldaps)

我想建議您如何安全地配置它,修改它。我不想破壞目前的伺服器設置。例如,如何更改目前主伺服器的 IP 地址?如果有人會回答它,我將能夠測試其餘的設置更改

附言

我知道可以修改 /etc/openldap/slapd.d/cn=config 中的文件,但你能告訴我如何使用 ldif 文件和 ldapi 來更新配置嗎?

作為參考,我發布了Æ-DIR中使用的 syncrepl 指令:

olcSyncrepl: rid=001
 provider=ldaps://ae-dir-p1.example.com
 bindmethod=sasl
 saslmech=EXTERNAL
 starttls=no
 tls_cert="/opt/ae-dir/etc/tls/ae-dir-c1.example.com.crt"
 tls_key="/opt/ae-dir/etc/tls/ae-dir-c1.example.com.key"
 tls_cacert="/opt/ae-dir/etc/tls/my-ae-dir-testca-2017-06.pem"
 tls_reqcert=demand
 crlcheck=none
 filter="(objectClass=*)"
 searchbase="dc=ae-dir,dc=example,dc=org"
 scope=sub
 schemachecking=on
 type=refreshAndPersist
 retry="30 +"

首先,您不應該在 LDAP URL 中使用 IP 地址provider=。而是為主機名獲取正確頒發的 TLS 伺服器證書,然後 OpenLDAP slapd將執行正確的 TLS 主機名檢查以防止 MITM 攻擊(請參閱RFC 6125)。

我假設您在提供者消費者實例上配置了 TLS。上面的 syncrepl 配置使用已經配置好的 TLS伺服器證書也作為 TLS客戶端證書進行複制。

在 TLS 客戶端證書的情況下,生成的身份驗證身份 (authc-DN) 是客戶端證書中的主題 DN。您可能希望將其映射到現有 LDAP 條目的授權身份 (authz-DN)。這可以通過將olcAuthzRegexp添加到cn=config來實現,如下所示:

olcAuthzRegexp:
 "(cn=[^,]+,OU=ITS,O=My Org)"
 "ldap:///dc=ae-dir,dc=example,dc=org??sub?(&(objectClass=pkiUser)(seeAlso=$1)(seeAlso:dnSubordinateMatch:=OU=ITS,O=My Org)(aeStatus=0))"

使用上面的主題 DN 結尾OU=ITS,O=My Org將被映射到具有對像類pkiUser的 LDAP 條目,客戶端證書的主題 DN 儲存在屬性seeAlso中,如下所示:

dn: uid=ae-dir-slapd_ae-dir-deb-c1,cn=ae,dc=ae-dir,dc=example,dc=org
aeStatus: 0
cn: ae-dir-slapd_ae-dir-deb-c1
memberOf: cn=ae-replicas,cn=ae,dc=ae-dir,dc=example,dc=org
objectClass: account
objectClass: aeObject
objectClass: aeService
objectClass: pkiUser
objectClass: posixAccount
seeAlso: cn=ae-dir-c1.example.com,OU=ITS,O=My Org
[..]

然後,您可以通過 LDAP 組ae-replicas正確授權此服務使用者條目,在上面的範例中。

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