openldap加入复杂的密码策略
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了openldap加入复杂的密码策略相关的知识,希望对你有一定的参考价值。
本次加入的密码策略,大致上有以下内容:
密码是长度至少为8位
密码至少包含数字,大写字母,小写字母,特殊字符
5次内使用过的密码不能再次使用
连续输入错误超过5次,密码将锁定5分钟
实现过程:
实现上述密码策略主要用到两个模块,一个是自带的模块:ppolicy,另一个外部扩展模块:pqchecker
第一步:载入ppolicy模块
#vim /etc/openldap/slapd.conf modulepath /usr/lib/openldap modulepath /usr/lib64/openldap moduleload ppolicy.la overlay ppolicy.la ppolicy_default cn=Captain,ou=pwpolicies,dc=xxx,dc=com |
上述配置,指定了模块查找的位置,并载入ppolicy模块,设置密码策略的默认规则为:dn 为cn=Captain,ou=pwpolicies,dc=xxx,dc=com的密码策略,
接下来就是把上面静态的配置重新生成数据库
rm -rf /etc/openldap/slapd.d/* [[email protected] ~]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d config file testing succeeded [[email protected] ~]# chown -R ldap.ldap /etc/openldap/* [[email protected] ~]# chown -R ldap.ldap /var/lib/ldap [[email protected] ~]# /etc/init.d/slapd restart |
只有执行了上面的操作,配置才会生效
既然已经指定了默认策略,那接下来就是生成这个默认策略了。
1.生成密码策略的ou
#vim 1.ldif dn: ou=pwpolicies,dc=xxx,dc=com objectClass: organizationalUnit ou: pwpolicies #通过命令将上面的设置,生成一个ou ldapadd -x -D "cn=admin,dc=xxx,dc=xxx" -W -f 1.ldif |
2,在上述ou下生成默认的密码策略对象
#vim 2.ldif dn: cn=Captain,ou=pwpolicies,dc=xxx,dc=com cn: Captain objectClass: pwdPolicy objectClass: person pwdAllowUserChange: TRUE pwdAttribute: userPassword pwdExpireWarning: 259200 pwdFailureCountInterval: 0 pwdGraceAuthNLimit: 5 pwdInHistory: 5 pwdLockout: TRUE pwdLockoutDuration: 300 pwdCheckQuality: 1 pwdMaxAge: 2592000 pwdMaxFailure: 5 pwdMinAge: 0 pwdMinLength: 8 pwdMustChange: TRUE pwdSafeModify: TRUE pwdReset: TRUE sn: dummy value #通过命令将上面的设置,生成一个对象 ldapadd -x -D "cn=admin,dc=xxx,dc=xxx" -W -f 2.ldif |
配置完成后,密码策略就已经生效了。
注:不能在phpldapadmin页面验证密码策略,要么用修改密码的命令,要么自己代码实现修改密码进行验证。
上面的策略只能实现基本的功能,但对于密码负责度的检测,自带的模块无法实现,我们只能额外安装其他模块,此处用到的模块是:pqchecker
关于更多类似模块,可查看:http://techadminblog.com/openldap-password-quality-check/
此模块必须进行编译安装
#安装java yum install java-1.8.0-openjdk-devel #下载源代码 #下载ldap,地址为:ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.45.tgz #下载pqchecker: https://github.com/ameddeb/pqchecker/archive/master.zip #安装gcc编译器 yum install gcc* #安装pqchecker tar –xzf /usr/local/src/soft/openldap-2.4.44.tgz cd /usr/local/src/soft/openldap-2.4.44 ./configure && make depend cd /usr/local/src/soft/ tar -xzf pqchecker-master.zip cd pqchecker-master ./configure LDAPSRC=/usr/local/src/soft/openldap-2.4.44 JAVAHOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-2.b16.el6_9.x86_64 PARAMDIR=/etc/openldap/pqchecker libdir=/usr/lib64/openldap make make install /etc/openldap/pqchecker chown –R ldap:ldap /etc/openldap/pqchecker |
上面已经指定策略配置文件为:/etc/openldap/pqchecker/pqparams.dat,默认的策略是,至少一个大写字母,一个小写字母,一个特殊字符,一个数字。
0|01010101
规则实例如上:| 号后面的为规则,前两位表示密码至少得有多少个大写字母,最多为99个,最少为0个,以此类推,每两位标识一种字符至少包含的数量,后面分别是小写字母,数字,特殊字符。更负责的规则此处不做介绍~
接下来就是开始默认密码策略对新策略的支持:
#vim 3.ldif dn: cn=Captain,ou=pwpolicies,dc=xxx,dc=com changetype: modify replace: pwdCheckQuality pwdCheckQuality: 2 - add: objectclass objectclass: pwdPolicyChecker - add: pwdcheckmodule pwdcheckmodule: pqchecker.so #通过命令将上面的设置,生效 ldapadd -x -D "cn=admin,dc=xxx,dc=com" -W -f 2.ldif |
到此,所有的密码策略就配置完毕了。
注:记得配置密码策略之前,加入普通用户修改密码的权限哟|、~密码策略对管理员的修改密码操作不生效~
本文出自 “机制小风风” 博客,请务必保留此出处http://xiaofengfeng.blog.51cto.com/8193303/1953736
以上是关于openldap加入复杂的密码策略的主要内容,如果未能解决你的问题,请参考以下文章
如何激活密码策略以在 OpenLDAP/windows 中使用扩展操作进行密码重置
windows下配置openldap,manager的连接:LDAP error:无效的凭据
修改MySQL密码报错“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements“(代码片段