防止服务器蜂拥抱请求

我在Apache服务器(共享主机)上托pipe一个WordPress的博客。 由于某些原因,我一直在收到几十个xmlrpc.php每秒100个请求。

access.log如下所示:

... 188.138.33.149 - - [16/Oct/2013:17:46:03 +0200] "POST /xmlrpc.php HTTP/1.1" 403 212 "-" "GoogleBot/1.0" 188.138.33.149 - - [16/Oct/2013:17:46:03 +0200] "POST /xmlrpc.php HTTP/1.1" 403 212 "-" "GoogleBot/1.0" 188.138.33.149 - - [16/Oct/2013:17:46:03 +0200] "POST /xmlrpc.php HTTP/1.1" 403 212 "-"" ... 

.htaccess中,我应用了以下规则:

 <Files xmlrpc.php> Order Deny,Allow Deny from all </Files> 

有没有更好的方法来防止垃圾邮件

如果大多数垃圾邮件连接来自less量的IP,您可以按照本链接中的说明,仅阻止那些来自.htaccess的IP。

如果最近发生这种情况,它正在杀死服务器,我们现在使用fail2ban来缓解这个问题。

将此configuration添加到jail.local

 [apache-xmlrpc] enabled = true port = http,https filter = xmlrpc logpath = /var/log/apache2/*access.log maxretry = 30 findtime = 300 bantime = -1 

并在filter.d / apache-xmlrpc.conf中创buildfilter:

 [Definition] failregex = ^<HOST> -.*"(GET|POST) .*xmlrpc.php ignoreregex = 

在我的情况下,攻击并不总是来自googlebot,所以使正则expression式更广泛一些,但对于我的目的,几乎没有任何IP在5分钟内击中xmlrpc 30多次。