Redhat

OpenLDAP 鏈覆蓋配置

  • August 8, 2016

我試圖讓 OpenLDAP 的鏈覆蓋工作,但不幸的是,文件相當稀疏。

我正在使用 RHEL 6 附帶的 OpenLDAP 版本 2.4.39 包,並且 LDAP 主從使用 TLS 進行通信。TLS 證書和密鑰與 Mozilla NSS 一起儲存,因此下面的tls_certdirtls_cert語句應該是正確的(它們肯定以這種形式用於複製)。

我的配置(在slapd.conf使用前轉換為 OLC 表示法的形式)是:

overlay chain
chain-uri              ldap://my.ldap.master.example.com
chain-rebind-as-user   FALSE
chain-idassert-bind    bindmethod="simple"
                      binddn="cn=Manager,dc=example,dc=com"
                      credentials="xxxxxxxxxxxxxxxx"
                      mode="self"
                      starttls=yes
                      tls_reqcert=demand
                      tls_cacertdir=/etc/openldap/certs
                      tls_cert=my.ldap.slave.example.com
chain-tls              start tls_reqcert=demand tls_cacertdir=/etc/openldap/certs tls_cert=my.ldap.slave.example.com
chain-return-error     TRUE

[...syncrepl...]

updateref       ldap://my.ldap.master.example.com

我想讓這個工作,以便將策略更新轉發到主伺服器(例如,當有人密碼錯誤五次或更多次時,從伺服器會將 pwdAccountLockedTime 發送給主伺服器,而不是在本地儲存它)。為此,我在配置文件中設置了 ppolicy_forward_updates。

我已經對此進行了測試,當我在從屬設備上進行更改時,沒有看到任何流向 LDAP 主控設備的流量。

有誰知道我在這裡做錯了什麼?

您需要確保在數據庫而不是//數據庫chain上配置了覆蓋。因此,在您的數據庫中,您應該最終得到以下條目:frontend``hdb``mdb``bdb``cn=config

  • olcDatabase={-1}frontend,cn=config
  • olcOverlay={0}chain,olcDatabase={-1}frontend,cn=config
  • olcDatabase={0}ldap,olcOverlay={0}chain,olcDatabase={-1}frontend,cn=config

我在主數據庫上配置覆蓋時遇到了同樣的問題,並且在從伺服器到主hdb數據庫沒有流量的情況下也有同樣的症狀。一旦我將覆蓋及其數據庫重新設置為frontend數據庫,它就開始工作了。

您可能還需要olcAuthzPolicy在主伺服器上配置屬性。

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