如何監控Linux用戶登錄嘗試 faillog查看失敗登錄記錄

監控linux用戶登錄嘗試的方法有:1.使用faillog查看失敗記錄;2.配置pam_faillock.so鎖定賬戶;3.監控日志文件實時追蹤;4.設置郵件告警。具體如下:使用faillog命令可查看或重置用戶登錄失敗次數,如sudo faillog -u john清除特定用戶的記錄;通過在/etc/pam.d/sshd中添加pam_faillock.so模塊并設置deny=3和unlock_time=900實現三次失敗后鎖定15分鐘;使用tail -f或grep命令監控/var/log/auth.log中的登錄嘗試,并結合awk統計ip的失敗次數;安裝fail2ban配置jail.local文件,定義封禁規則與郵件通知,當檢測到三次錯誤密碼時自動封禁ip并發送郵件告警。

如何監控Linux用戶登錄嘗試 faillog查看失敗登錄記錄

直接告訴你怎么監控linux用戶登錄嘗試,最簡單也最常用的就是用faillog來查看失敗的登錄記錄。

如何監控Linux用戶登錄嘗試 faillog查看失敗登錄記錄

解決方案

faillog命令可以顯示登錄失敗的嘗試次數。它會讀取/var/log/faillog文件,這個文件記錄了每個用戶的登錄失敗信息。要查看所有用戶的失敗登錄記錄,直接運行:

如何監控Linux用戶登錄嘗試 faillog查看失敗登錄記錄

sudo faillog

這會列出每個用戶的用戶名和失敗登錄次數。如果你只想看特定用戶的,比如john,那就:

sudo faillog -u john

如果想清除某個用戶的失敗登錄記錄,可以這樣:

如何監控Linux用戶登錄嘗試 faillog查看失敗登錄記錄

sudo faillog -u john -r

-r參數就是重置的意思。

另外,還可以設置用戶登錄失敗多少次后鎖定賬號。這通常是通過pam_faillock.so模塊實現的。這個模塊會在/etc/pam.d/目錄下的各種服務配置文件中使用,比如sshd或login。

如何配置pam_faillock.so來鎖定用戶?

首先,找到你想要保護的服務配置文件,比如/etc/pam.d/sshd。然后,在auth和account部分分別添加如下行:

auth required pam_faillock.so preauth audit deny=3 unlock_time=900 account required pam_faillock.so audit deny=3 unlock_time=900

這里的deny=3表示允許3次失敗嘗試,unlock_time=900表示鎖定時間是900秒(15分鐘)。preauth參數確保在用戶輸入密碼之前就進行檢查。audit參數用于記錄審計日志。

配置完成后,重啟SSH服務:

sudo systemctl restart sshd

現在,如果用戶連續輸入3次錯誤的密碼,賬號就會被鎖定15分鐘。

除了faillog和pam_faillock.so,還有其他監控方法嗎?

當然有。還可以通過監控/var/log/auth.log或/var/log/secure文件來實時追蹤登錄嘗試。這兩個文件記錄了系統認證相關的事件,包括成功的和失敗的登錄。

可以使用tail -f命令來實時查看日志:

sudo tail -f /var/log/auth.log

或者使用grep命令來過濾失敗的登錄嘗試:

sudo grep "Failed password" /var/log/auth.log

這會顯示所有包含”Failed password”的行,也就是失敗的密碼嘗試。

還可以結合awk等工具來進一步分析日志,比如統計某個IP地址的失敗登錄次數:

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

這個命令會列出所有嘗試登錄的IP地址,以及每個IP地址的失敗次數,并按照失敗次數從高到低排序。

如何設置郵件告警,當檢測到異常登錄時自動發送通知?

這個需要結合logwatch或者fail2ban等工具來實現。logwatch可以定期分析日志文件,并生成報告,然后通過郵件發送給你。fail2ban則可以實時監控日志,當檢測到惡意行為時,自動封禁IP地址。

以fail2ban為例,首先安裝它:

sudo apt install fail2ban

然后,配置/etc/fail2ban/jail.local文件。這個文件可以覆蓋/etc/fail2ban/jail.conf中的默認配置。

添加如下配置:

[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 findtime = 600 bantime = 3600 destemail = your_email@example.com sendername = Fail2Ban action = %(action_mwl)s

這里的maxretry = 3表示允許3次失敗嘗試,findtime = 600表示在600秒內,bantime = 3600表示封禁時間是3600秒(1小時)。destemail是接收告警郵件的郵箱地址。action = %(action_mwl)s表示使用默認的郵件告警動作。

配置完成后,重啟fail2ban服務:

sudo systemctl restart fail2ban

現在,當有人連續輸入3次錯誤的SSH密碼時,fail2ban會自動封禁該IP地址,并發送郵件告警。

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享