我如何才能自动禁止过于频繁请求同一文件的 IP?

我如何才能自动禁止过于频繁请求同一文件的 IP?

在我的网站上,我提供了一个大约 65MB 的 zip 文件。我目前设置了一条 Apache 规则,只允许同时下载 2 个文件,如果尝试下载更多文件,则会显示 503 错误。最近,在查看访问日志后,一些 IP 以每秒约 3 个请求的速度收到 503 错误。但是,一旦下载完成,它们就可以再次下载。经过进一步调查,该 IP 似乎只是为了好玩而下载。这浪费带宽,我想知道如何暂时禁止在给定时间范围内频繁导致某个错误代码的 IP。

我希望能够在 iptables 级别禁止它。服务器正在运行 Ubuntu LTS (8.04)

答案1

我不是这方面的专家,但我记得听说过失败2ban一次或两次。它可能会做你想要的事情。

(但看起来配置起来不那么容易......在将其部署到生产设备之前,您肯定必须在某些“测试”服务器上进行测试^^)

答案2

也许可以回避问题,但也许你可以使用免费或更便宜的服务来托管文件;希望他们有防止此类滥用的机制。我建议这样做只是为了在你找到更好的解决方案之前为你争取时间。:-)

答案3

玩这样的游戏:

iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP

答案4

将它添加到 hosts.deny 即可获得所需的结果。您可以使用以下软件自动执行此类操作区块主机拒绝主机

相关内容