openldap增加密码策略

2019-04-11

OpenLDAP的密码控制策略很强大:

1、本次加入的密码策略,大致上有以下内容:
密码是长度至少为8位
密码至少包含数字,大写字母,小写字母,特殊字符
5次内使用过的密码不能再次使用
连续输入错误超过5次,密码将锁定5分钟

2、实现上述密码策略主要用到两个模块,一个是自带的模块:ppolicy,另一个外部扩展模块:pqchecker

3、slapd.conf增加

moduleload ppolicy.la
overlay ppolicy
ppolicy_default "cn=DefaultPassword,ou=policies,dc=looyu,dc=com"
ppolicy_use_lockout
modulepath /usr/lib/openldap
modulepath /usr/lib64/openldap

4、把上面静态的配置重新生成数据库
rm -rf /etc/openldap/slapd.d/*
.# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
config file testing succeeded
.# chown -R ldap.ldap /etc/openldap/*
.# chown -R ldap.ldap /var/lib/ldap
.# /etc/init.d/slapd restart

5、只有执行了上面的操作,配置才会生效
cd /etc/openldap/slapd.d/cn=config
cat cn\=module\{0\}.ldif |grep ppolicy
olcModuleLoad: {1}ppolicy.la
#################
cat olcDatabase\=\{2\}bdb/olcOverlay\=\{0\}ppolicy.ldif |grep Over
dn: olcOverlay={0}ppolicy
objectClass: olcOverlayConfig
olcOverlay: {0}ppolicy
##############
既然已经指定了默认策略,那接下来就是生成这个默认策略了。

1.生成密码策略的ou

#vim 1.ldif
dn: ou=pwpolicies,dc=looyu,dc=com
objectClass: organizationalUnit
ou: pwpolicies

#通过命令将上面的设置,生成一个ou
ldapadd -x -D "cn=admin,dc=xxx,dc=xxx" -W -f 1.ldif
Enter LDAP Password:
adding new entry "ou=pwpolicies,dc=looyu,dc=com"
2、在上述ou下生成默认的密码策略对象
密码策略涉及的属性如下:
pwdAllowUserChange:允许用户修改其密码
pwdAttribute, pwdPolicy:对象的一个属性,用于标识用户密码。默认值(目前唯一支持的)是userPassword
pwdExpireWarning:密码过期前警告天数
pwdFailureCountInterval:多久时间后重置密码失败次数, 单位是秒
pwdGraceAuthNLimit:密码过期后不能登录的天数,0代表禁止登录。
pwdInHistory:开启密码历史记录,用于保证不能和之前设置的密码相同。
pwdLockout:定义用户错误密码输入次数超过pwdMaxFailure定义后, 是否锁定用户, TRUE锁定(默认).
pwdLockoutDuration:密码连续输入错误次数后,帐号锁定时间。
pwdMaxAge:密码有效期,到期需要强制修改密码, 2592000是30天
pwdMaxFailure:密码最大失效次数,超过后帐号被锁定。
pwdMinAge:密码最小有效期, 默认为0, 用户随时更改密码, 如果定义了, 用户在离上次更改密码 + 定义的时间之内不能更改密码
pwdMinLength:用户修改密码时最短的密码长度
pwdMustChange:用户在帐户锁定后由管理员重置帐户后是否必须更改密码, 并且只有在pwdLockout为TRUE时才相关, 如果值为FLASE(默认值), 管理员帮用户解锁用户后, 用户不必更改密码, 如果为TRUE, 就必须更改密码。如果使用pwdReset来解锁用户, 其值将覆盖此属性
pwdSafeModify:该属性控制用户在密码修改操作期间是否必须发送当前密码。如果属性值为FALSE(缺省值),则用户不必发送其当前密码。如果属性值为TRUE,那么修改密码值时用户必须发送当前密码。
pwdLockoutDuration:帐号锁定后,不能自动解锁,此时需要管理员干涉

#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

#通过命令将上面的设置,生成一个对象
ldapadd -x -D "cn=admin,dc=xxx,dc=xxx" -W -f 2.ldif

配置完成后,密码策略就已经生效了。密码策略对管理员的修改密码操作不生效~

Password quality check for OpenLDAP

接下来就是开始默认密码策略对新策略的支持:

#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

分类:Linux | 标签: |

相关日志

评论被关闭!