在apache中阻止域*

时间:2017-11-11 05:44:52

标签: linux apache amazon-web-services block blacklist

我一直在接受来自几个特定领域的ahrefs bot的大规模机器人攻击,例如" hydrogen084.a.ahrefs.com"," hydrogen172.a.ahrefs.com"最终导致我的服务器挂起而不允许该网站出现的等等。有什么方法可以防止这个域氢* .a.ahrefs.com停止命中我的服务器(Apache)。任何帮助赞赏。谢谢!

1 个答案:

答案 0 :(得分:1)

第一个想法是在你的.htaccess

中阻止这个僵尸程序
fragment

然后看看这篇文章。 resource quotas

通过用户代理和其他部分查看黑名单部分。

通过用户代理进行黑名单是一种常见的策略,会产生可疑的结果。将用户代理列入黑名单的概念围绕着这样一种想法,即访问您服务器的每个浏览器,机器人和蜘蛛都会使用特定的用户代理字符串来识别自身。因此,可以识别与恶意,不友好或其他不想要的行为相关联的用户代理并列入黑名单以防止将来访问。这是一个众所周知的黑名单策略,已经产生了一些广泛而有效的用户代理黑名单。

当然,这种方法的缺点是用户代理信息很容易被伪造,这使得很难确定黑名单客户的真实身份。通过简单地将其用户代理更改为未知身份,恶意机器人可能会绕过Internet上的每个黑名单。许多邪恶的“scumbots”确实做了这件事,这解释了令人难以置信的大量黑名单用户代理。即便如此,某些用户代理字符串的更改程度也存在某些限制。例如,GNU的Wget和cURL命令行工具很难伪造,许多其他客户端都有难以改变的硬编码用户代理字符串。

在Apache服务器上,可以通过HTTP_USER_AGENT变量轻松识别用户代理并将其列入黑名单。这是一个例子:

# Block abusive spiders
BrowserMatchNoCase "Baiduspider" bots
BrowserMatchNoCase "Yandex" bots
BrowserMatchNoCase "MegaIndex" bots
BrowserMatchNoCase "AhrefsBot" bots
BrowserMatchNoCase "HTTrack" bots

Order allow,deny
Allow from all
Deny from env=bots