当一个随机客户端为同一个url启动大量GET时,我的apache服务器出现故障。问题是它发生在不可预测的url路径上。使用fail2ban,我可以禁止预定的URL,但不能阻止它用于未知的url路径。有办法解决这个问题吗?
答案 0 :(得分:1)
根据您的Web服务器,您应该能够扫描Web服务器日志以获取GET请求,并禁止在特定时间段内制作过多GET请求的人员。您只需要小心避免禁止合法用户,因此允许GET请求的频率可以仔细调整。
sudo nano /etc/fail2ban/filter.d/GETFlood.conf
failregex = ^<HOST>.*\s"GET\s.*$
在/etc/fail2ban/jail.local
添加条目:
[getflood] enabled = true action = iptables-allports[name=getflood] filter = getflood logpath = /var/log/apache2/*access.log maxretry = 30 findtime = 90 bantime = 604800
在这里,我们让任何单独的IP地址每90秒最多发出30个GET请求。同样,如果没有关于您的服务器的更多详细信息,您将需要使用这些时间来避免禁止合法用户。