Iptables
解析 Apache 日誌文件並禁止 IP
我的伺服器受到攻擊,它被以下模式的請求淹沒:
數以千計的 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 上測試,您的里程可能會有所不同。