DoS耐性

チューニング
/etc/sysctl.conf
http://www.linux.or.jp/JM/html/procps/man5/sysctl.conf.5.html
http://www.linux.or.jp/JM/html/LDP_man-pages/man7/tcp.7.html
    
tcp_max_orphans システムが許容する、 orphan な (どのユーザファイルハンドルにもアタッチされていない) TCP ソケットの最大数。 この数を越えると、orphan な接続はリセットされ、警告が表示される。 この制限が存在するのは、単純な DoS 攻撃を防ぐために過ぎない。 この値を小さくすることは推奨しない。 ネットワークの条件によっては、この数値を大きくしないといけないかもしれないが、 orphan なソケットひとつあたり 64K 程度のスワップ不可能なメモリを消費することも注意せよ。 デフォルトの初期値はカーネルパラメータの NR_FILE と等しい。 この初期デフォルト値はシステムのメモリに応じて調整される。 tcp_max_syn_backlog 接続してきているクライアントから ack を受信していない状態の接続リクエストをキューに置ける最大数。 この数値を越えると、カーネルはリクエストを捨て始める。 デフォルトの値は 256 で、 システムに充分なメモリがある (128Mb 以上) 場合は 1024 になり、 メモリが非常に少ない場合 (32 Mb 以下) は 128 になる。 この数値を 1024 以上に増やしたい場合は、 include/net/tcp.h の TCP_SYNQ_HSIZE を TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog のように修正し、 カーネルを再コンパイルすることを奨める。 tcp_max_tw_buckets システムが許容する TIME_WAIT 状態にあるソケットの最大数。 この制限が存在するのは、単純な DoS 攻撃を防ぐために過ぎない。 デフォルト値は NR_FILE*2 で、システムのメモリに応じて調整される。 この数値を越えると、そのようなソケットはクローズされ、警告が表示される。