また落ちた
リソースの負荷もメモリ以外高くないのでネットワーク系かなーと思ってapache2,mysql,php-fpmを1から勉強してパラメータを調整しつつ様子を見るが変化なし。
topコマンドでリソースを見てもずっと同じようにphp-fpmが動いてるだけ。
あれ?ほぼアクセス0なのになんでこいつずっと動いてるんだ?
Apacheのログを見て驚愕する
なぜサーバログを最初に見なかったのか。
EC2.microに入れたこともあってリソース問題だと決め付けてかかったのが悪かった。
反省しつつ確認すると xmlrpc.php あてに大量のPOSTが送られていた。
3つのIPからきていたのでとにかくiptablesでIP拒否。
無事アクセスできるようになった。
原因と対策
xmlrpc.phpでググると色々出てきた。
どうも踏み台にされていたらしい。
対策としては
- IP拒否 : iptables -I INPUT -s xx.xx.xx.xx -j DROP
- 対策プラグインを入れる : Disable XML-RPC Pingback
- これはどうも最新版には対応していないみたいで仕事をしなかった
- htaccess.conf で xmlrpc.phpにアクセスできない設定を追加する
-
123456<Directory "/opt/bitnami/apps/wordpress/htdocs"><Files "xmlrpc.php">order deny,allowdeny from all</Files></Directory>
-
感想
先入観ダメ。ゼッタイ。
「EC2 micro WordPress 遅い」みたいな調べ方では今回の原因にはたどり着けなかった。
きちんとログ見て原因の当りをつければすぐに見つかったので順序立てて調査しないといけない。
怪我の功名だけど今回の一件で色々チューニングの勉強ができたのは良かった。