OpenLDAP 2.4.11配置密码策略失效及模块加载权限问题求助
OpenLDAP 2.4.11配置密码策略失效及模块加载权限问题求助
各位大佬,我折腾OpenLDAP密码策略快疯了,求帮忙看看!
我有一台装了OpenLDAP 2.4.11的服务器,想给所有用户统一配置密码策略,于是按教程一步步操作,但一直没效果,还碰到了权限问题,具体情况如下:
第一步:启用ppolicy模块
我先在/etc/ldap/slapd.conf里做了这些配置,确认模块和overlay都启用了:
bash# grep ppolicy /etc/ldap/slapd.conf include /etc/ldap/schema/ppolicy.schema moduleload ppolicy.la overlay ppolicy ppolicy_default "cn=default,ou=pwpolicies,dc=myapp,dc=fr"
第二步:创建并导入密码策略LDIF文件
我写了个ldappolicy.ldif文件,里面定义了默认密码策略,比如要求密码最小长度12位:
dn: ou=pwpolicies,dc=myapp,dc=fr objectClass: top objectClass: organizationalUnit ou: pwpolicies dn: cn=default,ou=pwpolicies,dc=myapp,dc=fr objectClass: pwdPolicy objectClass: organizationalRole cn: default pwdMaxAge: 2592000 pwdAttribute: userPassword pwdExpireWarning: 2592000 pwdInHistory: 0 pwdCheckQuality: 1 pwdMaxFailure: 0 pwdLockout: FALSE pwdLockoutDuration: 0 pwdGraceAuthNLimit: 0 pwdFailureCountInterval: 0 pwdMustChange: FALSE pwdMinLength: 12 pwdAllowUserChange: TRUE pwdSafeModify: FALSE
然后用命令导入了这个策略:
ldapadd -x -h myserver.fr -D 'cn=admin,dc=myapp,dc=fr' -w password -f ldappolicy.ldif
问题1:密码策略完全不生效
本以为配置完就会强制用户用12位以上密码,结果我测试给用户设置4位密码居然成功了:
ldappasswd -x -h myserver.fr -D cn=RandomUserLogin,ou=Users,dc=myapp,dc=fr -w oldPasswordOfTheUser -s test
完全没触发最小长度限制,这策略等于白配了...
问题2:尝试加载ppolicy模块时权限不足
我查了其他教程,说可能需要单独加载ppolicy模块,于是又写了个ppolicy-module.ldif:
dn: cn=module{0},cn=config changeType: modify add: olcModuleLoad olcModuleLoad: ppolicy
执行修改命令时直接报权限不够:
bash# ldapmodify -x -h myserver.fr -D cn=admin,dc=myapp,dc=fr -w password -f ppolicy-module.ldif ldap_modify: Insufficient access (50)
我想着自己是服务器root用户,启用了ldapi访问,用sudo加EXTERNAL认证再试:
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f ppolicy-module.ldif
结果还是一样的错误:
SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying entry "cn=module{0},cn=config" ldap_modify: Insufficient access (50)
另外,有些教程提到/etc/ldap/slapd.d/目录下的配置文件,比如/etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif,但我的服务器里根本没有slapd.d这个目录,这也让我很困惑...
有没有大佬能指点下我到底哪里错了?
备注:内容来源于stack exchange,提问作者user2178964




