防止服务器被请求淹没

防止服务器被请求淹没

我在 Apache 服务器(共享主机)上托管了一个 Wordpress 博客。由于某些原因,几天来我每秒都会收到大约 100 个对 xmlrpc.php 的请求。

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>

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

答案1

如果你的大多数垃圾邮件连接都来自少数 IP,那么你可以按照以下说明从 .htaccess 中阻止这些 IP:此链接

答案2

最近发生了这种情况,导致服务器崩溃,我们现在正在使用失败2ban以缓解该问题。

将此配置添加到监狱.本地

[apache-xmlrpc]

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

并在中创建过滤器过滤器.d/apache-xmlrpc.conf

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

就我而言,攻击并不总是来自 googlebot,因此使正则表达式更广泛一些,但就我的目的而言,几乎没有任何理由让任何 IP 在 5 分钟内攻击 xmlrpc 30 多次。

相关内容