Apache-2.2

防止伺服器被請求淹沒

  • May 5, 2016

我在 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>

有沒有更好的方法來防止垃圾郵件?

如果您的大部分垃圾郵件連接來自少數 IP,您可以僅阻止來自您的 .htaccess 的這些 IP,如此連結中所述。

最近發生了這種情況,它正在殺死伺服器,我們現在正在使用fail2ban來緩解這個問題。

將此配置添加到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中創建過濾器:

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

在我的情況下,攻擊並不總是來自 googlebot,因此使正則表達式更加廣泛,但就我的目的而言,幾乎沒有任何充分的理由讓任何 IP 在 5 分鐘內達到 xmlrpc 30 次以上。

引用自:https://serverfault.com/questions/546465