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加入復雜的密碼策略