我通过 HTTP 请求进行了大量漏洞扫描(尝试获取 /password.txt 等)。目前我使用 fail2ban 解析 Nginx 访问日志以计数 404 并禁止攻击者 IP 地址。我想知道是否可以简单地配置 iptables 来限制 HTTP 请求的速率?
我尝试过这样的事情
iptables -I INPUT -p tcp --dport 2012 -i eth0 -m state --state NEW -m recent --updat…e --seconds 60 --hitcount 5 -j REJECT --reject-with icmp-host-unreachable
但显然它并没有像预期的那样工作。我猜想恶意 HTTP 请求是通过单个持久连接传输的,因此上述 iptables 规则不会被触发。
所以我的问题是:是否有可能在 iptables 中限制 HTTP 请求的速率,或者我应该坚持使用 fail2ban?谢谢!
答案1
问题出在 HTTP 1.1。如果要让此功能正常工作,您必须配置 Web 服务器以将连接降级到 1.0,以便终止 keepalive。