检测同一 IP 是否请求某个页面超过指定次数,并阻止该 IP

检测同一 IP 是否请求某个页面超过指定次数,并阻止该 IP

我正在尝试检测恶意机器人活动。如果information.php请求了 robots.txt 中禁止但对普通用户开放的 ,more than 500 times in a day by same IP address我认为将用户标记为机器人是安全的选择。

此外,如果我more than 100 bad login requests从 IP 地址获取信息,我会将其标记为机器人活动。(尽管我认为在 1 次错误登录尝试后向用户显示验证码会更好,但基于 IP 的解决方案比基于会话 cookie 的解决方案在我看来更难实现)

最后,我想屏蔽被标记为机器人活动的 IP。我该怎么做呢?

答案1

你应该看看失败2ban它解析日志文件(例如 apache、ssh 等)并对可疑用户做出决定(通过 iptables 阻止一段时间)。

答案2

您可以选择使用基于主机的入侵检测系统,该系统可解析日志并自动封锁帐户一段时间。例如 Fail2ban 和 OSSEC。

此外,OSSEC 具有服务器客户端模型,因此您可以拥有一个集中式模型,如果您有多个 webserveR,则可以实现更好的可管理性。

答案3

几天前我不得不实施相同的解决方案,而 fail2ban 正是完成这项任务的合适工具。这里有很好的操作方法:Fail2ban 保护 Web 服务器 http DOS 攻击

只需failregex针对您的情况进行修改即可。

答案4

听起来就像你想要的mod_security。mod_security 让你使用或编写强大的规则来检测和响应 Web 服务器上的活动。

它非常强大,应该能够满足您的大部分需求,而不会带来太多麻烦。

它也被广泛使用,因此获得帮助应该很容易。

http://www.modsecurity.org/projects/modsecurity/

相关内容