Iptables

解析 Apache 日誌文件並禁止 IP

  • May 6, 2013

我的伺服器受到攻擊,它被以下模式的請求淹沒:

數以千計的 IP 每個 IP 每秒 3-5 次請求相同的頁面“GET / HTTP/1.1”和相同的引用者(相同的時間戳)。

所以我需要的是一個小的 shell 腳本,它從“tail -f /var/www/log/access.log”獲取輸入,並為具有相同時間戳的重複請求解析相同的內容(比如對同一頁面的 2 個請求)相同的引用者和相同的時間)並添加一個 iptable 規則以丟棄來自該 IP 的所有數據包。

查看Fail2Ban和此Howto以獲取 Apache 日誌文件過濾器的範例。

這是一個應該完成您所要求的範例。請參閱手冊並根據您的需要進行調整:

/etc/fail2ban/filters.d/apache-attackers.conf

[Definition]
failregex = <HOST> - - [[^]]+] "GET / HTTP/1.1" 200 .* "REFERER"

/etc/fail2ban/local.jail

[DEFAULT]
ignoreip = 127.0.0.1 <an IP you access the system from>

[apache-attackers]
enabled = true
port    = http,https
filter  = apache-attackers
bantime = 86400
logpath = /var/log/httpd/*access_log
maxretry = 5

在啟動時啟用fail2ban(RHEL/CentOS)並啟動它:

chkconfig fail2ban on
service fail2ban start

注意:在 RHEL/CentOS 上測試,您的里程可能會有所不同。

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