前言
昨天深夜一點多接到客戶電話,客戶說OS用戶下午下班前還能正常登錄。因為晚上一點半需要關閉所有服務進行遷移,但是用戶無法登錄了,導致后續流程無法執行。我讓他先通過root用戶緊急修改了密碼,先保證業務正常流轉。
問題
1、為什么OS用戶突然無法登錄?
思考方向
1、擁有root賬號的用戶是否臨時更改了原OS密碼,沒有及時告知相關人員?
2、是否有其它服務器使用該OS賬號與當前服務器通信,改密碼后是否同步了所有使用該服務器的相關用戶密碼?
3、是否有OS級別的審計、安全漏掃等工具正在工作,導致非服務器IP被禁止訪問?
檢查
第二天一大早就跑到公司與客戶face to face的溝通,仔細驗證流程并詢問擁有root賬號的用戶是否更改過OS密碼。均未得到想要的答案,但是他們告訴我網管會定期更新密碼并執行安全漏掃。然后找到網管詢問是否同步了所有使用該服務器賬號的用戶新密碼,得到了肯定的答復。最后我詢問了他們昨晚是否有OS級別的審計或者安全漏掃工作,同樣得到了肯定的答復,但網管回應安全漏掃并未成功執行,看了下安全漏掃的配置文件,發現新密碼未同步。最后破大案了。
結語
以上的處理思路并不包括所有,只是當下能想到的幾個方向。同時可以通過Linux級別查詢,不需要浪費太多時間在詢問用戶的身上。畢竟有時候大家都想著甩鍋,所以通過事實說話才是最有力的。所以接下來我將提供如何在Linux上排查此類問題的方式。
linux如何排查用戶賬號被鎖
1、驗證賬號是否能夠登錄
-- 遠程連接錯誤login as: testqa@192.168.211.132's password:Access denied qa@192.168.211.132's password:
2、查看賬號是否被鎖
[root@qaupdb ~]# passwd -S test
oraprod LK 2025-04-28 0 99999 7 -1 (Password locked.) -- 如果用戶后面出現 Password locked. 。有兩種可能-- 用戶并沒有被設置初始密碼[root@qaupdb ~]# grep qa /etc/shadowqa:!!:20206:0:99999:7::: -- 此處未顯示密文,則代表著當前用戶并未設置初始密碼。無法實現直接登錄,僅通過root用戶切換
-- 用戶賬號被鎖[root@qaupdb ~]# grep qa /etc/shadowqa:!$1$tPwjPzUA$wBqNPzAw5dxll2tm5KtVv1:20206:0:99999:7::: -- 如果用戶賬號被鎖,在密文前會有一個感嘆號。
3、查看用戶賬號登錄失敗次數
# 注意:如果 Failures 出現異常次數,考慮是否存在程序登錄、或密碼暴露被強行破解測試
[root@qaupdb ~]# pam_tally2 --user test
Login Failures Latest failure From
test 300
4、查看用戶登錄信息
注意:此處通過Linux系統的安全日志查看,當前用戶被頻繁登錄的客戶端IP是哪
$ tail -n 100 /var/log/secureApr 28 16:42:06 qaupdb--【主機名稱】 su -- 【通過賬號實現切換的信息,具體由哪個賬號切換在最后顯示】: pam_unix(su-l:session): session closed for user oraprod -- 【執行切換賬號的用戶 oraprod】
Apr 28 16:43:10 qaupdb useradd[11728]: new user: name=test, UID=501, GID=500, home=/home/test, shell=/bin/bash
Apr 28 16:43:25 qaupdb passwd: pam_unix(passwd:chauthtok): password changed for test
Apr 28 16:44:07 qaupdb usermod[11738]: lock user `test' password
Apr 28 16:44:30 qaupdb sshd -- 【sshd的方式通過遠程登錄實現】[11745]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.220.170 user=test -- 【當前用戶顯示的認證失敗的用戶】
Apr 28 16:44:32 qaupdb sshd[11745]: Failed password for test from 192.168.220.170 -- 【當前IP顯示的是用認證失敗賬號登錄的客戶端地址】 port 51620 ssh2
Apr 28 16:45:14 qaupdb usermod[11754]: unlock user `test' password
Apr 28 16:45:17 qaupdb sshd[11745]: Accepted password for test from 192.168.220.170 port 51620 ssh2
Apr 28 16:45:17 qaupdb sshd[11745]: pam_unix(sshd:session): session opened for user test by (uid=0)
Apr 28 16:45:17 qaupdb sshd[11760]: Accepted password for test from 192.168.220.170 port 51635 ssh2
Apr 28 16:45:17 qaupdb sshd[11760]: pam_unix(sshd:session): session opened for user test by (uid=0)
Apr 28 16:45:17 qaupdb sshd[11763]: subsystem request for sftp
Apr 28 16:45:20 qaupdb sshd[11745]: pam_unix(sshd:session): session closed for user test
Apr 28 16:45:21 qaupdb sshd[11760]: pam_unix(sshd:session): session closed for user test
5、清空登錄失敗次數
$ pam_tally2 -r -u test
6、解鎖用戶
$ usermod -U test
7、登錄即可