Linux用戶密碼策略


Linux用戶密碼的有效期,是否可以修改密碼可以通過login.defs文件控制.對login.defs文件修只影響后續建立的用戶,如果要改變以前建立的用戶的有效期等可以使用chage命令.

        Linux用戶密碼的復雜度可以通過pam pam_cracklib module或pam_passwdqc module控制,兩者不能同時使用. 個人感覺pam_passwdqc更好用.

/etc/login.defs密碼策略

PASS_MAX_DAYS   99999     #密碼的最大有效期, 99999:永久有期

PASS_MIN_DAYS   0          #是否可修改密碼,0可修改,非0多少天后可修改

PASS_MIN_LEN    5          #密碼最小長度,使用pam_cracklib module,該參數不再有效

PASS_WARN_AGE   7         #密碼失效前多少天在用戶登錄時通知用戶修改密碼

pam_cracklib主要參數說明:

tretry=N:重試多少次后返回密碼修改錯誤

                 difok=N:新密碼必需與舊密碼不同的位數

                 dcredit=N: N >= 0:密碼中最多有多少個數字;N < 0密碼中最少有多少個數字.

                 lcredit=N:小寶字母的個數

                 ucredit=N大寶字母的個數

                 credit=N:特殊字母的個數

                 minclass=N:密碼組成(大/小字母,數字,特殊字符)

pam_passwdqc主要參數說明:

mix:設置口令字最小長度,默認值是mix=disabled。

max:設置口令字的最大長度,默認值是max=40。

passphrase:設置口令短語中單詞的最少個數,默認值是passphrase=3,如果為0則禁用口令短語。

atch:設置密碼串的常見程序,默認值是match=4。

similar:設置當我們重設口令時,重新設置的新口令能否與舊口令相似,它可以是similar=permit允許相似或similar=deny不允許相似。

random:設置隨機生成口令字的默認長度。默認值是random=42。設為0則禁止該功能。

enforce:設置約束范圍,enforce=none表示只警告弱口令字,但不禁止它們使用;enforce=users將對系統上的全體非根用戶實行這一限制;enforce=everyone將對包括根用戶在內的全體用戶實行這一限制。

non-unix:它告訴這個模塊不要使用傳統的getpwnam函數調用獲得用戶信息,

retry:設置用戶輸入口令字時允許重試的次數,默認值是retry=3

 

密碼復雜度通過/etc/pam.d/system-auth實施

如:

要使用pam_cracklib將注釋去掉,把pam_passwdqc.so注釋掉即可.

#password    requisite     /lib/security/$ISA/pam_cracklib.so retry=3 difok=1

password    requisite     /lib/security/$ISA/pam_passwdqc.so min=disabled,24,12,8,7 passphrase=3

password    sufficient    /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow

 

#password    requisite     /lib/security/$ISA/pam_cracklib.so retry=3 difok=1

新密碼至少有一位與原來的不同

 PASS_MIN_DAYS參數則設定了在本次密碼修改后,下次允許更改密碼之前所需的最少天數。PASS_WARN_AGE的設定則指明了在口令失效前多少天開始通知用戶更改密碼(一般在用戶剛剛登陸系統時就會收到警告通知)。

你也會編輯/etc/default/useradd文件,尋找INACTIVE和EXPIRE兩個關鍵詞:

INACTIVE=14

EXPIRE=

    這會指明在口令失效后多久時間內,如果口令沒有進行更改,則將賬戶更改為失效狀態。在本例中,這個時間是14天。而EXPIRE的設置則用於為所有新用戶設定一個密碼失效的明確時間(具體格式為“年份-月份-日期”)。

    顯然,上述這些設定更改之后,只能影響到新建立的用戶。要想修改目前已存在的用戶具體設置,需要使用chage工具。

# chage -M 60 joe

這條命令將設置用戶joe的PASS_MAX_DAYS為60,並修改對應的shadow文件。

    你可以使用chage -l的選項,列出當前的賬戶時效情況,而使用-m選項是設置PASS_MIN_DAYS,用-W則是設置PASS_WARN_AGE,等等。chage工具可以讓你修改特定賬戶的所有密碼時效狀態。

    注意,chage僅僅適用於本地系統的賬戶,如果你在使用一個類似LDAP這樣的認證系統時,該工具會失效。如果你在使用LDAP作為認證,而你又打算使用chage,那么,哪怕僅僅是試圖列出用戶密碼的時效信息,你也會發現chage根本不起作用。

    制定一項策略,定義多長時間一個密碼必須進行更改,然后強制執行該策略,是非常不錯的一個做法。在解雇了某個雇員后,口令時效策略會保證該雇員不可能在被解雇3個月后發現他的口令依然可用。即使系統管理員忽略了刪除他的帳號,該帳號也會因密碼時效策略而被自動鎖定。當然,這一點並不能成為不及時刪除該雇員帳號的理由,但是這個策略的確提供了一層額外的安全防護,尤其是在過去常常忽視及時清理帳號的情況下。


免責聲明!

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



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