隨著雲端計算廠商的興起,雲資源如ECS不再只有企業或者公司才會使用,普通人也可以自己買一臺ECS來搭建自己的應用或者網站。雖然雲端計算廠商幫我們做了很多安全相關的工作,但並不代表我們的機器資源就絕對是安全的。
要知道有很多事情是雲端計算廠商不能為我們做的,就比如賬號密碼的安全策略設定,而賬號密碼的安全又是Linux安全中的第一道安全鎖,我們必須重視起來。
比如一個具有公網IP的伺服器,我們可以使用Linux連線工具或者ssh在本地進行連線,如果密碼太簡單並且沒有錯誤次數限制,我們完全可以暴力破解出來,這屬於【高危】漏洞。
-- 輸入指令
chage -l root
-- 返回結果
Last password change : Jun 14, 2022
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
-- 翻譯過來:
最近一次密碼修改時間 : 6月 14, 2022
密碼過期時間 :從不過期
密碼失效時間 :從不
帳戶過期時間 :從不
兩次改變密碼之間相距的最小天數 :任何時候都可以改
兩次改變密碼之間相距的最大天數 :永遠不需要改
在密碼過期之前警告的天數 :7
這種賬號肯定是有風險的,尤其還是root賬戶,一旦被破解,那這臺Linux伺服器基本上涼涼。
設定密碼失效時間,強制定期修改密碼,減少密碼被洩漏和猜測風險,使用非密碼登陸方式(如金鑰對)請忽略此項。
在 /etc/login.defs
中將 PASS_MAX_DAYS 引數設定為 60-180之間,如:
--兩次改變密碼之間相距的最大天數,密碼有效最大天數
PASS_MAX_DAYS 90
注意:以上只對之後新增的使用者有效,如果要修改已存在的使用者密碼規則,需要使用chage命令
設定密碼修改最小間隔時間,限制密碼更改過於頻繁
在 /etc/login.defs
中將 PASS_MIN_DAYS 引數設定為7-14之間,建議為7:
--兩次改變密碼之間相距的最小天數,為零時代表任何時候都可以更改密碼
PASS_MIN_DAYS 7
注意:以上只對之後新增的使用者有效,如果要修改已存在的使用者密碼規則,需要使用chage命令
裝置警告的天數,可以讓我們備份舊密碼、準備新密碼
在 /etc/login.defs
中將 PASS_WARN_AGE 引數設定為7天
PASS_WARN_AGE 7
注意:以上只對之後新增的使用者有效,如果要修改已存在的使用者密碼規則,需要使用chage命令
簡單的密碼安全性很差,一般建議密碼長度大於8,包括大小寫字母、數位、特殊字元等
在 /etc/pam.d/common-password
新增如下內容(如果沒有該檔案自己建立一個):
# /etc/pam.d/common-password - password-related modules common to all services
password requisite pam_cracklib.so retry=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
password [success=1 default=ignore] pam_unix.so sha512
password requisite pam_deny.so
password required pam_permit.so
注意:以上只對之後新增的使用者有效,如果要修改已存在的使用者密碼規則,需要使用chage命令
強制使用者不重用最近使用的密碼,降低密碼猜測攻擊風險
在/etc/pam.d/password-auth
和/etc/pam.d/system-auth
中password sufficient pam_unix.so 這行的末尾設定remember引數為5-24之間,原來的內容不用更改,只在末尾加了remember=5。
設定SSH空閒超時退出時間,可降低未授權使用者存取其他使用者ssh對談的風險
編輯/etc/ssh/sshd_config
,將ClientAliveInterval 設定為300到900,即5-15分鐘,將ClientAliveCountMax設定為0-3之間。
ClientAliveInterval 600
ClientAliveCountMax 2
策略要求:
- 設定鎖定的閾值為5次
- 鎖定時間為5分鐘即300秒
- 必須所有使用者都受限,包括root
修改組態檔/etc/pam.d/system-auth-ac
和/etc/pam.d/password-auth-ac
auth required pam_env.so
auth required pam_tally2.so even_deny_root deny=5 unlock_time=60
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth required pam_deny.so
account required pam_unix.so
account required pam_tally2.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account required pam_permit.so
auth required pam_env.so
auth required pam_tally2.so deny=5 unlock_time=60
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth required pam_deny.so
account required pam_unix.so
account required pam_tally2.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account required pam_permit.so
-- 輸入命令
pam_tally2 -u root
-- 輸出結果
Login Failures Latest failure From
root 0
-- 輸入命令
pam_tally2 -r -u root
-- 輸出結果
Login Failures Latest failure From
root 0
溫馨提示:login.defs檔案和/etc/pam.d/system-auth檔案的規則設定對非root使用者起作用,在root使用者下則不會生效!如果設定root使用者密碼過期時間等,需要用chage命令進行設定。
chage命令使用範例:
基本格式:chage [選項] 賬戶名
-- 檢視系統賬戶的當前設定
chage -l username
-- 設定使用者設定密碼失效時間
chage --maxdays 90 username
-- 設定使用者密碼修改最小間隔時間
chage --mindays 7 username
本文來自部落格園,作者:sum墨,轉載請註明原文連結:https://www.cnblogs.com/wlovet/p/17783140.html