監測Linux上失敗的登錄嘗試方法分享

導讀 登錄失敗可能是正當的人爲錯誤,也可能是企圖闖入Linux系統的嘗試,但無論怎樣,它們都可能標記出了值得關注的舉動。

Linux服務器上重複的失敗登錄嘗試可能表明有人企圖闖入帳戶,或者僅僅意味着有人忘了密碼或輸錯密碼。本文介紹瞭如何檢查失敗的登錄嘗試並檢查系統的設置,查看何時鎖住帳戶以處理問題。

監測Linux上失敗的登錄嘗試方法分享監測Linux上失敗的登錄嘗試方法分享

您要了解的第一件事是如何檢查登錄是否失敗。以下命令在Ubuntu和相關係統上使用的/var/log/auth.log文件中查找登錄失敗的跡象。有人嘗試使用錯誤或拼錯的密碼登錄時,失敗的登錄將顯示以下行:

$ sudo grep "Failed password" /var/log/auth.log | head -3 
Nov 17 15:08:39 localhost sshd[621893]: Failed password for nemo from 192.168.0.7 port 8132 ssh2 
Nov 17 15:09:13 localhost sshd[621893]: Failed password for nemo from 192.168.0.7 port 8132 ssh2

您可以使用這樣的命令按帳戶彙總失敗登錄的情況:

$ sudo grep "Failed password" /var/log/auth.log | grep -v COMMAND | awk '{print $9}' | sort | uniq -c 
     22 nemo 
      1 shs 
      2 times: 

該命令按用戶名(grep輸出的第9列)彙總失敗的登錄。它避免了查看含有“COMMAND”一詞的行,跳過含有“Failed passwords”短語的查詢(比如運行上面運行的命令的人)。 “times:”字符串表明重複嘗試的次數比報告的次數還多。這些來自含有“消息重複5次:”的行,快速連續多次輸錯密碼後,這些行可能被添加到日誌文件中。

您可能要檢查的另一個方面是失敗的登錄嘗試來自何處。爲此,如本例所示,將您關注的字段從第九個更改爲第十一個:

$ sudo grep "Failed password" /var/log/auth.log | grep -v COMMAND | awk '{print $11}' | sort | uniq -c 
     23 192.168.0.7 

比如說,如果您發現多個用戶的失敗登錄來自單單一個系統,這可能特別可疑。

在RHEL、Centos和相關係統中,您可以在/var/log/secure文件中找到與失敗登錄有關的消息。您可以使用與上述基本相同的查詢來計數。只需更改文件名,如下所示:

$ sudo grep "Failed password" /var/log/secure | awk '{print $9}' | sort | uniq -c 
      6 nemo 

覈查/etc/pam.d/password-auth和/etc/pam.d/system-auth文件中的設置。添加這樣的行將強制執行您的設置。

檢查faillog

您可能關注過faillog命令,但是該命令查看的/var/log/faillog文件如今似乎在許多系統上並沒有使用。如果您使用faillog -a命令,會得到類似如下所示的在時間列中列出12/31/69的輸出,很明顯該文件並未使用。

$ faillog -a 
Login       Failures Maximum Latest                On 
 
root            0        0   12/31/69 19:00:00 -0500 
daemon          0        0   12/31/69 19:00:00 -0500 
bin             0        0   12/31/69 19:00:00 -0500 
sys             0        0   12/31/69 19:00:00 -0500 

顯示的日期和時間可以追溯到Unix的開始(01/01/70)――可能針對本地時區進行了更正。如果您運行下面顯示的命令,可以證實文件不是空的,但不包含實際數據:

$ ls -l /var/log/faillog 
-rw-r--r-- 1 root root 32576 Nov 12 12:12 /var/log/faillog 
$ od -bc /var/log/faillog 
0000000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 
         \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0 
* 
0077500 

如果faillog文件確實在使用中,您應該會看到最近的活動,並不提及1969錯誤提示。

如何迴應?

失敗登錄的原因有很多。可能是您的一個用戶在大寫鎖定鍵開啓的情況下試圖登錄,卻沒有注意到。也許用戶最近更改了密碼,卻忘了更改密碼這回事,嘗試使用舊密碼。也許用戶在嘗試在其他系統上使用的密碼。如果您在運行查詢時經常出現某個特定的帳戶,應調查一下。然而,偶爾失敗的登錄嘗試很常見。

檢查設置

要查看系統如何經過設置來處理失敗的登錄,請檢查/etc/pam.d/common-auth文件。它用於帶有Linux可插拔身份驗證模塊(PAM)的系統。該文件中的兩個設置控制着暫時鎖定帳戶之前允許多少次失敗的登錄嘗試以及鎖住該帳戶多長時間。

六次失敗的登錄嘗試後,這樣一行將使PAM鎖住帳戶。鎖住時間將持續五分鐘(300秒)。Linux就該這麼學

auth required pam_tally2.so deny=6 unlock_time=300 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章