2017-11-11 183 views
-1

我一直在接收來自幾個特定域名(如「hydrogen084.a.ahrefs.com」,「hydrogen172.a.ahrefs.com」等)的ahrefs bot的大量bot攻擊,這些攻擊最終導致我的服務器掛起並且不允許站點出現。有什麼辦法可以阻止這個域名的氫* .a.ahrefs.com停止點擊我的服務器(Apache)。任何幫助讚賞。謝謝!在apache中阻止域名*

回答

1

第一個想法是阻止這種機器人和類似的在你的.htaccess

# 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 

然後看看這篇文章。 https://perishablepress.com/eight-ways-to-blacklist-with-apaches-mod_rewrite/

通過用戶代理和其他部分的想法查看部分黑名單。

通過用戶代理列入黑名單是一種常見的策略,會產生可疑的結果。將用戶代理列入黑名單的概念圍繞這樣的想法:訪問您服務器的每個瀏覽器,機器人和蜘蛛都使用特定的用戶代理字符串來標識自己。因此,與惡意,不友好或其他有害行爲相關聯的用戶代理可能被識別並列入黑名單,以防止未來訪問。這是一個衆所周知的黑名單策略,導致了一些廣泛和有效的用戶代理黑名單。

當然,這種方法的缺點在於用戶代理信息易於僞造,難以確定黑名單客戶的真實身份。通過簡單地將其用戶代理更改爲未知身份,惡意機器人可能會繞過Internet上的所有黑名單。許多邪惡的「大笨蛋」確實在做這件事,這就解釋了大量黑名單的用戶代理。即便如此,某些用戶代理字符串可能會發生變化的程度也有一定的限制。例如,GNU的Wget和cURL命令行工具很難僞造,並且許多其他客戶端都有難以更改的硬編碼的用戶代理字符串。

在Apache服務器上,通過HTTP_USER_AGENT變量很容易識別用戶代理並將其列入黑名單。下面是一個例子:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{HTTP_USER_AGENT} ^$                [OR] 
RewriteCond %{HTTP_USER_AGENT} ^.*(<|>|'|%0A|%0D|%27|%3C|%3E|%00).*       [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} ^.*(HTTrack|clshttp|archiver|loader|email|nikto|miner|python).* [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} ^.*(winhttp|libwww\-perl|curl|wget|harvest|scan|grab|extract).* [NC] 
RewriteRule ^(.*)$ - [F,L] 
</IfModule> 
+0

非常感謝@John Hanley。看起來它對我有效。你搖滾!!!! ....我的服務器中也有Fail2Ban,它可以幫助我限制傳入IP的速率。所以看起來我現在已經安全了,這兩個就位了......再次感謝! –