我有一个工作的LDAP服务器。接下来向LDAP服务器添加了密码策略。我的密码LDIF看起来像这样:
dn: cn=MyPolicy,ou=Policies,dc=XXX,dc=XXXX
cn: MyPolicy
objectClass: pwdPolicy
#objectClass: pwdPolicyChecker
objectClass: device
objectClass: top
pwdAttribute: 2.5.4.35
#pwdAttribute: userPassword
pwdMaxAge: 7862400
pwdExpireWarning: 6048000
pwdInHistory: 3
pwdCheckQuality: 2
pwdMinLength: 7
pwdMaxFailure: 3
pwdLockout: TRUE
pwdLockoutDuration: 300
pwdGraceAuthNLimit: 0
pwdFailureCountInterval: 0
pwdMustChange: TRUE
pwdAllowUserChange: TRUE
pwdSafeModify: FALSE
pwdReset: FALSE
成功添加到我的LDAP服务器中。但是只有锁定并锁定持续时间正在工作。密码最小长度不起作用。
pam configuration
Server side configuration
pam.d/common-auth
auth [success=1 default=ignore] pam_ldap.so nullok_secure try_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
pam.d/common-account
account [success=1 new_authtok_reqd=done default=ignore] pam_unix.so
account requisite pam_deny.so
account required pam_permit.so
pam.d/common-password
password [success=1 default=ignore] pam_unix.so obscure sha512 minlen=8
password requisite pam_deny.so
password required pam_permit.so
Client side configuration
pam.d/common-auth
auth [success=2 default=ignore] pam_unix.so null_secure try_first_pass
auth [success=1 default=ignore] pam_ldap.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
pam.d/common-account
account [success=2 new_authtok_reqd=done default=ignore] pam_ldap.so
account [success=1 default=ignore] pam_unix.so
account needs pam_deny.so
account required pam_permit.so
pam.d/common-password
password [success=2 default=ignore] pam_unix.so obscure sha512
password [success=1 user_unknown=ignore default=die] pam_ldap.so try_first_pass
password requisite pam_deny.so
password required pam_permit.so
ldap.conf
pam_lookup_policy yes
您能让我知道我出了什么问题吗?
pwdLockout: TRUE
pwdLockoutDuration: 300
这些属性用于锁定帐户的失败绑定尝试
pwdMinLength: 7
仅当用户(Manager DN除外)在其userPassword
属性上执行修改密码操作时才检查此属性。它不会锁定已经创建不符合此规则的帐户。
编辑:
考虑您的不同注释,尝试修改文件/etc/ldap.conf
中的行:
来自:
pam_password crypt
to:
pam_password exop
它将使用扩展操作modifypassword修改密码,因此应触发密码策略。
如果您使用的是OpenLDAP,则密码策略覆盖层被ManagerDN完全绕过。您永远不要自己使用它:它仅适用于OpenLDAP服务器本身。您需要使用另一个特权但具有足够特权的LDAP帐户进行密码修改:最好是用户自己的帐户。