我怎样才能自动禁止IP请求相同的文件太频繁?

在我的网站上,我提供了一个大约65MB的zip文件。 我目前有一个Apache规则设置,只允许2个同时下载,如果您尝试下载更多,则显示503错误。 最近,在查看访问日志之后,一些IP以每秒3次请求的速度得到了503错误。 一旦下载完成,然而,他们可以再次下载。 经过进一步的调查,知识产权似乎只是简单的下载而已。 这是浪费带宽,我想知道如何暂时禁止在给定的时间范围内,经常导致一个特定的错误代码的IP。

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

我不是这方面的专家,但是我记得有一两次听说过fail2ban 。 它可能会做你想要的东西。

(但看起来不那么容易configuration…你必须明确地testing一些“testing”的服务器,然后把它放到你的生产箱^^)

也许是侧重问题,但也许你可以用免费或便宜的(呃)服务托pipe文件; 希望他们会有防止这样的滥用的机制。 我只build议为了在你解决更好的解决scheme之前给你买点时间。 🙂

玩这样的事情:

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

将它添加到hosts.deny得到你想要的。 你可以使用像blockhosts和denyhosts这样的软件来自动化这种事情。