我在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多次。