我正在使用正确的 Apache 的 mod_evasive,所以我可以减少 DOS 的可能性。我遇到的问题是反向代理背后的应用程序(这是我们的服务器 apache)非常弱,并且被开发为一页加载 200 个文件(css、js 等)。因此,当我使用像https://github.com/rohitchormale/hulk/blob/master/hulk.py这样的脚本时,我成功杀死了该应用程序,因为该脚本为攻击生成了许多唯一的 URI,而且我有义务允许每秒超过 300 个页面(* 10 个可能具有相同 IP 的客户端)。
因此,我想到的一个解决方案是在一秒钟内收到 ax 404 错误时将 ip 列入黑名单。有可能这样做吗?
正如 Sven 在他的评论中建议的那样,Fail2ban通过分析 Apache 的日志来允许这种行为。所以让我提醒你我的目标:如果用户触发了一定数量的 404 错误或任何其他错误,则阻止他访问我的服务器。这是我在设置中所做的:
在 /etc/fail2ban/jail.conf 中:
在 /etc/fail2ban/filter.d/http-error-dos.conf 中:
确保根据您的日志格式更改 failregex。