[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
Pingback: [aws] Webサーバの80番ポート死活監視を行い、異常があればSMSやメール通知する仕組みを構築 | BlueBear I/O
Pingback: [aws] Webサーバの80/443番ポート死活監視を行い、異常があればSMSやメール通知する仕組みを構築 | BlueBear I/O