Linux 控制用戶口令安全策略

1、控制用戶口令長度、有效期

/etc/login.defs 文件主要是控制密碼有效期的文件,密碼的複雜度的判斷是經過pam模塊控制來實現的,具體的模塊是pam_cracklib 測試

# vi /etc/login.defs ui

PASS_MAX_DAYS   99999    #密碼最大有效期時間,99999基本上是永久有效,通常能夠設置爲100天有效,到了100天就不能登陸了。
PASS_MIN_DAYS   0            #至少多少天后必須修改口令,通常設置0天,而到了最大有效期後就必須修改口令,不然到期鎖定了。
PASS_MIN_LEN    10            #密碼最少長度
PASS_WARN_AGE   7           #密碼失效前多少天在用戶登陸時通知用戶修改密碼 spa

保存   unix

修改命令 md5

# chage -l test ci

Last password change                                 : Aug 07, 2015
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7 it

# chage -E 2015-09-01 test   設置test賬戶的到期時間爲2015年9月1日 io

# chage -l test
Last password change                                    : Aug 07, 2015
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : Sep 01, 2015
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7 ast

# chage -M 100 test    設置test用戶口令的最大到期時間 test

# chage -l test
Last password change                                    : Aug 07, 2015
Password expires                                        : Nov 15, 2015
Password inactive                                       : never
Account expires                                         : Sep 01, 2015
Minimum number of days between password change          : 0
Maximum number of days between password change          : 100
Number of days of warning before password expires       : 7

2、控制用戶口令複雜度

檢查控制密碼複雜度軟件包是否安裝

# rpm -qa|grep cracklib
cracklib-2.8.9-3.3
cracklib-dicts-2.8.9-3.3

# vi /etc/pam.d/system-auth

password    requisite     pam_cracklib.so retry=5 minlen=10 ucredit=-1 lcredit=-3 dcredit=-1 ocredit=-1 dictpath=/usr/share/cracklib/pw_dict 
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    required     pam_deny.so

這裏要求最多嘗試5次超過鎖定,口令長度至少10位,至少1個大寫字母,至少3個小寫字母,至少1個數字,至少1個特殊字符,不能是字典中常見單詞

說明:

retry=5    嘗試次數爲5次

minlen=10    最少長度10位

ucredit=N:大寫字母,N>=0表示最多幾個大寫字母,N是負數表示至少幾個
lcredit=N:小寫字母,N>=0表示最多幾個小寫字母,N是負數表示至少幾個
dcredit=N:數字,N>=0表示最多幾個數字,N是負數表示至少幾個
ocredit=N:特殊字符,N>=0表示最多幾個特殊字符,N是負數表示至少幾個

3、測試

使用root建立一個普通用戶test並設置test的初始口令

注意:root設置普通用戶的口令時,也會檢測口令長度和複雜度,可是即便不符合要求也能夠設置成功,由於root是Linux系統的God。

使用test用戶登陸,而後經過passwd命令修改本身的口令,此時口令長度、複雜度等等要求就都開始有效了

[test@SIT ~]$ passwd Changing password for user test. Changing password for test (current) UNIX password: New UNIX password: BAD PASSWORD: it is based on a dictionary word(提示包含了字典中的單詞,過於簡單) New UNIX password: BAD PASSWORD: it does not contain enough DIFFERENT characters(提示包含了過多重複的字母) New UNIX password: BAD PASSWORD: case changes only  (這裏提示沒有大寫字母)

相關文章
相關標籤/搜索