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

到此,所有的密码策略就配置完毕了。

注:记得配置密码策略之前,加入普通用户修改密码的权限哟|、~密码策略对管理员的修改密码操作不生效~

时间: 2024-12-28 23:28:00

openldap加入复杂的密码策略的相关文章

账号集中管理系统设计与实现----OpenLDAP

搭建一套OpenLDAP系统,实现账号的统一管理 可实现的功能: 1:OpenLDAP服务端的搭建 2:PhpLDAPAdmin的搭建(便于web页面管理) 3: OpenLDAP服务端配置分组管理用户sudo权限分配: (1)默认没有sudo权限: (2)运维具有sudo到任何用户执行任何命令权限: (3)研发具有相应的配置执行命令权限 4:OpenLDAP客户端的配置 5:OpenLDAP与SSH 6:OpenLDAP结合客户端PAM,限制用户登录主机 7:OpenLDAP加入密码策略 (1

完整版的OpenLDAP搭建全过程

总结: 先写总结,再写正文,嘿嘿嘿.这还是第一次认真的写个文档,写个总结,哈哈.大概在一个月前,第一次听说这个东西,完全没有概念,刚开始的时候看理论的知识,看了几次之后就没看了,看不懂啊.太抽象了,真的太抽象了.然后就把它晾在一边了,又过了一段时间,想了想,既然知道了这个东西,还是得好好学学,好好了解一下.整个过程是在虚拟机上测试完成,期间遇到了太多太多的坑,一个问题就是好几天.这些只是基础的一些东西,还得好好的看看官方文档,嘿嘿嘿. 最大的收获就是整个学习过程中的解决问题的办法和思想,理论的知

OpenLDAP使用疑惑解答及使用Java完成LDAP身份认证

导读 LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务.目录服务是一种特殊的数据库系统,其专门针对读取,浏览和搜索操作进行了特定的优化.目录一般用来包含描述性的,基于属性的信息并支持精细复杂的过滤能力.目录一般不支持通用数据库针对大量更新操作操作需要的复杂的事务管理或回卷策略.而目录服务的更新则一般都非常简单.这种目录可以存储包括个人信息.web链结.jpeg图像等各种信息.为了访问存储在目录中的信息,就

OpenLDAP介绍和安装

LADP 1.目录服务 目录是一个为查询.浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样.目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理.回滚等复杂功能,不适于存储修改频繁的数据.所以目录天生是用来查询的,就好象它的名字一样. 目录服务是由目录数据库和一套访问协议组成的系统.类似以下的信息适合储存在目录中: 企业员工信息,如姓名.电话.邮箱等: 公用证书和安全密钥: 公司的物理设备信息,如服务器,它的IP地址.

Centos6 yum安装openldap+phpldapadmin+TLS+双主配置

原文地址:http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html 钿畑的文章索引 1.概念介绍 2. 环境介绍 2. 准备工作 3. yum部署ldap 4. phpldapadmin安装 5.ldap客户端配置 6.用户目录自动挂载 6.1 服务器端配置 6.2 客户端配置 7.配置TLS传输加密 8.配置openldap双

centos6.5部署openldap信息存储主机快速登录

本文系统:Centos6.5_x64 ip:192.168.28.139 客户端:192.168.28.141 一.ldap的部署.用户信息的存储 二.利用ldap数据库用户登录其他主机 三.快速登录主机(无需输入密码) 推荐大家可以先了解下AD域的结构,一些概念性的东西,比如树.林.组织单位.资源等 openldap 可以看作是nis的升级,把他想象成资料库的一种就好了 一.ldap的部署.用户信息的存储 1.安装openldap [[email protected] ~]# yum inst

OpenLDAP,一登录系统就修改密码

http://guodayong.blog.51cto.com/263451/d-2 郭大勇的博客 1:修改配置文件 在前面打开注释 moduleload ppolicy.la modulepath /usr/lib/openldap modulepath /usr/lib64/openldap 还要在database config前面加上这两段 access to attrs=userPassword by self write by anonymous auth by dn="cn=Capt

LDAP入门与OpenLDAP使用配置

LDAP入门与OpenLDAP使用配置 1.LDAP简介 LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务.目录服务是一种特殊的数据库系统,专门针对读取,浏览和搜索操作进行了特定的优化.目录一般包含描述性的,基于属性的信息并支持精细复杂的过滤能力.目录一般不支持通用数据库针对大量更新操作需要的复杂事务管理或回卷策略.目录服务的 更新一般都非常简单.这种目录可以存储包括个人信息.web链结.jpeg图像等各

Windows Server2003安全设置策略

Windows Server2003安全设置策略一.Windows Server2003的安装 1.安装系统最少两需要个分区,分区格式都采用NTFS格式 2.在断开网络的情况安装好2003系统   3.安装IIS,仅安装必要的 IIS 组件(禁用不需要的如FTP 和 SMTP 服务).默认情况下,IIS服务没有安装,在添加/删除Win组件中选择"应用程序服务器",然后点击"详细信息",双击Internet信息服务(iis),勾选以下选项: Internet 信息服务