我正在尝试检测恶意机器人活动。如果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 服务器上的活动。
它非常强大,应该能够满足您的大部分需求,而不会带来太多麻烦。
它也被广泛使用,因此获得帮助应该很容易。