XML-RPC 是 WordPress 的 API,給開發者開發手機 Apps,桌面應用程式或其他服務時,可以跟 WordPress 溝通,從遠端能達到很多需要登入 WordPress 後台才能做的工作。xmlrpc.php 則是負責這個 API 的檔案,而很多針對 WordPress 的 DDOS 攻擊也是針對這個檔案。

解決方法除了逐一攔截那些 ip 外,就是直接禁止存取 xmlrpc.php 檔案,原因是我應該不會用到那個功能。以下設定可以放在 httpd.conf 或 .htaccess,如果加到 httpd.conf,需要重新啟動 Apache:

<Files xmlrpc.php>
    order deny,allow
    deny from all
</Files>

如果你有使用 Jetpack 外掛的時候,上面直接關閉 XML-PRC 的设定可能會造成 Jetpack 某些功能無法正常使用。此時,請啟用 Jetpack 的【Brute force attack prevention】功能,另外搭配以下的規則修改。追加一行白名單『Allow from 192.0.64.1/192.0.127.254』允許 Jetpack 的 IP 可以連線 xmlrpc.php,這樣外掛才能正常運作:

<Files xmlrpc.php>
    order deny,allow
    deny from all
    Allow from 192.0.64.1/192.0.127.254
</Files>