私の管理しているVPSの一つで、WebサイトやWebアプリケーションの応答が異様に遅い現象が起きた。

ログインしてCPU使用率を見てみると、ほぼ100%状態が継続。

プロセスはphp-fpmというPHPを処理するプログラムであった。

WebサーバーであるNginxのログを見ると、海外からの/xmlrpc.phpへのマシンガンアクセスの記録があった。というか進行形でアクセスされている( ^ω^)・・・

どうみてもブルートフォース攻撃である。Webサイトの応答が遅い原因はこれだった。

 

そもそも、/xmlrpc.phpとは何なのか?正直初見であった。調べてみると、メール経由で記事投稿などするための機能のようだが、こんなのがあるとは全く知らなかった。

どうせ使わない機能なので、下記の対策をとった。

location = /xmlrpc.php {
    deny all;
    access_log off;
    error_log /dev/null crit;
}

これはNginxにおいて、/xmlrpc.phpへのアクセスを破棄して、なおかつログも一切取らないという設定である。というのもdeny allだけだとCPU使用率は下がるのだが、ログ肥大が解決しないので・・・

もし仮に/xmlrpc.phpを使いたくなった際は、そのとき別に対策を考えよう・・・