OpenLDAP 密碼策略


OpenLDAP默認是沒有密碼檢查策略的,123456這也得密碼也能接受,這顯然是管理員不希望看到的。

參考地址:https://www.yaoge123.com/blog/archives/1276

        導入密碼策略schema

  ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/ppolicy.ldif

 

         假如沒有cn=module{0}的話,參考地址:https://www.cnblogs.com/Kevin-1967/p/8931304.html,需要添加:因為需要在OpenLdap中添加組的功能,所以需要添加memberOf功能,步驟如下

在/etc/openldap目錄下新建文件memberof_load_configure.ldif。授權:chown -R ldap:ldap memberof_load_configure.ldif

內容如下:

dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulepath: /usr/lib64/openldap
olcModuleload: {0}memberof.la

dn: olcOverlay={0}memberof,olcDatabase={2}hdb,cn=config
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {0}memberof

說明:上面的參數請根據實際情況修改(比如32的系統的話olcModulepath為/usr/lib/openldap)
dn: cn=module{0},cn=config 如果/etc/openldap/slapd.d/cn=config目錄下已經存在cn=module{0}.ldif 文件的話,你就需要修改 module后面的數字了
dn: olcOverlay={0}memberof,olcDatabase={2}bdb,cn=config 這行中 如果上述目錄中沒有olcDatabase={2}bdb.ldif文件就把 olcDatabase={2}bdb改成olcDatabase={2}hdb
之后執行命令ldapadd -Q -Y EXTERNAL -H ldapi:/// -f memberof_load_configure.ldif。

 

注:配置雙主的則兩台都要加載mod_ppolicy.ldif這個以后在執行后面的命令   

加載模塊,因為已經添加過syncprov模塊了,所以只要追加ppolicy模塊就可以了

dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: ppolicy.la
ldapmodify -Y EXTERNAL -H ldapi:/// -f mod_ppolicy.ldif

 

  指定默認策略dn名

dn: olcOverlay=ppolicy,olcDatabase={2}hdb,cn=config
changeType: add
objectClass: olcOverlayConfig
objectClass: olcPPolicyConfig
olcOverlay: ppolicy
olcPPolicyDefault: cn=default,ou=Users,dc=hbjc,dc=com
olcPPolicyHashCleartext: TRUE
ldapmodify -Y EXTERNAL -H ldapi:/// -f ppolicy.ldif

 

 

參考地址:https://blog.csdn.net/u011607971/article/details/86378361

創建組:cat << EOF | ldapadd -x -D "cn=admin,dc=hbjc,dc=com" -W

dn: ou=Users,dc=hbjc,dc=com
objectClass: top
objectClass: organizationalUnit
ou: Users
EOF


創建默認策略:
注:若設置pwdMaxAge:3600,則一個小時以后就過期了。單獨設置在一個用戶中設置密碼策略是不生效的。

cat << EOF | ldapadd -x -D "cn=admin,dc=hbjc,dc=com" -W

dn: cn=default,ou=Users,dc=hbjc,dc=com
cn: default
objectClass: top
objectClass: device
objectClass: pwdPolicy
objectClass: pwdPolicyChecker
pwdAttribute: userPassword
pwdInHistory: 8
pwdMinLength: 8
pwdMaxFailure: 3
pwdFailureCountInterval: 1800
pwdCheckQuality: 2
pwdMustChange: TRUE
pwdGraceAuthNLimit: 0
pwdMaxAge: 2592000
pwdExpireWarning: 1209600
pwdLockoutDuration: 900
pwdLockout: TRUE
EOF

 

針對不同用戶使用不同的密碼策略:

 

dn: cn=servicesaccounts,ou=Users,dc=hbjc,dc=com
cn: servicesaccounts
objectClass: top
objectClass: device
objectClass: pwdPolicy
pwdAllowUserChange: TRUE
pwdAttribute: userPassword
pwdExpireWarning: 0
pwdFailureCountInterval: 0
pwdGraceAuthNLimit: 5
pwdLockout: FALSE
pwdLockoutDuration: 0
pwdInHistory: 0
pwdMaxAge: 0
pwdMaxFailure: 0
pwdMinAge: 0
pwdMinLength: 15
pwdMustChange: FALSE
pwdSafeModify: FALSE
EOF

 

