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加入复杂的密码策略的主要内容,如果未能解决你的问题,请参考以下文章

06-OpenLDAP密码策略

OpenLDAP 密码策略

如何激活密码策略以在 OpenLDAP/windows 中使用扩展操作进行密码重置

OpenLdap介绍

windows下配置openldap,manager的连接:LDAP error:无效的凭据

修改MySQL密码报错“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements“(代码片段