Wordpressに対しての最近のDDosアタックへの対処法
ほんとね。Wordpressって標的になりやすくて嫌…。
DOSアタックされて困ったのでその対処法。
EC2で動いているWordpressが落ちる、ssh接続もできない、みたいな状態が続いていて困った。
t2.small だから十分なはずなのに。。
ログを確認すると、ああ、これは攻撃されてるやん。
shell
1
2
3
4
5
6
7
8
9
10
11
12
13
$ 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)"
原因は XML-RPCPingbackDDoS攻撃 というらしい。
以下対策。
Wordpressのpingback機能をオフ。
ピンバックについてはこちらに詳しく載ってる。
WordPressのピンバックの設定方法
強制的にリダイレクト
オフにしたけども攻撃がやまないので、ルートディレクトにある .htaccess
に以下を追加。
これはこちらを参考にしました。
xmlrpc.phpにDoS攻撃を受けた時の対処法| WordPressテックラボ | [Smart]
1
RewriteRule ^xmlrpc\.php$ "http\:\/\/0\.0\.0\.0\/" [R=301,L]
一回インスタンスを再起動して様子見。
今のところサクサク動いている模様。
追記
それでもやまなかったDOS攻撃... orz
さらに対策しました。
shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# VirtualHost の設定を変更
# ファイルはお好きなやつで。デフォはhttpd.conf?
$ vi /etc/httpd/conf.d/virtualhost.conf
<VirtualHost>
…
<files xmlrpc.php>
order allow,deny
deny from all
</files>
</VirtualHost>
対策前のログ
1
2
3
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)"
対策後のログ
1
2
3
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をホワイトリストしました。
shell
1
2
3
4
5
6
7
8
9
$ cd /var/www/your_wordpress_dir/
$ sudo vi .htaccess
<Files wp-login.php>
Order deny,allow
Deny from all
Allow from xxx.xxx.xxx.xxx #許可するIPアドレス
</Files>
サーバーを再起動。
shell
1
$ sudo service httpd restart
参考
https://gatespace.jp/2013/05/21/wp-admin-access-restriction-ver3-5-1/
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/
以上です。