Fail2ban

fail2ban apache-badbots 不阻止 IP

  • April 29, 2016

我正在嘗試讓 fail2ban 阻止某些不良機器人攻擊我的網站。我開始只是在 jail.local 中啟用預設的“apache-badbots”(我確實更改了日誌路徑以匹配我自己的日誌和它發送報告的使用者)

enabled = true filter = apache-badbots action = iptables-multiport[name=BadBots, port="http,https"] sendmail-buffered[name=BadBots, lines=5, dest=jisti] logpath = /var/logs/httpd/access_log bantime = 172800 maxretry = 1

我重新啟動了fail2ban,並收到一封電子郵件說監獄開始了。然而,當我正在查看日誌時,其中一個壞機器人重創了該站點,而 fail2ban 什麼也沒做。

所以我檢查了過濾器中的 apache-badbots.conf。我得出的結論是,正則表達式可能與我使用的自定義日誌格式不匹配,它實際上也不是在尋找正在攻擊我的網站的特定壞機器人。我修補了失敗正則表達式,然後用

fail2ban-regex /var/log/httpd/access_log /etc/fail2ban/filter.d/apache-badbots.conf

這報告成功並匹配了 300 多個。嗚嗚我想。我重新啟動了fail2ban。此後不久,我看到機器人再次敲擊該網站,而 fail2ban 什麼也沒做。我檢查了 iptables 只是想看看它是否在做某事,但 iptables 規則錯誤

iptables -S -P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -N fail2ban-BadBots -N fail2ban-SSH -N fail2ban-php-url-open -A INPUT -p tcp -m tcp --dport 22 -j fail2ban-SSH -A fail2ban-BadBots -j RETURN -A fail2ban-SSH -j RETURN -A fail2ban-php-url-open -j RETURN

我還應該提到,當它阻止 SSH 攻擊時,它確實正確添加了 iptables 規則。所以有些東西確實有效,但不是 apache-badbots。

接下來我嘗試將fail2ban 的日誌記錄設置為調試並通讀fail2ban.log。不幸的是,那裡沒有任何幫助。監獄的日誌條目開始和定義正確的正則表達式以及定義操作。但是,沒有任何 apache-badbots jail 匹配並針對任何 IP 採取行動的日誌條目。

另外我會提到 SSH 監獄似乎工作得很好,所以 fail2ban 確實在盒子上工作,而不是 apache-badbots 監獄。

我需要做什麼才能讓它工作?

在您的 jail.local 中,您將 fail2ban 定向到**/var/logs/httpd/access_log而不是/var/log/httpd/access_log**就像在您的正則表達式測試中一樣。

引用自:https://serverfault.com/questions/773889