iptablesでDoS対策する方法に、hitcountを使って接続回数を制限するものがあります。
sshだったりhttpだったり、ポート別・IPアドレス別に制限がかかるのです。
sshの場合は60秒間で5回など、hitcountが少なくて良いのですが、
httpの場合は画像のロードなどもあるので、10回より多めにしておきたいところです。
さぁ試してみよう!
--seconds 30 --hitcount 50 に設定して、100回接続してみました。
しかしどうでしょう。全てOKになってしまいました。
数値を小さくすると効果が出ているのですが、数値を変えて試すと20以上は全てOKでした。
どうやらhitcountの最大値は20だったようです。
※ここまで検証で試しました。
※この事は普通に英語サイトで記述されています。orz
じゃ、対応してみようか
hitcountの最大値はデフォルトで20です。
設定ファイルを確認してみましょう。
# cat /sys/module/ipt_recent/parameters/ip_pkt_list_tot
20
このままでは --hitcount 50 としても全く効きません。
なので、基本的な設定を変更します。
# vi /etc/modprode.conf
以下を追加します。
options ipt_recent ip_pkt_list_tot=50
設定を反映しましょう。
/-- CentOS5の場合 [ここから] --/
# service iptables stop
# rmmod ipt_recent
# modprode ipt_recent
/-- CentOS5の場合 [ここまで] --/
# service iptables restart
設定の反映が完了しました。
設定ファイルを確認してみましょう。
# cat /sys/module/ipt_recent/parameters/ip_pkt_list_tot
50 <- 変わった!?
この設定が有効かどうかは、50回以上自動アクセスするテストプログラムを稼働させて、パケットがrejectされているか見てみましょう。
今回はmod_evasiveに付いてきたtest.plを書き換えて実行してみました。
便利ですね、このテストプログラム。
【参考URL】
hitcountの最大値について:
ip_pkt_list_totについて:
modprode.confの設定が反映されない時はmodplodeをreloadしてみよう:
0 件のコメント:
コメントを投稿