天天看點

Linux 如何設定密碼複雜度

對于 Linux 系統管理者來說,使用者管理是最重要的事之一。這涉及到很多因素,實作強密碼政策是使用者管理的其中一個方面。移步後面的 URL 檢視如何 在 Linux 上生成一個強密碼。它會限制系統未授權的使用者的通路。

所有人都知道 Linux 的預設政策很安全,然而我們還是要做一些微調,這樣才更安全。弱密碼有安全隐患,是以,請特别注意。移步後面的 URL 檢視生成的強密碼的密碼長度和分值。本文将教你在 Linux 中如何實作最安全的政策。在大多數 Linux 系統中,我們可以用 PAM(可插拔認證子產品pluggable authentication module)來加強密碼政策。在下面的路徑可以找到這個檔案。

◈ 在紅帽系列的系統中,路徑:/etc/pam.d/system-auth。

◈ Debian 系列的系統中,路徑:/etc/pam.d/common-password。

關于預設的密碼過期時間,可以在 /etc/login.defs 檔案中檢視詳細資訊。

為了更好了解,我摘取了檔案的部分内容:

# vi /etc/login.defs
PASS_MAX_DAYS   99999
PASS_MIN_DAYS   0
PASS_MIN_LEN    5
PASS_WARN_AGE   7      

詳細解釋:

◈ PASS_MAX_DAYS:一個密碼可使用的最大天數。

◈ PASS_MIN_DAYS:兩次密碼修改之間最小的間隔天數。

◈ PASS_MIN_LEN:密碼最小長度。

◈ PASS_WARN_AGE:密碼過期前給出警告的天數。

我們将會展示在 Linux 中如何實作下面的 11 個密碼政策。

◈ 一個密碼可使用的最大天數

◈ 兩次密碼修改之間最小的間隔天數

◈ 密碼過期前給出警告的天數

◈ 密碼曆史記錄/拒絕重複使用密碼

◈ 密碼最小長度

◈ 最少的大寫字母個數

◈ 最少的小寫字母個數

◈ 最少的數字個數

◈ 最少的其他字元(符号)個數

◈ 賬号鎖定 — 重試

◈ 賬号解鎖時間

密碼可使用的最大天數是什麼?

這一參數限制一個密碼可使用的最大天數。它強制使用者在過期前修改他/她的密碼。如果他們忘記修改,那麼他們會登入不了系統。他們需要聯系管理者才能正常登入。這個參數可以在 /etc/login.defs 檔案中設定。我把這個參數設定為 90 天。

# vi /etc/login.defs
PASS_MAX_DAYS   90      

密碼最小天數是什麼?

這個參數限制兩次修改之間的最少天數。舉例來說,如果這個參數被設定為 15 天,使用者今天修改了密碼,那麼在 15 天之内他都不能修改密碼。這個參數可以在 /etc/login.defs 檔案中設定。我設定為 15 天。

# vi /etc/login.defs
PASS_MIN_DAYS   15      

密碼警告天數是什麼?

這個參數控制密碼警告的前置天數,在密碼即将過期時會給使用者警告提示。在警告天數結束前,使用者會收到日常警告提示。這可以提醒使用者在密碼過期前修改他們的密碼,否則我們就需要聯系管理者來解鎖密碼。這個參數可以在 /etc/login.defs 檔案中設定。我設定為 10 天。

# vi /etc/login.defs
PASS_WARN_AGE   10      

注意: 上面的所有參數僅對新賬号有效,對已存在的賬号無效。

密碼曆史或拒絕重複使用密碼是什麼?

這個參數控制密碼曆史。它記錄曾經使用過的密碼(禁止使用的曾用密碼的個數)。當使用者設定新的密碼時,它會檢查密碼曆史,如果他們要設定的密碼是一個曾經使用過的舊密碼,将會發出警告提示。這個參數可以在 /etc/pam.d/system-auth 檔案中設定。我設定密碼曆史為 5。

# vi /etc/pam.d/system-auth
password  sufficient  pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5      

密碼最小長度是什麼?

這個參數表示密碼的最小長度。當使用者設定新密碼時,系統會檢查這個參數,如果新設的密碼長度小于這個參數設定的值,會收到警告提示。這個參數可以在 /etc/pam.d/system-auth 檔案中設定。我設定最小密碼長度為 12。

# vi /etc/pam.d/system-auth
password  requisite   pam_cracklib.so try_first_pass retry=3 minlen=12      

try_first_pass retry=3:在密碼設定互動界面,使用者有 3 次機會重設密碼。

設定最少的大寫字母個數?

這個參數表示密碼中至少需要的大寫字母的個數。這些是密碼強度參數,可以讓密碼更健壯。當使用者設定新密碼時,系統會檢查這個參數,如果密碼中沒有大寫字母,會收到警告提示。這個參數可以在 /etc/pam.d/system-auth 檔案中設定。我設定密碼(中的大寫字母)的最小長度為 1 個字母。

# vi /etc/pam.d/system-auth
password   requisite   pam_cracklib.so try_first_pass retry=3 minlen=12 ucredit=-1      

設定最少的小寫字母個數?

這個參數表示密碼中至少需要的小寫字母的個數。這些是密碼強度參數,可以讓密碼更健壯。當使用者設定新密碼時,系統會檢查這個參數,如果密碼中沒有小寫字母,會收到警告提示。這個參數可以在 /etc/pam.d/system-auth 檔案中設定。我設定為 1 個字母。

# vi /etc/pam.d/system-auth
password    requisite     pam_cracklib.so try_first_pass retry=3 minlen=12 lcredit=-1      

設定密碼中最少的數字個數?

這個參數表示密碼中至少需要的數字的個數。這些是密碼強度參數,可以讓密碼更健壯。當使用者設定新密碼時,系統會檢查這個參數,如果密碼中沒有數字,會收到警告提示。這個參數可以在 /etc/pam.d/system-auth 檔案中設定。我設定為 1 個數字。

# vi /etc/pam.d/system-auth
password    requisite     pam_cracklib.so try_first_pass retry=3 minlen=12 dcredit=-1      

設定密碼中最少的其他字元(符号)個數?

這個參數表示密碼中至少需要的特殊符号的個數。這些是密碼強度參數,可以讓密碼更健壯。當使用者設定新密碼時,系統會檢查這個參數,如果密碼中沒有特殊符号,會收到警告提示。這個參數可以在 /etc/pam.d/system-auth 檔案中設定。我設定為 1 個字元。

# vi /etc/pam.d/system-auth
password    requisite     pam_cracklib.so try_first_pass retry=3 minlen=12 ocredit=-1      
# vi /etc/pam.d/system-auth
auth        required      pam_tally2.so onerr=fail audit silent deny=5
account required pam_tally2.so      
# vi /etc/pam.d/system-auth
auth        required      pam_tally2.so onerr=fail audit silent deny=5 unlock_time=900
account required pam_tally2.so      

繼續閱讀