当随机客户端为相同的 url 启动大量 GET 时,我的 apache 服务器出现故障。问题是它发生在不可预测的 url 路径上。使用fail2ban,我可以禁止预定的网址,但不能阻止未知的网址路径。有没有办法解决这个问题?
问问题
573 次
1 回答
0
根据您的 Web 服务器,您应该能够扫描您的 Web 服务器日志以查找 GET 请求,并禁止在特定时间段内发出过多请求的人。您只需要小心避免禁止合法用户,因此需要仔细调整允许的 GET 请求的频率。
- 创建一个新的监狱过滤器:
sudo nano /etc/fail2ban/filter.d/GETFlood.conf
- 根据 Web 服务器的日志定义识别 GET 请求所需的正则表达式。使用标准的 Apache access.log,它将是:
failregex = ^<HOST>.*\s"GET\s.*$
添加一个条目到您的
/etc/fail2ban/jail.local
:[获取洪水] 启用 = 真 动作 = iptables-allports[名称=getflood] 过滤器 = getflood 日志路径 = /var/log/apache2/*access.log 最大重试 = 30 查找时间 = 90 班时间 = 604800
在这里,我们让任何单个 IP 地址每 90 秒最多发出 30 个 GET 请求。同样,如果没有关于您的服务器的更多详细信息,您将需要调整这些时间以避免禁止合法用户。
于 2015-08-21T23:56:28.613 回答