因多次登录失败导致的账户锁定,ssh无法登录处理
一、【問題描述】
因項目中同時用普通用戶登錄ssh服務器時,密碼過期嘗試登錄次數過多,找到我們運維處理,經過對用戶修改密碼,并測試賬戶本地可以正常登錄,但測試xshell進行ssh登錄失敗,檢查賬戶并未處于鎖定狀態。
二、【問題分析】
1、賬戶未鎖定:passwd -s 用戶名
usermod -S 用戶名
2、xshell用該賬戶登錄,遠程主機本地查看ssh服務狀態,看到用戶不在pam_tally2里,而且用戶被拒絕連接;
3、用戶被鎖定查并確認情況,檢查/etc/pam.d/security和/var/log/auth,查看etc/pam.d/下的sshd文件;看是否有pam_tally2.so模塊
4、查看ssh登錄是否啟用PAM模塊,查看/etc/ssh/sshd_config,搜索PAM,可知默認PAM是啟用狀態;
5、驗證并查看ssh啟用的pam模塊;
以上結果表明ssh服務啟用了pam模塊;
6、按照提示找到/etc/pam.d/sshd,內容如下:
注意:上圖中的auth和account區塊內關于pam_tally2的內容,該模塊用于在對系統進行一定次數的失敗ssh登錄嘗試后鎖定用戶,其中其選項解釋如下:
-
deny 指定最大幾次認證錯誤,如果超出此錯誤,將執行后面的策略。如鎖定N秒,如果后面沒有其他策略 指定時,默認永遠鎖定,須手動解鎖。
-
file 記錄日志的路徑,默認是/var/log/tallylog
-
lock_time 鎖定多長時間,按秒為單位;
-
onerr=fail 表示連續失敗
-
unlock_time 指定認證被鎖后,多長時間自動解鎖用戶;
-
even_deny_root root用戶在認證出錯時,一樣被鎖定
-
root_unlock_time root用戶在失敗時,鎖定多長時間。該選項一般是配合even_deny_root 一起使用的。
注意:用戶鎖定期間,無論在輸入正確還是錯誤的密碼,都將視為錯誤密碼,并以最后一次登錄為鎖定起始時間,若果用戶解鎖后輸入密碼的第一次依然為錯誤密碼,則再次重新鎖定。
三、【問題處理】
手動解鎖sshd鎖定賬戶,并清除鎖定計數器數值,執行以下命令:
#pam_tally2 --user root ------------查看指定用戶登錄失敗的次數 #pam_tally2 -u albert -r ------------解鎖指定用戶并清除計數器失敗次數 #pam_tally2 --user root ------------再次查證驗證,這時的計算器數值為0,可遠程ssh測試,現場ok至此,以上問題解決。
附錄:
Linux-PAM (Pluggable Authentication Modules for Linux)可插拔認證模塊。
Linux-PAM是一套適用于Linux的身份驗證共享庫系統,它為系統中的應用程序或服務提供動態身份驗證模塊支持。在Linux中,PAM是可動態配置的,本地系統管理員可以自由選擇應用程序如何對用戶進行身份驗證。PAM應用在許多程序與服務上,比如登錄程序(login、su)的PAM身份驗證(口令認證、限制登錄),passwd強制密碼,用戶進程實時管理,向用戶分配系統資源等。
PAM的主要特征是認證的性質是可動態配置的。PAM的核心部分是庫(libpam)和PAM模塊的集合,它們是位于文件夾/lib/security/中的動態鏈接庫(.so)文件,以及位于/etc/pam.d/目錄中(或者是/etc/pam.conf配置文件)的各個PAM模塊配置文件。/etc/pam.d/目錄中定義了各種程序和服務的PAM配置文件,其中system-auth文件是PAM模塊的重要配置文件,它主要負責用戶登錄系統的身份認證工作。而/etc/pam.d/目錄包含應用程序的PAM配置文件。
每個PAM配置文件都包含一組指令,用于定義模塊以及控制標志和參數。每條指令都有一個簡單的語法,用于標識模塊的目的(接口)和模塊的配置設置,語法格式如下:
module_interface control_flag module_name module_arguments示例:
PAM模塊接口(模塊管理組):
PAM為認證任務提供四種類型可用的模塊接口,它們分別提供不同的認證服務,如下表所示
PAM控制標志:
所有的PAM模塊被調用時都會返回成功或者失敗的結果,每個PAM模塊中由多個對應的控制標志決定結果是否通過或失敗。每一個控制標志對應一個處理結果,PAM庫將這些通過/失敗的結果整合為一個整體的通過/失敗結果,然后將結果返回給應用程序。模塊可以按特定的順序堆疊??刂茦酥臼菍崿F用戶在對某一個特定的應用程序或服務身份驗證的具體實現細節。該控制標志是PAM配置文件中的第二個字段,PAM控制標志如下:
模塊幫助說明:man 后跟模塊名即可(模塊名可以在目錄/lib/security/或/lib64/security/中找到)。
附錄:開啟sshd的syslog日志監控登錄情況:
編輯配置文件:/etc/ssh/sshd_config,增加syslog配置
編輯syslog配置文件/etc/syslog.conf:
# Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.* /dev/console # Log anything (except mail) of level info or higher. # Dont log private authentication messages! *.info;mail.none;authpriv.none;cron.none /var/log/messages # The authpriv file has restricted access. <strong>authpriv.* /var/log/secur</strong>e重新啟動sshd和syslog即可。
更多SSH登錄問題參看。
總結
以上是生活随笔為你收集整理的因多次登录失败导致的账户锁定,ssh无法登录处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SHL笔试全攻略(转)
- 下一篇: 奔驰北京工厂两年内将再投产三款电动车;希