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

安全劍客發表於2020-12-10
登入失敗可能是正當的人為錯誤,也可能是企圖闖入 的嘗試,但無論怎樣,它們都可能標記出了值得關注的舉動。

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

監測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、 和相關係統中,您可以在/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秒)。

auth required pam_tally2.so deny=6 unlock_time=300

原文地址:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2740921/,如需轉載,請註明出處,否則將追究法律責任。

相關文章