GNU/Linux >> Linux の 問題 >  >> Linux

Web サーバーへの最大 TCP 接続を制限する

Windows XP SP2 および Windows Vista では、TCP/IP ハーフオープン同時接続制限を上限なしにロック解除する tcpip.sys パッチ ハックまたは自動パッチャーを多くのユーザーが探していました。インターネットに公開されている Web サーバーでは、その逆の場合があり、Web サーバーへの TCP 着信接続の最大数を制限し、一度に許可することを制限する必要がある場合があります。

Web サーバーへの着信 TCP Web 接続の最大数を制限することは、DDoS (分散型サービス拒否) または DoS (サービス拒否) 攻撃を防止または阻止するのに役立ちます。 DDoS 攻撃は、膨大な量のシステム リソースと CPU 負荷を消費し、Web ページの提供時間または正当な訪問者への応答時間を遅くする可能性があります。最悪の場合、複数の GB のメモリを備えたデュアル クアッド コア CPU の専用サーバーを使用している場合でも、攻撃がハングして Web サーバーが完全にダウンする可能性があります。

ファイアウォールまたは SYN Cookie を使用する以外に、サービス拒否攻撃を防止および対応するために、サーバーが 1 秒あたりに受け入れることができる TCP 接続の数を制限することもできます。この概念は、Web ページが掘り出されたり、つまずいたり、ひっかかれたりして、短期間に大量の視聴者が訪れた場合にも適用される可能性があります。ただし、この回避策はサーバーを「存続」させることのみを目的としており、大量の接続によって完全にダウンすることはありません。また、制限が限界に達し、積極的に新しい接続を拒否した場合、サーバーでホストされている Web サイトへの有効な人間の訪問者にも制限が適用されます。

管理者は iptables を使用して、許容できる 1 秒あたりのサーバーへの TCP 接続数の最大制限を設定できます。制限を設定するには、root としてシェルにログインし、 を置き換えて次のコマンドを発行します。 設定する 1 秒あたりの接続数、 サーバーに制限の適用を開始させたいバースト レートで、どちらも括弧なしで指定します。

iptables -t nat -N syn-flood

iptables -t nat -A syn-flood -m limit –limit <n>/s –limit-burst <m> -j RETURN

iptables -t nat -A syn-flood -j DROP

iptables -t nat -A PREROUTING -i $EXT_IFACE -d $DEST_IP -p tcp –syn -j syn-flood

上記のコマンドは、Web サーバーに接続できる TCP 接続の最大数を n に制限します m 後の 1 秒あたりの接続数 接続が確立されました。設定できる接続数に一定の数値はありません。サーバーが強力な場合は、接続のドロップを減らすために、処理する値を増やしてより多くの接続を受け入れることができます。サーバーに最適な値を試して設定してください。


Linux
  1. 侵害されたサーバーを調査する

  2. Vhostsの基本

  3. 確立された TCP 接続の数を取得する

  1. NTP サーバーのアーキテクチャ

  2. Linux サーバーの最大接続数を制限するものは何ですか?

  3. ソフトリミット vs ハードリミット?

  1. ApacheWebサーバーを構成する方法

  2. ApacheWebサーバーのキープアライブのチューニング

  3. UbuntuでPlexのTCP接続を増やす