DoS攻撃対策 Apache mod_limitipconn

前回DoS攻撃対策としてmod_evasiveを導入しました。
今までは攻撃をあまり気にしていませんでしたが
そこそこmod_evasiveが働いているようなので、更に攻撃対策を強化することに。

今回導入するのは、同時接続数を制限してくれるmod_limitipconnというモジュールです。
このモジュールは同一IPからの同時接続数を制限してくれます。

まずは、適当なディレクトリにmod_limitipconnのページからソースをDLしてインストール。

ディレクトリ移動
#cd /usr/local/src

mod_limitipconn-0.23のDL
#wget http://dominia.org/djao/limit/mod_limitipconn-0.23.tar.bz2

解凍
#tar xjvf mod_limitipconn-0.23.tar.bz2

解凍したソースディレクトリに移動
#cd mod_limitipconn-0.23

Apache2用にMakefileを変更
#vi Makefile

7行目のAPXSコマンドをApache2用に変更
※APXSが未インストールの場合は
#apt-get install apache2-prefork-devで先にインストールしてください。

#   the used tools
APXS=apxs
APACHECTL=apachectl

↓ のように書き換え

#   the used tools
APXS=/usr/bin/apxs2
APACHECTL=apachectl

コンパイル&インストール
#make install

Apacheの設定にモジュールの記述を追加
#vi /etc/apache2/apache2.conf

LoadModule limitipconn_module /usr/lib/apache2/modules/mod_limitipconn.so

ExtendedStatus On



MaxConnPerIP 3
NoIPLimit image/*


※Locationの設定は複数記述することが出来ます。
また、.httaccessに記述することも可能です。
複数の設定を行うことで、より細かく制限を行う事が出来ます。

上記の設定の意味は、/(httpルート)以下のディレクトリで
同一IPからの同時接続数を3に制限する。
但し、MIMEタイプ image/* は除く、という設定になります。
MaxConnPerIPが3だとサイトによっては少ないかもしれません。
ZIPや大きなファイルなど、回線負荷に関わるものを、MIMEで少なめに指定するのは有効だと思います。
しかし通常のページを3に制限してしまうと、JavaScriptファイルを裏で読んでくれなかったりしますので
ページとして問題が出る場合があります。
その場合は数字を少し大きくしてあげるか、特定のファイルタイプのみカウントの対象(または非対象)にするか
MIMEタイプでカウントの対象外になるようにしましょう。

設定が終わったらconfが正しく設定されたかを確認。
#apache2ctl -M

上記コマンド実行後にlimitipconn_moduleとSyntax OKが表示されれば、設定自体は問題ない事になります。

設定が問題なければ、apacheを再起動
#/etc/init.d/apache2 restart

最後にうまく動作するかテストを行うといいと思います。
※ページによってはうまく読み込めなかったりしますので、テストされる事をお勧めします。
ブラウザを複数開いて、一気にアクセスしてみると簡単にテスト出来ます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です