以前こんなブログを書いたと思います。
https://blog.adachin.me/?p=3412
アタックが酷いからfail2banを導入したというお話。
基本これはiptablesでただDROPしているだけなのですが、
AWSの場合はセキュリティグループあるし、iptables設定するのもめんどくさいという方が対象ですw(apacheのみ)
というわけで.htaccessで拒否る方法をブログします。
そもそもアクセス来ているのを「あっちいけバイバイ」という設定をするイメージ。
■ちなみにxmlrpc.phpにアタックくるのはなぜ?
WordPressにはスマホアプリなどのXML-RPCを使った更新に対応しており、
xmlrpc.phpファイルが用意されています。
かつて前にこのファイルへDDoS攻撃、アタックの対象にされてしまうことが
あったからです。(今でも変わらず)
対応としてはxmlrpc.phpファイルを消せばいいのですが、
WordPressバージョンアップすると勝手に作られてしまいます。(おこ)
■設定方法
・ディレクトリはwordpress系
1 2 |
# pwd /var/www/adachin-wp |
・.htaccessをコピー
1 2 3 |
# cp .htaccess .htaccessbk # ls .htaccess* .htaccess .htaccessbk |
・変更差分
RewriteBase以下にぶち込みましょう。
1 2 3 4 5 6 7 8 9 10 |
# diff -u .htaccess .htaccessbk --- .htaccess 2017-03-02 xxxxxxxxxxxxxxxxxxxxx +++ .htaccessbk 2017-03-02 xxxxxxxxxxxxxxxxx @@ -16,7 +16,6 @@ IfModule mod_rewrite.c> RewriteEngine On RewriteBase / -RewriteRule ^xmlrpc\.php$ "http\:\/\/0\.0\.0\.0\/" [R=301,L] #これをぶち込み0.0.0.0にリダイレクトさせる RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f |
■確認
実際にアクセスログを見てみると、
301でリダイレクトされています。
1 2 3 4 |
49.xx.xxx.xxx - - [02/Mar/xxxxxxxxxx +0900] "POST /xmlrpc.php HTTP/1.1" 301 297 49.xx.xxx.xxx - - [02/Mar/xxxxxxxxxx +0900] "POST /xmlrpc.php HTTP/1.1" 301 297 49.xx.xxx.xxx - - [02/Mar/xxxxxxxxxx +0900] "POST /xmlrpc.php HTTP/1.1" 301 302 49.xx.xxx.xxx - - [02/Mar/xxxxxxxxxx +0900] "POST /xmlrpc.php HTTP/1.1" 301 302 |
さらに、メモリー空き容量もなんと1GB増えました。
■まとめ
これならfail2banを導入しなくても楽に設定できますね。
Disable XML-RPC Pingbackプラグイン入れても同じようなことできるみたい。
AWS ShieldはLBとcloudfront挟んでいれば自然に設定されます。
0件のコメント