Centos7

OpenLDAP:嘗試載入 ppolicy 模組

  • June 9, 2020

我在 CentOS 7.8 上有一個 OpenLDAP 伺服器,並且正在嘗試載入 ppolicy 覆蓋。我正在嘗試使用以下命令載入模組:

ldapmodify -Y EXTERNAL -H ldapi:/// -f ppolicy_load.ldif

我得到這個錯誤:

add olcModuleLoad:
       ppolicy
modifying entry "cn=module{0},cn=config"
ldap_modify: Type or value exists (20)
       additional info: modify/add: olcModuleLoad: value #0 already exists

ppolicy.ldif 的內容:

dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: ppolicy

cn = 模組 {0},cn = config.ldif 內容:

dn: cn=module{0}
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib64/openldap
olcModuleLoad: {0}back_bdb
olcModuleLoad: {1}syncprov

附加資訊:

cn=module{0},cn=config 的 ldapsearch 產生以下結果:

# module{0}, config
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib64/openldap
olcModuleLoad: {0}back_bdb
olcModuleLoad: {1}syncprov
olcModuleLoad: {2}ppolicy 

ppolicy 模式已載入。我也不幸應用了 ppolicy 覆蓋

dn: olcOverlay=ppolicy,olcDatabase={2}hdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcPPolicyConfig
olcOverLay: ppolicy
olcPPolicyDefault: cn=default,ou=policies,dc=mydomain,dc=com

現在, slapcat -n 0 產生以下錯誤:

5ede54b5 UNKNOWN attributeDescription "OLCPPOLICYDEFAULT" inserted.
5ede54b5 config error processing olcOverlay={1}ppolicy,olcDatabase={2}hdb,cn=config:
slapcat: bad configuration file!

我認為這是由於模組沒有正確載入,現在有點問題。

任何人都可以提供有關如何使其工作的指導嗎?我在從我的主 ldap 伺服器派生的測試伺服器上配置了這個,沒有問題。

謝謝。

這個問題的解決方案是導入我之前在開始 ppolicy 工作之前所做的配置數據庫備份:

  • 關閉 slapd
  • 移動 /etc/openldap/slapd.d 到新家
  • slapadd -n 0 -F /etc/openldap/slapd.d -l config.ldif
  • chown -R ldap:ldap /etc/openldap/slapd.d
  • 重啟slapd

這裡的問題似乎是該條目:

cn=module{0},cn=config

沒有所有其他條目都具有的創建元數據。在我開始應用 ppolicy 之前,這是配置數據庫的 slapcat 中的相關部分

dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib64/openldap
olcModuleLoad: {0}back_bdb
olcModuleLoad: {1}syncprov

這是我在恢復後立即拍攝的 slapcat 轉儲中的相同部分

dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib64/openldap
olcModuleLoad: {0}back_bdb
olcModuleLoad: {1}syncprov
structuralObjectClass: olcModuleList
entryUUID: 1c4f8c4c-3eb1-103a-867c-85064373bd37
creatorsName: cn=config
createTimestamp: 20200609152452Z
entryCSN: 20200609153126.629105Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20200609153126Z

所以在恢復配置數據庫後,我能夠繼續配置 ppolicy 沒有問題。自然地,我在我的 LDAP 伺服器 (yay ESX) 的複製上對此進行了測試。

我想我可能不在基地,但由於所有問題似乎都集中在 cn=module{0},cn=config 並且現在已修復……我會繼續這樣做。

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