DOS攻撃をはじめて受け、対処したことがあった。以下まとめ。
ダッシュボードが重い
作業中、急に重くなった。直前にプラグイン、php、javascript等の更新はしてないのに。
phpyadminも重い
こちらも急に重くなった。
サイトまでも重い
ブラウザの問題かと、Yahoo!JAPANなど他サイトにアクセス。通常に表示されるので、サーバーの問題ではと思い至る。
サーバーのアクセス状況を確認
レンタルサーバーでのことだったので、障害情報を見たが該当なし。同領域を使用している、他のドメインサイトを閲覧したところ、普通に表示される。サーバーの問題ではない。すまん、あらぬ疑いだった。
エラーログを確認
遅ればせ。FTP接続でwordpressのログを取得できる場合、ローカルにダウンロードして確認。
このレンタルサーバーでは、VPS(仮想専用サーバー)のコンソールで見るしかなかったので、Apacheコマンドをぽちぽち入力して確認。Apacheコマンドは以下のようなの。
エラーログを確認DOS攻撃されていたのが判明
# less /var/log/httpd/error_log
ファイルの内容を監視して表示を更新
# tail -f /var/log/httpd/access_log # tail -f /var/log/httpd/error_log
参考)Apacheのログ: Linux初心者のためのLinux入門
特定の同一IPが怒涛の勢いでアクセス、同時にエラーが発生していることがわかった。ログを見ている最中も続々、サイトはとうとう504エラーでダウン。
特定IPのアクセスを制限
取り急ぎ、特定IPのアクセスを制限することにした。
が、FTPソフトで.htaccessをダウンロードしようとして、権限がないとサーバーにしかられる。またもやApacheコマンドをぽちぽち。
.htaccessの権限を確認ダウンロードした.htaccessに下記を追記。
#ls -l .htaccess
.htaccessの権限を変更(例:newownに変更)
#chown newown .htaccess
参考)Linux:chownでファイルやディレクトリの所有者を変更する | raining
order allow,denyIPアクセス制限を確認
allow from all
deny from XXX.XXX.XXX.XXX/99
※XXX~XXXはアクセスを禁止したいIP。99はIPのサブネットマスク。
参考)特定IPドメイン/IPアドレス サーチ 【whois情報検索】
.htaccessを更新後、アクセスログを見ると、はじかれているのがわかった。
サイト、ダッシュボード、phpMyadminのアクセス状況も通常に戻った。
人心地ついたところで、エラーはなんだ?と検索。Wordpressに標準搭載されている、xmlrpc.php(モバイルから投稿できる機能)の脆弱性をつかれたものらしい。削除は、Wordpressのバージョンアップ時にまたインストールされるので、無意味らしい。
xmlrpc.phpアクセスを制限
これも.htaccessに記述して更新。
IPアクセス制限は、アクセスしてからの処理なので。サーバー負荷対策としては、ほかによかろう方法があり。それについては、上記の参考をご覧ください。<Files "xmlrpc.php">order deny,allowdeny from all</Files>
脆弱性をつかれるファイルは、ほかにもあるらしいが。今回はこれまで。Wordpressプラグイン「WP Security Audit Log」で様子見。
以上、ご参考になれば幸いです。