查詢用戶:

ldapsearch -x -LLL -H ldap://localhost:389/ -b dc=hbjc,dc=com -D "cn=admin,dc=hbjc,dc=com" -w 密碼 uid=xxx +

解鎖賬號:只要把用戶的pwdAccountLockedTime這個屬性刪除即可。

cat << EOF | ldapadd -x -D "cn=admin,dc=hbjc,dc=com" -W
dn: uid=xxx,ou=Users,dc=hbjc,dc=com
changetype: modify
delete: pwdAccountLockedTime 
EOF

第一次登錄強制修改密碼設置:pwdReset 屬性設置為TRUE

 

密碼策略屬性參考地址:https://wiki.shileizcc.com/confluence/pages/viewpage.action?pageId=40566878

https://www.cnblogs.com/cishi/p/9160520.html

密碼策略屬性詳解

密碼策略涉及的屬性如下。

pwdAllowUserChange:允許用戶修改其密碼。

pwdAttribute:pwdPolicy 對象的一個屬性,用於識別用戶密碼。

pwdExpireWarning:密碼過期前告警天數。

pwdFailureCountInterval:密碼失敗后恢復時間。

pwdGraceAuthNLimit:密碼過期后不能登入的天數,0 代表禁止登錄。

pwdInHistory:開啟密碼歷史記錄,用戶保證不能和之前設置的密碼相同。

pwdLockout:超過定義次數,賬號被鎖定。

pwdLockoutDuration:密碼連接輸入錯誤次數后,賬號鎖定時間。

pwdMaxAge:密碼有效期,到期需要強制修改密碼。

pwdMaxFailure:密碼最大失效次數,超過后賬號被鎖定。

pwdMinAge:密碼有效期。

pwdMinLength:密碼修改密碼時最短的密碼長度。

pwdMustChange:用戶登錄系統后提示修改密碼。

pwdSafeModify:是否允許用戶修改密碼,與 pwdMustChange 共同使用。

pwdLockoutDuration:賬號鎖定后,不能自動解鎖,此時需要管理員干涉。

設定用戶密碼定期修改及過期時間

向條目中添加一個名為shadowAccount的objectClass, 設定如下屬性(attributes):
shadowLastChange: 密碼從1970年1月1日開始, 到最近一次修改, 一共間隔了多少天. 比如這里指定成16967就表示2016年6月15日. 也可以直接獲取當天的日期,方法為:在系統里useradd一個用戶,查看/etc/shadow中該用戶的第三個值, 即是該值. 該值如果設置成0, 則表示下次登陸將強制修改密碼, 用戶修改密碼成功以后, 該值將發生對應的變化;
shadowMin: 密碼從shadowLastChange指定的日期開始, 到多少天以后才能再次修改密碼, 防止某些人天天沒事就修改密碼, 此值設置成0表示不限制;
shadowMax: 密碼從shadowLastChange指定的日期開始, 到多少天以后過期(即多少天后必須更改密碼);
shadowInactive: 密碼過期以后還可以登陸多少天(每次登陸都會要求更改密碼), 如果超過此值指定的天數, 下次登陸時會提示Your account has expired; please contact your system administrator;
shadowWarning: 提前多少天開始警告用戶密碼將會過期;
shadowExpire: 密碼從1970年1月1日開始, 多少天以后將會過期, 這里一般用不到;
shadowFlag: 暫時無用

一組建議的值

  • shadowLastChange: 0
  • shadowMin: 0
  • shadowMax: 90 #每隔90天強制更換密碼
  • shadowInactive: 7 #過期以后還有7天可以登陸,每次登陸都會提示修改密碼
  • shadowWarning: 8 #提前8天開始提示密碼即將過期

 

Openldap密碼策略pwdAttribute屬性設置OID

參考地址:https://blog.csdn.net/wxb880114/article/details/102408269

http://osask.cn/front/ask/view/472349

pwdAttribute: userPassword
或者
pwdAttribute: 2.5.4.35

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM