本次加入的密碼策略,大體上有如下內容:php
密碼是長度至少爲8位java
密碼至少包含數字,大寫字母,小寫字母,特殊字符git
5次內使用過的密碼不能再次使用github
連續輸入錯誤超過5次,密碼將鎖定5分鐘數據庫
實現上述密碼策略主要用到兩個模塊,一個是自帶的模塊:ppolicy,另外一個外部擴展模塊:pqcheckervim
第一步:載入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的密碼策略,運維
接下來就是把上面靜態的配置從新生成數據庫jvm
rm -rf /etc/openldap/slapd.d/* [root@ll ~]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d config file testing succeeded [root@ll ~]# chown -R ldap.ldap /etc/openldap/* [root@ll ~]# chown -R ldap.ldap /var/lib/ldap [root@ll ~]# /etc/init.d/slapd restart |
只有執行了上面的操做,配置纔會生效ide
既然已經指定了默認策略,那接下來就是生成這個默認策略了。
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 |
到此,全部的密碼策略就配置完畢了。
注:記得配置密碼策略以前,加入普通用戶修改密碼的權限喲|、~密碼策略對管理員的修改密碼操做不生效~