Wordpressに対しての最近のDDosアタックへの対処法

ほんとね。Wordpressって標的になりやすくて嫌…。
DOSアタックされて困ったのでその対処法。

EC2で動いているWordpressが落ちる、ssh接続もできない、みたいな状態が続いていて困った。
t2.small だから十分なはずなのに。。

ログを確認すると、ああ、これは攻撃されてるやん。


$ sudo su - # you should avoid this though..

$ cd var/log/http
$ less access_log # or whatever

191.96.249.53 - - [12/Jun/2016:02:58:10 +0000] "POST /xmlrpc.php HTTP/1.0" 500 251 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.54 - - [12/Jun/2016:02:58:11 +0000] "POST /xmlrpc.php HTTP/1.0" 500 251 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.54 - - [12/Jun/2016:02:58:11 +0000] "POST /xmlrpc.php HTTP/1.0" 500 251 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.53 - - [12/Jun/2016:02:58:13 +0000] "POST /xmlrpc.php HTTP/1.0" 500 251 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.54 - - [12/Jun/2016:02:58:14 +0000] "POST /xmlrpc.php HTTP/1.0" 500 251 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.53 - - [12/Jun/2016:02:58:13 +0000] "POST /xmlrpc.php HTTP/1.0" 500 251 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
104.233.88.236 - - [12/Jun/2016:02:58:14 +0000] "POST /xmlrpc.php HTTP/1.0" 500 251 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"

Dos攻撃とDDos攻撃の違いと対策についてまとめてみた

原因は XML-RPCPingbackDDoS攻撃 というらしい。

以下対策。


Wordpressのpingback機能をオフ。

ピンバックについてはこちらに詳しく載ってる。
WordPressのピンバックの設定方法

強制的にリダイレクト

オフにしたけども攻撃がやまないので、ルートディレクトにある .htaccess に以下を追加。
これはこちらを参考にしました。
xmlrpc.phpにDoS攻撃を受けた時の対処法| WordPressテックラボ | [Smart]

RewriteRule ^xmlrpc\.php$ "http\:\/\/0\.0\.0\.0\/" [R=301,L]

一回インスタンスを再起動して様子見。
今のところサクサク動いている模様。

追記

それでもやまなかったDOS攻撃... orz

さらに対策しました。

# VirtualHost の設定を変更
# ファイルはお好きなやつで。デフォはhttpd.conf? 

$ vi /etc/httpd/conf.d/virtualhost.conf 


<VirtualHost>
…    
    <files xmlrpc.php>
      order allow,deny
      deny from all
    </files>
</VirtualHost>

対策前のログ

191.96.249.54 - - [26/Aug/2016:02:04:50 +0000] "POST /xmlrpc.php HTTP/1.0" 200 370 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.54 - - [26/Aug/2016:02:05:00 +0000] "POST /xmlrpc.php HTTP/1.0" 200 370 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.54 - - [26/Aug/2016:02:05:01 +0000] "POST /xmlrpc.php HTTP/1.0" 200 370 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"

対策後のログ

191.96.249.54 - - [26/Aug/2016:02:15:06 +0000] "POST /xmlrpc.php HTTP/1.0" 403 212 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.54 - - [26/Aug/2016:02:15:06 +0000] "POST /xmlrpc.php HTTP/1.0" 403 212 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.54 - - [26/Aug/2016:02:15:08 +0000] "POST /xmlrpc.php HTTP/1.0" 403 212 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"

403でファイルへのアクセスが禁止されてる。
これで負荷へるかな。

追記

こんどはログインを仕掛けてきた。ブルートフォースアタック。
こんな感じでIPをホワイトリストしました。


$ cd /var/www/your_wordpress_dir/wp-admin
$ sudo vi .htaccess

order deny,allow
allow from xxx.xxx.xx.xxx
# 複数許可したいIPがあれば
allow from xxx.xxx.xx.xxx
deny from all

参考

https://codex.wordpress.org/Brute_Force_Attacks
https://blog.lysender.com/2013/02/white-listing-ip-addresses-for-your-apache-virtual-hosts/
IP確かめたければ
https://www.whatismyip.com/

以上です。

何かありましたらコメントをどうぞ

comments powered by Disqus

人気の記事

950 Points チリ出身のギタリストが弾くドラゴンボールZがむちゃくちゃかっこいい…
774 Points Wordpress + Heroku + PostgreSQL + Amazon S3 = ¥0 / 無料でサイト運営
700 Points Rubyのチートシート 変数 / クラス / モジュール
524 Points Rubyのチートシート / アクティブサポート
451 Points 紙のデザイナーがウェブ開発できるようになるまでに必要なこと
435 Points Rails / Google Analyticsのデータを使って分析や管理画面のためのグラフをつくる
323 Points RailsとHerokuでノーティフィケーションをプッシュする / PusherとTurbolinksの兼ね合い
222 Points Rails / RSpec テスト書いたことない メンドクサイ(n´Д`)という時のチートシート
193 Points Rails / Ajaxを使って画面遷移しない一時保存機能をつける
193 Points Protractorでスクレイピングしてみた