密碼復雜度


本文目的是在於限制用戶修改自己密碼或root修改自己密碼時,給出長度,復雜度等等限制,防止弱密碼被黑客等不法分子破解

服務器系統:centos 6.5 centos 6.8

 

1.密碼有效期

復制代碼
cp /etc/login.defs /etc/login.defs.bak
vim /etc/login.defs # Password aging controls: # # PASS_MAX_DAYS Maximum number of days a password may be used. # PASS_MIN_DAYS Minimum number of days allowed between password changes. # PASS_MIN_LEN Minimum acceptable password length. # PASS_WARN_AGE Number of days warning given before a password expires. # PASS_MAX_DAYS 90 PASS_MIN_DAYS 80 PASS_MIN_LEN 10 PASS_WARN_AGE 7
復制代碼

 

2.密碼復雜度

之所以選擇passwdqc,是因為網上找了一下,發現絕大多數的linux密碼強度策略限制都只針對非root用戶,而passwdqc可以限定到root用戶。

復制代碼
cp /etc/pam.d/system-auth-ac /etc/pam.d/system-auth-ac.bak
vim /etc/pam.d/system-auth 。。。。。。 #password requisite pam_cracklib.so try_first_pass retry=3 type= ##注釋這一行,添加下一行 password requisite /lib/security/$ISA/pam_passwdqc.so min=disabled,24,16,12,10 passphrase=3 max=40 enforce=everyone retry=3 similar=deny password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok password required pam_deny.so
復制代碼

 

也可以使用下面配置:

password required  pam_passwdqc.so min=disabled,disabled,12,8,8 max=30 passphrase=3 match=4 similar=deny enforce=everyone 
disable_firstupper_lastdigit_check

規則解釋如下: 
1)只包含一種字符的密碼,拒絕(大小寫,數字,特殊字符分別為4種字符) 
2)只包含兩種字符的密碼,拒絕 
3)如果密碼中被識別出了常用的單詞,那么最小長度就必須為12位。常用單詞的最小識別長度為3.(由passphrase=3制定) 
4)包含三種字符的密碼,最小長度為8位 
5) 包含四種字符的密碼,最小長度為8位 
6)如果發現本次修改的密碼跟老密碼有4個substring的長度類似,就認為是弱密碼。(match=4 similar=deny) 
7) 這個策略對所有用戶都生效。(enforce=everyone ) 
8)默認情況下,對於輸入的密碼,如果第一個字母是大寫字母,或者最后一個字母為數字,則不會計入密碼字符的種類。比如:Fuck1234,由於第一個F是大寫字母,所以會被認為,該密碼只有小寫字母和數字兩種字符。這個非常奇怪,我也不知道原因是什么。我們用disable_firstupper_lastdigit_check 禁止了這種識別。 

3.測試

復制代碼
echo "mhokwyaofnrd"|passwd --stdin root ##僅僅小寫,不通過 echo "IEJVRRzfdHPI"|passwd --stdin root ##大寫,小寫,不通過 echo "cyd******Ab8C"|passwd --stdin root ##大小寫,特殊字符,通過。 echo "Jes&us*****12"|passwd --stdin root ##通過
復制代碼

 

如果出現下面模塊不支持的情況

本文目的是在於限制用戶修改自己密碼或root修改自己密碼時,給出長度,復雜度等等限制,防止弱密碼被黑客等不法分子破解

服務器系統:centos 6.5 centos 6.8

 

1.密碼有效期

復制代碼
cp /etc/login.defs /etc/login.defs.bak
vim /etc/login.defs # Password aging controls: # # PASS_MAX_DAYS Maximum number of days a password may be used. # PASS_MIN_DAYS Minimum number of days allowed between password changes. # PASS_MIN_LEN Minimum acceptable password length. # PASS_WARN_AGE Number of days warning given before a password expires. # PASS_MAX_DAYS 90 PASS_MIN_DAYS 80 PASS_MIN_LEN 10 PASS_WARN_AGE 7
復制代碼

 

2.密碼復雜度

之所以選擇passwdqc,是因為網上找了一下,發現絕大多數的linux密碼強度策略限制都只針對非root用戶,而passwdqc可以限定到root用戶。

復制代碼
cp /etc/pam.d/system-auth-ac /etc/pam.d/system-auth-ac.bak
vim /etc/pam.d/system-auth 。。。。。。 #password requisite pam_cracklib.so try_first_pass retry=3 type= ##注釋這一行,添加下一行 password requisite /lib/security/$ISA/pam_passwdqc.so min=disabled,24,16,12,10 passphrase=3 max=40 enforce=everyone retry=3 similar=deny password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok password required pam_deny.so
復制代碼

 

也可以使用下面配置:

password required  pam_passwdqc.so min=disabled,disabled,12,8,8 max=30 passphrase=3 match=4 similar=deny enforce=everyone 
disable_firstupper_lastdigit_check

規則解釋如下: 
1)只包含一種字符的密碼,拒絕(大小寫,數字,特殊字符分別為4種字符) 
2)只包含兩種字符的密碼,拒絕 
3)如果密碼中被識別出了常用的單詞,那么最小長度就必須為12位。常用單詞的最小識別長度為3.(由passphrase=3制定) 
4)包含三種字符的密碼,最小長度為8位 
5) 包含四種字符的密碼,最小長度為8位 
6)如果發現本次修改的密碼跟老密碼有4個substring的長度類似,就認為是弱密碼。(match=4 similar=deny) 
7) 這個策略對所有用戶都生效。(enforce=everyone ) 
8)默認情況下,對於輸入的密碼,如果第一個字母是大寫字母,或者最后一個字母為數字,則不會計入密碼字符的種類。比如:Fuck1234,由於第一個F是大寫字母,所以會被認為,該密碼只有小寫字母和數字兩種字符。這個非常奇怪,我也不知道原因是什么。我們用disable_firstupper_lastdigit_check 禁止了這種識別。 

3.測試

復制代碼
echo "mhokwyaofnrd"|passwd --stdin root ##僅僅小寫,不通過 echo "IEJVRRzfdHPI"|passwd --stdin root ##大寫,小寫,不通過 echo "cyd******Ab8C"|passwd --stdin root ##大小寫,特殊字符,通過。 echo "Jes&us*****12"|passwd --stdin root ##通過
復制代碼

 

如果出現下面模塊不支持的情況


免責聲明!

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



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