Linux登錄訪問限制

萱蘇的運維日常 2024-03-26 15:02:21
Linux系統下的用戶密碼的有效期

可以修改密碼可以通過login.defs文件控制。設置密碼過期期限(默認情況下,用戶的密碼永不過期。)編輯 /etc/login.defs 文件,可以設置當前密碼的有效期限,具體變量如下所示:

# 查看默認配置[root@iZm5e7avacv1htxtp7qbdyZ etc]# cat login.defs | grep PASS*#       PASS_MAX_DAYS   Maximum number of days a password may be used.#       PASS_MIN_DAYS   Minimum number of days allowed between password changes.#       PASS_MIN_LEN   Minimum acceptable password length.#       PASS_WARN_AGE   Number of days warning given before a password expires.PASS_MAX_DAYS   99999PASS_MIN_DAYS   0PASS_MIN_LEN    5PASS_WARN_AGE   7# 修改參數[root@iZm5e7avacv1htxtp7qbdyZ etc]# sed -i -r 's/(PASS_MAX_DAYS)\s+[0-9]+/\1 90/' login.defs[root@iZm5e7avacv1htxtp7qbdyZ etc]# sed -i -r 's/(PASS_MIN_LEN)\s+[0-9]+/\1 8/' login.defs# 檢查修改後的結果[root@iZm5e7avacv1htxtp7qbdyZ etc]# cat login.defs | grep PASS*

參數說明:

PASS_MAX_DAYS:密碼可以使用的最多天數

PASS_MIN_DAYS:密碼更改之間允許的最小天數

PASS_MIN_LEN:可接受的最小密碼長度

PASS_WARN_AGE:密碼過期前發出警告的天數

linux 用戶密碼複雜度

用戶密碼複雜度規則設定,需要通過/etc/pam.d/system-auth文件去控制(針對的是普通用戶修改密碼會生效,root用戶無效),centos6中默認是通過pam_cracklib.so模塊控制,(在CentOS 7上實現密碼複雜度策略設置,主要是使用PAM pwquality模塊完成):

相關參數說明:

retry=3 定義登錄/修改密碼失敗時,可以重試的次數;

type=xxx 當添加/修改密碼時,系統給出的缺省提示符是什麽,用來修改缺省的密碼提示文本。默認是不修改的,如上例。

minlen=8 定義用戶密碼的最小長度爲8位

ucredit=-1 定義用戶密碼中最少有2個大寫字母 (數字爲負數,表示至少有多少個大寫字母;數字爲正數,表示至多有多少個大寫字母;下面同理)

lcredit=-1 定義用戶密碼中最少有4個小寫字母

dcredit=-1 定義用戶密碼中最少有1個數字

ocredit=-1 定義用戶密碼中最少有1個特殊字符(除數字、字母之外)

remember=3 修改用戶密碼時最近5次用過的舊密碼就不能重用了

difok=n 此選項用來規定新密碼中必需有n個字符與舊密碼不同。

minclass=n 此選項用來規定新密碼中的字符類別的最小數目,字符一般有四種類別:數字、大寫字母、小寫字母,以及特殊字符。

linux 設置登錄失敗5次,鎖定時間爲5分鍾

限制登錄通常由/etc/pam.d/login文件限制的,可直接在#%PAM-1.0下,直接添加一行

# 不限制root用戶auth required pam_tally2.so deny=3 unlock_time=5# 限制root用戶auth required pam_tally2.so deny=3 unlock_time=5 even_deny_root root_unlock_time=10

本文使用的是 pam_tally2 模塊,如果不支持 pam_tally2 模塊可以使用 pam_tally 模塊,不同的模塊設置不同,請參考模塊使用方法進行設置

也可以直接在/etc/pam.d/system-auth中設

auth     required pam_tally2.so   onerr=fail  unlock_time=1800 no_magic_rootaccount required pam_tally2.so   deny=5  unlock_time=1800 no_magic_root even_deny_root_account per_user reset

參數說明:

auth: 表示這是認證階段的規則。

required: 表示此模塊是必需的,如果它失敗,則認證失敗。

pam_tally.so: 是PAM模塊,用于跟蹤用戶登錄失敗的次數。

onerr=fail: 如果pam_tally.so模塊遇到錯誤,則認證失敗。

Unlock_time=1800: 指定用戶賬戶在被鎖定後多長時間(以秒爲單位)自動解鎖。這裏是1800秒,即30分鍾-

no_magic_root: 禁止root用戶使用特殊權限來繞過登錄失敗次數的限制。

account: 表示這是賬戶管理階段的規則。

deny=5: 指定在連續登錄失敗5次後,用戶賬戶將被鎖定。

even_deny_root_account: 即使對root用戶也執行賬戶鎖定策略。

per_user: 鎖定策略是基于每個用戶的,而不是全局的。

reset: 當用戶成功登錄後,重置登錄失敗計數器。

建議不要限制root用戶,因爲pam_tally沒有解鎖功能,哪怕配置了unlock_time也是不生效的

使用pam_tally2 -r -u username手動解鎖用戶

使用pam_tally2 –u username查看用戶錯誤登錄次數

更多相關參數請參考https://www.linux.org/docs/man8/pam_tally2.html

參考文檔

https://www.linux.org/docs/man8/pam_tally2.html

問題反饋

若對文中有任何的疑問,或者需要幫助可以通過以下方式進行反饋

直接進行評論或者單獨私聊

發送郵件到:mr_xuansu@163.com

0 阅读:0