如何設定 Linux 系統的密碼策略
雖然 Linux 的設計是安全的,但還是存在許多安全漏洞的風險,弱密碼就是其中之一。作為系統管理員,你必須為使用者提供一個強密碼。因為大部分的系統漏洞就是由於弱密碼而引發的。本教程描述了在基於 DEB 系統的 Linux,比如 Debian、Ubuntu、Linux Mint 等和基於 RPM 系統的 Linux,比如 RHEL、CentOS、Scientific Linux 等的系統下設定像密碼長度、密碼複雜度、密碼有效期等密碼策略。
在基於 DEB 的系統中設定密碼長度
預設情況下,所有的 Linux 作業系統要求使用者密碼長度最少 6 個字元。我強烈建議不要低於這個限制。並且不要使用你的真實名稱、父母、配偶、孩子的名字,或者你的生日作為密碼。即便是一個駭客新手,也可以很快地破解這類密碼。一個好的密碼必須是至少 6 個字元,並且包含數字、大寫字母和特殊符號。
通常地,在基於 DEB 的作業系統中,密碼和身份認證相關的配置檔案被儲存在 /etc/pam.d/
目錄中。
設定最小密碼長度,編輯 /etc/pam.d/common-password
檔案;
$ sudo nano /etc/pam.d/common-password
找到下面這行:
password [success=2 default=ignore] pam_unix.so obscure sha512
在末尾新增額外的文字:minlen=8
。在這裡我設定的最小密碼長度為 8
。
password [success=2 default=ignore] pam_unix.so obscure sha512 minlen=8
儲存並關閉該檔案。這樣一來,使用者現在不能設定小於 8 個字元的密碼。
在基於 RPM 的系統中設定密碼長度
在 RHEL、CentOS、Scientific Linux 7.x 系統中, 以 root 身份執行下面的命令來設定密碼長度。
# authconfig --passminlen=8 --update
檢視最小密碼長度,執行:
# grep "^minlen" /etc/security/pwquality.conf
輸出樣例:
minlen = 8
在 RHEL、CentOS、Scientific Linux 6.x 系統中,編輯 /etc/pam.d/system-auth
檔案:
# nano /etc/pam.d/system-auth
找到下面這行並在該行末尾新增:
password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8
如上設定中,最小密碼長度是 8
個字元。
在基於 DEB 的系統中設定密碼複雜度
此設定會強制要求密碼中應該包含多少型別,比如大寫字母、小寫字母和其他字元。
首先,用下面命令安裝密碼質量檢測庫:
$ sudo apt-get install libpam-pwquality
之後,編輯 /etc/pam.d/common-password
檔案:
$ sudo nano /etc/pam.d/common-password
為了設定密碼中至少有一個大寫字母,則在下面這行的末尾新增文字 ucredit=-1
。
password requisite pam_pwquality.so retry=3 ucredit=-1
設定密碼中至少有一個小寫字母,如下所示。
password requisite pam_pwquality.so retry=3 lcredit=-1
設定密碼中至少含有其他字元,如下所示。
password requisite pam_pwquality.so retry=3 ocredit=-1
正如你在上面樣例中看到的一樣,我們設定了密碼中至少含有一個大寫字母、一個小寫字母和一個特殊字元。你可以設定被最大允許的任意數量的大寫字母、小寫字母和特殊字元。
你還可以設定密碼中被允許的字元類的最大或最小數量。
下面的例子展示了設定一個新密碼中被要求的字元類的最小數量:
password requisite pam_pwquality.so retry=3 minclass=2
在基於 RPM 的系統中設定密碼複雜度
在 RHEL 7.x / CentOS 7.x / Scientific Linux 7.x 中:
設定密碼中至少有一個小寫字母,執行:
# authconfig --enablereqlower --update
檢視該設定,執行:
# grep "^lcredit" /etc/security/pwquality.conf
輸出樣例:
lcredit = -1
類似地,使用以下命令去設定密碼中至少有一個大寫字母:
# authconfig --enablerequpper --update
檢視該設定:
# grep "^ucredit" /etc/security/pwquality.conf
輸出樣例:
ucredit = -1
設定密碼中至少有一個數字,執行:
# authconfig --enablereqdigit --update
檢視該設定,執行:
# grep "^dcredit" /etc/security/pwquality.conf
輸出樣例:
dcredit = -1
設定密碼中至少含有一個其他字元,執行:
# authconfig --enablereqother --update
檢視該設定,執行:
# grep "^ocredit" /etc/security/pwquality.conf
輸出樣例:
ocredit = -1
在 RHEL 6.x / CentOS 6.x / Scientific Linux 6.x systems 中,以 root 身份編輯 /etc/pam.d/system-auth
檔案:
# nano /etc/pam.d/system-auth
找到下面這行並且在該行末尾新增:
password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1
如上設定中,密碼必須要至少包含 8
個字元。另外,密碼必須至少包含一個大寫字母、一個小寫字母、一個數字和一個其他字元。
在基於 DEB 的系統中設定密碼有效期
現在,我們將要設定下面的策略。
- 密碼被使用的最長天數。
- 密碼更改允許的最小間隔天數。
- 密碼到期之前發出警告的天數。
設定這些策略,編輯:
$ sudo nano /etc/login.defs
在你的每個需求後設定值。
PASS_MAX_DAYS 100
PASS_MIN_DAYS 0
PASS_WARN_AGE 7
正如你在上面樣例中看到的一樣,使用者應該每 100
天修改一次密碼,並且密碼到期之前的 7
天開始出現警告資訊。
請注意,這些設定將會在新建立的使用者中有效。
為已存在的使用者設定修改密碼的最大間隔天數,你必須要執行下面的命令:
$ sudo chage -M <days> <username>
設定修改密碼的最小間隔天數,執行:
$ sudo chage -m <days> <username>
設定密碼到期之前的警告,執行:
$ sudo chage -W <days> <username>
顯示已存在使用者的密碼,執行:
$ sudo chage -l sk
這裡,sk 是我的使用者名稱。
輸出樣例:
Last password change : Feb 24, 2017
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
正如你在上面看到的輸出一樣,該密碼是無限期的。
修改已存在使用者的密碼有效期,
$ sudo chage -E 24/06/2018 -m 5 -M 90 -I 10 -W 10 sk
上面的命令將會設定使用者 sk
的密碼期限是 24/06/2018
。並且修改密碼的最小間隔時間為 5
天,最大間隔時間為 90
天。使用者賬號將會在 10
天后被自動鎖定,而且在到期之前的 10
天前顯示警告資訊。
在基於 RPM 的系統中設定密碼效期
這點和基於 DEB 的系統是相同的。
在基於 DEB 的系統中禁止使用近期使用過的密碼
你可以限制使用者去設定一個已經使用過的密碼。通俗的講,就是說使用者不能再次使用相同的密碼。
為設定這一點,編輯 /etc/pam.d/common-password
檔案:
$ sudo nano /etc/pam.d/common-password
找到下面這行並且在末尾新增文字 remember=5
:
password [success=2 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512 remember=5
上面的策略將會阻止使用者去使用最近使用過的 5 個密碼。
在基於 RPM 的系統中禁止使用近期使用過的密碼
這點對於 RHEL 6.x 和 RHEL 7.x 和它們的衍生系統 CentOS、Scientific Linux 是相同的。
以 root 身份編輯 /etc/pam.d/system-auth
檔案,
# vi /etc/pam.d/system-auth
找到下面這行,並且在末尾新增文字 remember=5
。
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5
現在你瞭解了 Linux 中的密碼策略,以及如何在基於 DEB 和 RPM 的系統中設定不同的密碼策略。
就這樣,我很快會在這裡發表另外一天有趣而且有用的文章。在此之前請保持關注。如果您覺得本教程對你有幫助,請在您的社交,專業網路上分享並支援我們。
via: https://www.ostechnix.com/how-to-set-password-policies-in-linux/
相關文章
- Linux設定密碼策略Linux密碼
- Win8.1系統如何設定喚醒密碼密碼
- 【Linux】Linux作業系統 設定GRUB選單密碼Linux作業系統密碼
- Win10如何設定開機密碼 win10系統設定開機密碼的步驟Win10密碼
- Win7旗艦版系統如何設定WLAN密碼?Win7旗艦版系統WLAN密碼的設定教程Win7密碼
- Linux賬戶密碼過期安全策略設定Linux密碼
- Win10系統如何設定鎖屏密碼 win10系統取消鎖屏密碼的方法Win10密碼
- Linux 如何設定密碼複雜度?Linux密碼複雜度
- win10系統下如何設定guest賬戶密碼Win10密碼
- win10系統如何設定掛機密碼【圖文】Win10密碼
- mysql如何設定密碼MySql密碼
- win10電腦開機密碼怎麼設定_win10系統如何設定開機密碼Win10密碼
- 談談系統密碼儲存策略密碼
- 防止系統升級,如何給你的Mac設定韌體密碼呢?Mac密碼
- windows系統怎樣設定開機密碼Windows密碼
- 電腦開機密碼怎麼設定?XP系統和win7系統電腦開機密碼的設定方法密碼Win7
- Centos系統設定GRUB開機選單的密碼CentOS密碼
- 直播系統搭建,docker Elasticsearch 7.16.1 設定密碼DockerElasticsearch密碼
- 設定不輸入密碼直接登陸系統密碼
- Linux 系統中如何設定印表機?Linux
- Linux系統如何設定開機自動執行指令碼?Linux指令碼
- Win10系統怎麼設定待機密碼Win10密碼
- Win10系統設定開機密碼操作流程Win10密碼
- win10系統怎麼設定開機密碼?win10電腦設定開機密碼的方法教程Win10密碼
- Win10怎樣設定電腦開機密碼 win10系統設定開機密碼的步驟Win10密碼
- Linux系統密碼忘記Linux密碼
- 直播系統程式碼,Android獲取、設定鎖屏密碼Android密碼
- 如何給PDF檔案設定密碼?密碼
- Linux下設定redis訪問密碼LinuxRedis密碼
- Linux 使用者和密碼設定Linux密碼
- linux 設定ssh無密碼登陸Linux密碼
- windows系統上安裝Redis,並且設定Redis密碼WindowsRedis密碼
- win10系統下給資料夾設定密碼的方法Win10密碼
- win10資料夾如何設定密碼 win10資料夾設定密碼的方法Win10密碼
- linux系統設定IP的方法Linux
- win10設定硬碟密碼怎麼取消 win10硬碟設定密碼如何取消Win10硬碟密碼
- redis設定密碼Redis密碼
- cobbler 忘記好系統登入密碼,如何修改cobbler部署機器的預設密碼密碼