1. 程式人生 > >openldap加入復雜的密碼策略

openldap加入復雜的密碼策略

ldap 密碼 策略

本次加入的密碼策略,大致上有以下內容:

  • 密碼是長度至少為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加入復雜的密碼策略