[wordpress] xmlrpc.phpへのアクセスを拒否してサーバ攻撃を緩和する

目次

xmlrpc.phpへのアクセスを拒否してサーバ攻撃を緩和する

Nginx編(Amimoto)

WordPressを運用していると、PVがあまり無いのにもかかわらずCPUとメモリが逼迫していたので、解析ツールVisitorで解析してみると、xmlrpc.phpへ大量のアクセスがあることがわかった

[Linux]webサーバアクセスログ解析ツール「Visitors」をインストール

nginxを使用していたため、httaccessが使えなかったので下記の方法で回避
/etc/nginx/conf.d/default.conf

server {
    .....

    location = /xmlrpc.php {
    	allow 192.0.0.0/16;
    	deny all;
    	proxy_pass http://backend;
    }
}

192.0.0.0/16だけを許可し、その他はdenyする設定

この設定でCPU・メモリ負荷を大幅に減らすことができた。

Apache編(Bitnami)

まずxmlrpc.phpに大量攻撃を行われているのかアクセスログで確認する

cd /opt/bitnami/apache2/logs
tail -n 100 access_log 

ログでは以下のようなxmlrpc.phpへのアクセスが大量確認されたため、htaccessでDenyすることにした。

185.188.204.10 - - [16/Dec/2017:13:37:09 +0000] "POST /xmlrpc.php HTTP/1.0" 200

Bitnamiでのhtaccessコントロールはhtaccess.confをviで開き、

sudo vi /opt/bitnami/apps/wordpress/conf/htaccess.conf

htaccess.confに以下のコードを追加する

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

どこに追加したらよいか迷うが、ファイルの1行目から追加してよい。

ファイルに追加したら下記コマンドでApacheを再起動する

sudo /opt/bitnami/ctlscript.sh restart apache

再起動が終了したら、一度自分のサイトのxmlrpc.phpをブラウザで開いてテストしておく。

Forbiddenが出ればOK

2 thoughts on “[wordpress] xmlrpc.phpへのアクセスを拒否してサーバ攻撃を緩和する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です