什麼工具可以對重複的系統日誌條目執行指令?

什麼工具可以對重複的系統日誌條目執行指令?

有時,我控制下的一台 VPS 會受到 POP3 登入嘗試的轟炸。它們都失敗了,但大量產生的進程和活動連接幾乎相當於 DoS 攻擊。

當我看到這種情況時,我通常會進去並手動封鎖 iptables 中的違規 IP 位址。我想要什麼是在伺服器上運行一個進程來監視系統日誌(或其他適當的位置),並且如果存在與特定模式匹配的重複日誌條目,則將它們傳遞給命令,然後該命令將提取相關部分(遠端主機 IP位址,在本例中)並執行指令(向iptables 新增DROP 規則)。例如,如果具有相同訊息部分的日誌條目在一分鐘內記錄了五次,則執行此操作。

VPS 運行 syslog-ng 以防有幫助。我在 iptables 中設定了速率限制,這有所幫助,但肯定不是完美的,因為它阻止我自己的連線嘗試,就像阻止攻擊者的連線嘗試一樣(獲得已建立連線的人會很幸運)。由於應該連接的用戶端具有來自動態區塊的 IP 位址,因此很難在不限制速率的情況下僅新增覆蓋規則。

由於 VPS 在 Virtuozzo 上運行,雖然我確實擁有來賓的 root 存取權限,但我無法載入自訂核心模組或自訂核心。所以它必須在使用者空間中完成。

什麼軟體可以幫助我?

答案1

我會推薦失敗2禁止

Fail2ban 是一款旨在監控暴力登入嘗試日誌的軟體。當它看到這樣的嘗試時,它會透過 iptables 阻止攻擊者的 IP。經過足夠的時間後,fail2ban 將自動刪除該區塊。

Fail2ban 是可自訂的,並且幾乎可以與任何類型的網路服務守護程序一起使用。甚至還有 pop3 守護程式的特定文檔,例如導遊,鴿舍, 和qmail

答案2

我使用 OSSEC (http://www.ossec.net/)。它進行日誌分析,但也具有主動回應選項(動態新增和刪除 iptables 和hosts.deny 條目),只需最少的設定。它有幾個預設規則,但您可以添加自己的規則。我已經對其進行了測試,並在 CentOS、Ubuntu 和 Slackware 機器(實體機和 VPS)的生產中使用它。

安裝非常簡單(調整它,主要是將其配置為忽略某些規則,這需要更多時間)。如果您使用它並啟用主動回應功能,預設值通常就足夠了。

我建議保留預設的封鎖時間(幾分鐘),使用您的 IP 新增白名單(或您信任的其他伺服器的 IP,以防萬一您的 IP 不是靜態的並且伺服器封鎖您)。

此外,如果您需要更複雜的阻止管理,您可以將 OSSEC 設定為使用 bash(例如)腳本在執行實際的主動封鎖之前檢查和處理 IP 位址。

相關內容