sysctl.conf
のいくつかのディレクティブを変更して、SYNフラッド攻撃からサーバーを保護する方法に関する記事(英語ではない)を読みました。その記事には、「SYNフラッドに対する保護を改善するためにいくつかのオプションを使用してカーネルを再コンパイルすることが可能です」のような文があります。私の質問が一般的すぎる場合は申し訳ありませんが、それが参照している可能性のあるカーネルオプションを教えていただけますか?カーネルをダウンロードし、make menuconfig
を使用してすべてのネットワークオプションを調べましたが、それらのオプションが見つからないか、見逃していません。グーグルも役に立ちませんでした。
ありがとうございました。
はい、Syn Flood攻撃の保護機能を使用してカーネルを再コンパイルすることは可能ですが、その理由はわかりません。
コマンドによってカーネルパラメータを変更する機能がないシステムでは、カーネルを再コンパイルする必要があります。ただし、それでも実行したい場合は、カーネルのCコードを変更する必要があります。
たとえば、Digital Unixでは、ヘッダーファイルの2つのパラメータを変更してから、オペレーティングシステムを再構築します。 /usr/sys/include/sys/socket.h
で、SOMAXCONN
定義を変更して、8が1024になるようにします。
/usr/sys/include/netinet/tcp_timer.h
で、TCPTV_KEEP_INIT
定義を75*PR_SLOWHZ
から25*PR_SLOWHZ
に変更します。
次に、このUnixバージョンに固有のDigitalUnixプロシージャを使用してカーネルを再構築します。
Berkeleyから派生したUnixシステムを使用して、これらの同じ2つのパラメータを変更してカーネルを再構築することもできます。
ただし、それらは異なる場所、つまり/usr/src/sys/netinet/tcp_timer.h
と/usr/src/sys/sys/socket.h
にあります。
これを読んだ後、カーネルを再コンパイルする必要がないと思われる場合は、次のオプションを使用して、synフラッド攻撃を軽減してください。
# echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# echo 2048 > /proc/sys/net/ipv4/tcp_max_syn_backlog
# echo 3 > /proc/sys/net/ipv4/tcp_synack_retries
再起動後も変更を永続化するには、これらのエントリを/etc/sysctl.conf
ファイルに入れます
# TCP SYN Flood Protection
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 3
これらの詳細については、次のURLを参照してください。
これがあなたの質問に答えることを願っています。さらに詳しい説明が必要な場合は、お気軽にコメントしてください。
あなたが記事であるかどうかはわかりませんが、synフラッド保護の一般的な方法は/proc/sys/net/ipv4/tcp_syncookies
を設定することです。