如何使 openldap 密码策略在 12.04 或 14.04 上发挥作用?

如何使 openldap 密码策略在 12.04 或 14.04 上发挥作用?

我已经安装了覆盖,设置了默认策略,我看到syslog该策略正在被引用,但它似乎没有被强制执行。

具体来说,我已经测试了10 个。pwdMinLength但是,我可以将密码更改为 6 个字符或更长的任何字符。我弄乱了配置slapd,,... 我就是搞不懂。pamldap.conf

这是我的/etc/pam.d/common-passwd

password        [success=2 default=ignore]      pam_unix.so obscure sha512
password        [success=1 user_unknown=ignore default=die]     pam_ldap.so
password        requisite                       pam_deny.so
password        required                        pam_permit.so

这是我的覆盖:

root@ldap:/etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb# cat olcOverlay\=\{0\}ppolicy.ldif
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 e13ac822
dn: olcOverlay={0}ppolicy
objectClass: olcOverlayConfig
objectClass: olcPPolicyConfig
olcOverlay: {0}ppolicy
olcPPolicyDefault: cn=default,ou=policies,dc=mydomain,dc=local
olcPPolicyUseLockout: FALSE
olcPPolicyForwardUpdates: FALSE
structuralObjectClass: olcPPolicyConfig
entryUUID: 73ace97c-bd97-1033-89a7-83eeab8cfd47
creatorsName: cn=config
createTimestamp: 20140821155626Z
olcPPolicyHashCleartext: TRUE
entryCSN: 20140822194949.226250Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20140822194949Z

root@ldap:/etc/ldap/slapd.d/cn=config# grep -r pol *
cn=module{0}.ldif:olcModuleLoad: {1}ppolicy
cn=schema/cn={4}ppolicy.ldif:dn: cn={4}ppolicy
cn=schema/cn={4}ppolicy.ldif:cn: {4}ppolicy
cn=schema.ldif: w policy state updates to be forwarded via updateref' SYNTAX OMsBoolean SINGL
olcDatabase={1}hdb/olcOverlay={0}ppolicy.ldif:dn: olcOverlay={0}ppolicy
olcDatabase={1}hdb/olcOverlay={0}ppolicy.ldif:olcOverlay: {0}ppolicy
olcDatabase={1}hdb/olcOverlay={0}ppolicy.ldif:olcPPolicyDefault: cn=default,ou=policies,dc=mydomain,dc=local

Here is the policy:
dn: ou=policies,dc=mydomain,dc=local
objectClass: organizationalUnit
objectClass: top
ou: policies
structuralObjectClass: organizationalUnit
entryUUID: 02bd96f4-b6ac-1033-8430-5db15c0b2efc
creatorsName: cn=admin,dc=mydomain,dc=local
createTimestamp: 20140812203558Z
entryCSN: 20140812203558.385280Z#000000#000#000000
modifiersName: cn=admin,dc=mydomain,dc=local
modifyTimestamp: 20140812203558Z

dn: cn=default,ou=policies,dc=mydomain,dc=local
objectClass: pwdPolicy
objectClass: device
objectClass: top
pwdAttribute: userPassword
pwdMaxAge: 3024000
pwdExpireWarning: 1814400
pwdInHistory: 3
pwdMaxFailure: 3
pwdLockout: TRUE
pwdLockoutDuration: 600
pwdGraceAuthNLimit: 0
pwdFailureCountInterval: 0
pwdMustChange: TRUE
pwdAllowUserChange: TRUE
structuralObjectClass: device
entryUUID: 29977c86-b74c-1033-8432-5db15c0b2efc
creatorsName: cn=admin,dc=mydomain,dc=local
createTimestamp: 20140813154223Z
pwdMinLength: 10
cn: default
pwdCheckQuality: 2
pwdSafeModify: TRUE
entryCSN: 20140822193458.399642Z#000000#000#000000
modifiersName: cn=admin,dc=mydomain,dc=local
modifyTimestamp: 20140822193458Z

我已经考虑了很久了。任何帮助我都会很感激

答案1

我的策略设置与您的配置类似,对我来说很有效。我认为这完全取决于您如何测试密码策略。

我已经使用以下方法测试过:

(用户11的密码正在修改):

  1. ldappasswd -x -h ubuntu-vostro -D "cn=user11,ou=Users,dc=yourdomain,dc=net" -W -S "cn=user11,ou=Users,dc=yourdomain,dc=net" (注意 -D "cn=user11...")

  2. phpLdapAdmin,以用户 11 身份登录,清除缓存,更改密码

  3. self-service-password(在 apache2 服务器上运行的 php 脚本),以 user11 身份登录。确保在 config.inc.php 中有 $who_change_password = "user";(而不是 "manager")。

    看起来 rootdn(manager/admin)绕过了所有密码策略,因此如果您使用 rootdn(%ADMIN%)帐户更改用户密码,您将看不到强制执行的 pwdMinLength 策略。

您可以启用 openLDAP 监控并运行此命令以确保您的 ppolicy 覆盖已正确加载:ldapsearch -x -D dc=yourdomain,dc=net -w -b 'cn=Overlays,cn=Monitor' -s base '(objectClass=)' '' '+

相关内容