apache mod-evasive のインストールとxmlrpc.phpへのアクセス拒否設定
また海外からdosを食らったのでいい加減対策することにする。
手順
// インストール yum install mod_evasive // 設定ファイルで設定値を調整 vi /etc/httpd/conf.d/mod_evasive.conf // ログフォルダ作成 mkdir /var/log/mod_evasive/ // 権限設定 chown apache. /var/log/mod_evasive/ // 反映 service httpd restart // テスト用スクリプト(最初から入っている) perl /usr/share/doc/mod_evasive-1.10.1/test.pl
テスト用スクリプトだとなぜか全て403になった。多分httpd.confの設定が悪いんだろう。
これで大丈夫だと思ってブラウザからF5連打しても何故か403にならない。。ログには出るのだけど。。よくわからんので要調査。
さらに調査したところabコマンドだと403になった。
ab -n 100 -c 10 http://sample.com/index.php
しかし全て403になる訳では無く、途中ちらほら200になったりする。ブロック時間は30秒にしているはずなのに挙動がよくわからん。「-c 1」にしたら全部403になった。
さらに動作確認していたら何故かブラウザのF5連打でもちゃんと403が出るようになった。もう訳ワカメ。考えても良く分からんのでひとまずOKにする。
さらにサイト上で確認したところ、ページ毎にアクセスできたりできなかったりした。もしかすると拒否するのがプロセス単位だからかもしれん。AページはAプロセス、BページはBプロセスで、Aプロセスで拒否されてもBプロセスであれば大丈夫みたいな。多分そんな感じなんだろう。いや、もしかするとキャッシュのせいかもしれん。不確定要素が多すぎるのでこれ以上考えるのを止める。mod-evasiveは気休め程度に思っておいた方がよいのかもしれない。
mod-evasiveはあくまでdos対策なので少し間を置きながらxmlrpc.phpにアクセスしてくるようなアクセスには対処できない。なのでxmlrpcに対するアクセスは全て拒否しておく。
<Files "xmlrpc.php"> order deny,allow deny from all </Files>
Apache F5攻撃対策 mod_evasiveでDoS攻撃防御 | ITオフィスサポートとシステム開発|システムガーディアン AWSクラウド導入|東京都中央区八丁堀
Apache DoS攻撃にそなえる | Developers.IO