質問: synflood攻撃を回避する方法を教えてください! synflood攻撃を回避する方法を教えてください! ネットワーク初心者です。 会社で運用しているサーバが先日アクセス不可になりました。 fwのログが得られなかったため、詳細は分からないのですが、おそらくsynflood だったのでは?との結論に至っており、今後の対策を進めているところです。 その中で、(1)上記の結論が正しいのか、(2)打てる対策は他にないのか、について 何かアドバイスをいただければと思い、質問させていただきます。 サーバ構成としては、下記のようになっております。 fw ⇒ lb ⇒ web 事故以降に調査した結果、lb側でセッションがたまった状況になったためではと考 えています。(★) 根拠としては、(1)fw側のsynfloodprotectionのthresholdの設定が200ppsだ ったので、当時は大量にsynパケットがlbに送られていた、(2)最大同時セッション 数についても、fw側が128でlb側が100となっており、lb自体がセッションを受け 入れられない状況だった、(3)fwのタイムアウト値が5分なのに対し、lbの無応答 タイムアウト値が61分となっていた、ことなどからです。 そこで、対策として下記の対応をしてます。 (1)fw側のsynfloodprotectionのthresholdの設定を1ppsに変更 (2)同時セッション数についてもfwは256、lbを384に変更 しかしながら、(1)の設定でも1パケット/秒がlbに送られる事になりますので、 lbの無応答タイムアウト値をfwに合わせて変更できないと、無用なセッションが 滞留することには変わりがありません。 メーカーに確認すると、lbのタイムアウト値は61分固定で変更不可とのことで、 数値の根拠はブラウザ(ie5,6)のタイムアウトが60分だったから(ie7,8では 30秒になっていますが...)だそうです。 fwがタイムアウトになった際にrstをlbに送信してくれれば問題ないのですが、 それも仕様上不可とのこと。 現状では、synパケットは1/sはlb側に送られる状況であり、万一攻撃を受けた 際は、そのセッションが滞留する事になります。lbのタイムアウト値61分から 算出すると、lbの同時接続数を3660に設定しておかないと、synfloodに対抗 できない事となり、その設定をしたとしても実際のところlbのサーバの性能上 受け切れるのか、また、webサーバ自身もさばき切れるのか、など現実味のあ る対応とは思えません。 そこで、セッション監視スクリプトでも作ってlb側に設置し、最大同時接続数 に達した場合は、lbを強制再起動させるしかないのでは、と考えています。(★) そこで質問なのが、上記★を付けた部分が正しいかどうか、という点です。 また、fw側がrstを送信してくれないのは、一般的なfwの仕様なのか、たまた ま利用しているfw(外部サービスです)の仕様の問題なのでしょうか? 何かご存じのことがあればご教授いただけると助かります。 どうぞよろしくお願いします。
回答: お尋ねの件ですが、攻撃自体tcp/ip の本質的問題なので、防御は難しいですね。 ファイアウォール製品の中には、syn flood を自動検知して、一定時間以上確立されないままのハーフ・コネクションを強制的にリセットしてしまう機能を持つものもあります。 専用のセキュリティ・ゲートウェイ機器の設置が望ましく、 対応機器としては、yamaha製「srt100」や大塚商会様のセキュリティ・ゲートウェイサービス(fortigate、fireboxx e)等の利用が良いかと存じます。 単純なルーターのみの環境ですと、syn flood攻撃発生時にその通信のリセット機能は無いものが殆どです。linuxサーバ等での対策で見ますと、カーネルコンパイル時に「config_syn_cookies=y」、「/proc/sys/net/ipv4/tcp_syncookiesを1にする」、「コネクション確立時のウェイトタイムを短くする。」等が御座いますが、ウェイトタイム調整出来ない場合、ルータやスイッチによってsynパケットの帯域制限を行うのが基本となります。