Centos7

Openldap設置olcOverlay:ppolicy

  • May 11, 2017

**問題:**為什麼我無法將對像類 pwdPolicy 添加到 cn=PasswordDefaults?


背景資料

我是 LDAP 新手,我正在網上學習各種教程和其他技巧,以創建一個目錄來為我處理使用者資訊。我正在嘗試創建一個包含使用者資訊並執行密碼策略的 LDAP 伺服器。為了實現這一點,我認為我需要將 pwdPolicy 對像類添加到 ou=Policies 到執行 2.4.40 的 LDAP 伺服器中。我鬆散地遵循這些教程:

{
 Password Policy tutorial: https://tobrunet.ch/articles/openldap-password-policy-overlay/, 
 Getting started with OpenLDAP and CentOS7: https://www.server-world.info/en/note?os=CentOS_7&p=openldap&f=1, 
 Default and User Specific Password Policy: http://www.zytrax.com/books/ldap/ch6/ppolicy.html
}

我有一個這樣的目錄:

-> Root stuff
 -> dc=example,dc=com
   -> cn=Manager (The olcRootDN)
   -> ou=User
      -> *Several entries with objectClasses {posixAccount, shadowAccount, inetOrgPerson}*
   -> ou=Policies (Not sure if this is here because not visible in Apache Directory Studio)
      -> cn=passwordDefault

這是我嘗試使用 ppolicy 所做的工作。

步驟 1-3 鬆散地遵循*OpenLDAP with OLC部分OpenLDAP 密碼策略覆蓋中的命令*

**第 1 步:**使用以下命令將 ppolicy 模式載入到 OLC:

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif

**Step 1的理解:**在/…/slap.d/cn=config/cn=schema中添加cn={5}ppolicy.ldif

**第 2 步:**使用以下命令載入模組:

ldapadd -D "cn=config" -W -f addPpolicyOverlay.ldif

addPpolicyOverlay.ldif 的內容

dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModuleLoad: ppolicy.la

**第2步的理解:**在/…/slapd.d/cn=config中添加cn=module{0}.ldif。

**第 3 步:**使用以下命令配置 ppolicy 覆蓋:

ldapadd -D "cn=config" -W -f configurePpolicyOverlay.ldif

configurePpolicyOverlay.ldif 的內容

dn: olcOverlay=ppolicy,olcDatabase={2}hdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcPPolicyConfig
olcOverlay: ppolicy
olcPPolicyDefault: cn=passwordDefault,ou=Policies,dc=example,dc=com
olcPPolicyHashCleartest: FALSE
olcPPolicyUseLockout: FALSE
olcPPolicyForwardUpdates: FALSE

**第三步的理解:**製作數據庫並使用ppolicy覆蓋。使 ou=Policies 在我的域 dc=example,dc=com 中。我無法在 Apache Directory Studio 中探索 ou=Policies,即使我相信它存在於 dc=example,dc=com 中

**關於第 3 步的問題:**我現在有有效的預設密碼策略嗎?

**第 4 步:**無法使用以下命令將 pwdPolicy 對像類添加到 olcOverlay={0}ppolicy:

ldapmodify -a -D "cn=config" -W -f configureDefaultPpolicy.ldif

錯誤:ldapmodify: invalid format (line 5) entry: "olcOverlay={0}ppolicy,cn=olcDatabase={2}hdb,cn=config"

configureDefaultPpolicy.ldif 的內容

dn: olcOverlay={0}ppolicy,cn=oldDatabase={2}hdb,cn=config]
changetype: modify
olcObjectClasses: pwdPolicy
cn=passwordDefault,ou=Policies,dc=example,dc=com
pwdAttribute: userPassword
pwdAllowUserChange: TRUE
pwdInHistory: 50
pwdMaxFailure: 3
pwdMinLength: 8

關於第 4 步的問題:http: //i.imgur.com/80yPJVG.jpg (不夠信任,無法嵌入圖片:()

**第三步的理解:**製作數據庫並使用ppolicy覆蓋。使 ou=Policies 在我的域 dc=example,dc=com 中。我無法在 Apache Directory Studio 中探索 ou=Policies,即使我相信它存在於 dc=example,dc=com 中

它不會在數據庫中創建任何東西dc=example,dc=com,它只是為這個數據庫使用的 ppolicy 覆蓋設置一些配置。

**關於第 3 步的問題:**我現在有有效的預設密碼策略嗎?

不,根據您的教程,您必須在數據庫中創建這些分支dc=example,dc=com才能放置 ppolicy :

它不是放在數據庫中cn=config而是放在數據庫中dc=example,dc=com

dn: ou=Policies,dc=example,dc=com
ou: Policies
objectClass: organizationalUnit

dn: cn=passwordDefault,ou=Policies,dc=example,dc=com
objectClass: pwdPolicy
objectClass: person
objectClass: top
cn: passwordDefault
sn: passwordDefault
pwdAttribute: userPassword
pwdCheckQuality: 0
pwdMinAge: 0
pwdMaxAge: 0
pwdMinLength: 8
pwdInHistory: 5
pwdMaxFailure: 3
pwdFailureCountInterval: 0
pwdLockout: TRUE
pwdLockoutDuration: 0
pwdAllowUserChange: TRUE
pwdExpireWarning: 0
pwdGraceAuthNLimit: 0
pwdMustChange: FALSE
pwdSafeModify: FALSE

關於第 4 步的問題,我無法在我的專業代理後面看到 imgur 圖像,但您嘗試將 ppolicy 導入 cn=config 的事實應該是主要問題。

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