mod_evasive、mod_limitipconnと攻撃対策のモジュールを導入しましたが
今回は一番厄介なSlowlorisの対策モジュールを導入します。
最初にmod-pacify-slowlorisを入れてみましたが
ページが正常に表示されなかったりしたので、mod_antilorisを入れる事にしました。
(mod-pacify-slowloris、mod_antilorisでも完全に防ぐのは、現状では難しいようです)
まずは、適当なディレクトリにソースをDL。
ディレクトリ移動
#cd /usr/local/src
mod_antiloris-0.4.tar.bz2のDL
#wget ftp://ftp.monshouwer.eu/pub/linux/mod_antiloris/mod_antiloris-0.4.tar.bz2
解凍
#tar -xjvf mod_antiloris-0.4.tar.bz2
解凍したソースディレクトリに移動
#cd mod_antiloris-0.4
APXSを利用してコンパイル&インストール
#/usr/bin/apxs2 -i -a -c mod_antiloris.c
※APXSが未インストールの場合は
#apt-get install apache2-prefork-devで先にインストールしてください。
以下の行をapache2.confに追加
LoadModule antiloris_module /usr/lib/apache2/modules/mod_antiloris.so
設定が終わったらconfが正しく設定されたかを確認。
#apache2ctl -M
上記コマンド実行後にantiloris_moduleとSyntax OKが表示されれば、設定自体は問題ない事になります。
設定が問題なければ、apacheを再起動
#/etc/init.d/apache2 restart
暫くこれで様子を見てみる予定です。
それでもSlowlorisの被害にあうようであればiptablesのrecentで弾く事も検討します。
Slowlorisについて
Apacheに、DoS攻撃に繋がる脆弱性が新たに見つかったそうだ(本家/.記事より)
この脆弱性は、これを利用したHTTP DoSツール「Slowloris」がリリースされたことから明らかになったとのこと。この攻撃ツールはApacheに不完全なリクエストヘッダーを送り続けるもので、Apacheが最後のヘッダが送られてくるのを待つ間、偽のヘッダを送ることで接続をオープンにし続け、Apacheのプロセスを一杯にさせるものだという。
脆弱性はApache 1.x、 2.x、 dhttpd、 GoAhead WebServer、そしてSquidにて確認されているが、IIS6.0、 IIS7.0、およびlighttpdでは確認されていないとのこと。
SANSでは詳細のレポートが挙がっており、TimeOutディレクティブでタイムアウト値の設定を変えることでこの攻撃を軽減することが可能とのことで、今のところ対策はこれくらいしかないそうだ。