ファイアウォールDoS攻撃
DoS攻撃保護は、ステートフルインスペクションを活用して、目的の宛先との間の途中でインターフェイスを通過する必要があるすべての接続試行を探し、許可または拒否します。 詳細については、次のトピックを参照してください。
セッションテーブルフラッド攻撃について
DoS攻撃が成功すると、偽のシミュレートされたトラフィックの大規模な集中砲火で被害者を圧倒し、正当な接続要求を処理できなくなります。DoS攻撃には、SYNフラッド、SYN-ACK-ACKフラッド、UDPフラッド、ICMPフラッドなど、さまざまな形態が考えられますが、被害者のセッションテーブルをいっぱいにするという同じ目的を目指しています。
セッション テーブルがいっぱいになると、そのホストは新しいセッションを作成できず、新しい接続要求の拒否を開始します。ソースベースのセッション制限画面オプションと宛先ベースのセッション制限画面オプションは、このような攻撃を軽減するのに役立ちます。
ソースベースのセッション制限について
同じ送信元 IP アドレスからの同時セッションの数を制限するだけでなく、同じ宛先 IP アドレスへの同時セッションの数を制限することもできます。ソースベースのセッション制限を設定する利点の1つは、サーバーに感染し、そのサーバーから大量のトラフィックを生成し始めるNimdaウイルス(実際にはウイルスとワームの両方)などの攻撃を食い止めることができることです。ウイルスによって生成されたトラフィックはすべて同じIPアドレスから発信されるため、送信元ベースのセッション制限により、ファイアウォールはこのような過剰な量のトラフィックを抑制できます。 図1を参照してください。

ソースベースのセッション制限のもう1つの利点は、すべての接続試行が同じ送信元IPアドレスから発信された場合に、ファイアウォールのセッションテーブルをいっぱいにする試みを軽減できることです。
許容可能な数の接続要求を特定するには、一定期間の監視と分析を行い、典型的なトラフィック フローのベースラインを確立する必要があります。また、使用している特定のジュニパーネットワークスプラットフォームのセッションテーブルを埋めるために必要な同時セッションの最大数も考慮する必要があります。セッションテーブルがサポートするセッションの最大数を確認するには、CLI コマンド show security flow session summary
を使用し、現在の(割り当てられた)セッションの数、セッションの最大数、および失敗したセッション割り当ての数がリストされた出力の最後の行を確認します。
userhost# show security flow session summary Unicast-sessions: 0 Multicast-sessions: 0 Failed-sessions: 0 Sessions-in-use: 0 Valid sessions: 0 Pending sessions: 0 Invalidated sessions: 0 Sessions in other states: 0 Maximum-sessions: 2097152
ソースベースのセッション制限のデフォルトの最大値は 128 同時セッションであり、ネットワーク環境とプラットフォームのニーズに合わせて調整が必要な場合があります。
Junos OS は、IPv4 と IPv6 の両方のトラフィックに対して、ソースベースのセッション制限をサポートしています。
例: ソースベースのセッション制限の設定
この例では、送信元 IP に基づいてセッション数を制限する方法を示しています。
要件
この機能を設定する前に、デバイス初期化以外の特別な設定を行う必要はありません。
概要
次の例は、DMZ 内およびゾーン A 内の任意の 1 つのサーバーが開始できるセッション数を制限する方法を示しています。DMZ には Web サーバーのみが含まれ、どの Web サーバーもトラフィックを開始しないため、ソースセッションの制限を可能な限り低い値(1 セッション)に設定します。一方、ゾーン A にはパーソナル コンピューター、サーバー、プリンターなどが含まれ、その多くはトラフィックを開始します。ゾーン a では、ソース セッションの制限を最大 80 の同時セッションに設定します。
トポロジ
構成
手順
CLIクイック構成
この例を迅速に設定するには、以下のコマンドをコピーして、テキストファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを 階層レベルでCLI [edit]
にコピーアンドペーストして、設定モードから を入力します commit
。
set security screen ids-option 1-limit-session limit-session source-ip-based 1 set security zones security-zone dmz screen 1-limit-session set security screen ids-option 80-limit-session limit-session source-ip-based 80 set security zones security-zone zone_a screen 80-limit-session
手順
DMZゾーンの送信元IPに基づいて同時セッション数を指定します。
[edit security] user@host# set screen ids-option 1-limit-session limit-session source-ip-based 1
DMZ のセキュリティ ゾーンを設定制限に設定します。
[edit security] user@host# set zones security-zone dmz screen 1-limit-session
ゾーンの送信元IPに基づいて同時セッション数を指定します。
[edit security] user@host# set screen ids-option 80-limit-session limit-session source-ip-based 80
ゾーン A のセキュリティ ゾーンを構成制限に設定します。
[edit security] user@host# set zones security-zone zone_a screen 80-limit-session
結果
設定モードから、 および show security zones
コマンドを入力してshow security screen
設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
[edit] user@host# show security screen ids-option 1-limit-session { limit-session { source-ip-based 1; } } ids-option 80-limit-session { limit-session { source-ip-based 80; } }
[edit] user@host# show security zones security-zone dmz { screen 1-limit-session; } security-zone zone_a { screen 80-limit-session; }
デバイスの設定が完了したら、設定モードから を入力します commit
。
検証
ソースベースのセッション制限の確認
目的
ソースベースのセッション制限を確認します。
アクション
show security screen ids-option 1-limit-session
動作モードから 、 、 show security screen ids-option 80-limit-session
および show security zones
コマンドを入力します。
user@host> show security screen ids-option 1-limit-session Screen object status: Name Value Session source limit threshold 1 user@host> show security screen ids-option 80-limit-session Screen object status: Name Value Session source limit threshold 80 user@host> show security zones Security zone: dmz Send reset for non-SYN session TCP packets: Off Policy configurable: Yes Screen: 1-limit-session Interfaces bound: 0 Interfaces:
意味
サンプル出力は、DMZ ゾーンとゾーン a のソース セッション制限値を示しています。
宛先ベースのセッション制限について
同じ送信元 IP アドレスからの同時セッションの数を制限するだけでなく、同じ宛先 IP アドレスへの同時セッションの数を制限することもできます。巧妙な攻撃者が分散型サービス拒否(DDoS)攻撃を仕掛けることができます。DDoS攻撃では、悪意のあるトラフィックは、攻撃者の制御下にある「ゾンビエージェント」と呼ばれる何百ものホストから送信される可能性があります。SYN、UDP、ICMPのフラッド検出および防止スクリーンオプションに加えて、宛先ベースのセッション制限を設定することで、Junos OSが、ソースに関係なく、1つのホストに到達する同時接続要求の数を許容できるかどうかを保証できます。 図2を参照してください。

宛先ベースのセッション制限のデフォルトの最大値は 128 同時セッションであり、この値はネットワーク環境とプラットフォームのニーズに合わせて調整が必要な場合があります。
例: 宛先ベースのセッション制限の設定
この例では、宛先ベースのセッション制限を設定する方法を示します。
要件
この機能を設定する前に、デバイス初期化以外の特別な設定を行う必要はありません。
概要
この例では、ウェブサーバーへのトラフィック量を 1.2.2.5 に制限します。サーバーは DMZ 内にあります。この例では、外部ゾーンからこのサーバーへのトラフィック フローを 1 か月間監視した後、受信する同時セッションの平均数が 2000 であると判断したことを前提としています。また、新しいセッション制限を 2000 の同時セッションに設定します。トラフィックの急増がこの制限を超えることもありますが、この例では、時折サーバーにアクセスできないことよりもファイアウォールセキュリティを選択していることを前提としています。
構成
手順
CLIクイック構成
この例を迅速に設定するには、以下のコマンドをコピーして、テキストファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを 階層レベルでCLI [edit]
にコピーアンドペーストして、設定モードから を入力します commit 。
set security screen ids-option 2000-limit-session limit-session destination-ip-based 2000 set security zones security-zone external_zone screen 2000-limit-session
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。宛先ベースのセッション制限を設定するには:
同時セッションの数を指定します。
[edit] user@host# set security screen ids-option 2000-limit-session limit-session destination-ip-based 2000
外部ゾーンのセキュリティ ゾーンを設定します。
[edit] user@host# set security zones security-zone external_zone screen 2000-limit-session
結果
設定モードから、 および show security zones
コマンドを入力してshow security screen
設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
[edit] user@host# show security screen ids-option 2000-limit-session { limit-session { destination-ip-based 2000; } }
[edit] user@host# show security zones security-zone external_zone { screen 2000-limit-session; }
デバイスの設定が完了したら、設定モードから を入力します commit
。
検証
宛先ベースのセッション制限の確認
目的
宛先ベースのセッション制限を確認します。
アクション
show security screen ids-option 2000-limit-session
動作モードから と show security zones
コマンドを入力します。
user@host> show security screen ids-option 2000-limit-session node0: -------------------------------------------------------------------------- Screen object status: Name Value Session destination limit threshold 2000 Value user@host> show security zones Security zone: external_zone Send reset for non-SYN session TCP packets: Off Policy configurable: Yes Screen: 2000-limit-session Interfaces bound: 0 Interfaces:
意味
サンプル出力は、外部ゾーンの宛先セッション制限値を示しています。
SYN-ACK-ACK プロキシ フラッド攻撃について
認証ユーザーが Telnet または FTP 接続を開始すると、ユーザーは SYN セグメントを Telnet または FTP サーバーに送信します。Junos OSはSYNセグメントをインターセプトし、そのセッションテーブルにエントリを作成して、SYN-ACKセグメントをユーザーにプロキシします。その後、ユーザーは ACK セグメントで応答します。この時点で、最初の 3 ウェイ ハンドシェイクは完了です。Junos OSから、ユーザーにログイン プロンプトが送信されます。ユーザーが悪意を持ってログインせず、代わりにSYN-ACK-ACKセッションを開始し続けると、ファイアウォールセッションテーブルがいっぱいになり、デバイスが正当な接続要求を拒否し始める可能性があります。
このような攻撃を防ぐには、SYN-ACK-ACKプロキシ保護画面オプションを有効にします。同じ IP アドレスからの接続数が SYN-ACK-ACK プロキシのしきい値に達すると、Junos OS はその IP アドレスからのそれ以降の接続要求を拒否します。既定では、しきい値は任意の 1 つの IP アドレスからの 512 接続です。このしきい値 (1 から 250,000 までの任意の数値) は、ネットワーク環境の要件に合わせて変更できます。
Junos OS は、IPv4 アドレスと IPv6 アドレスの両方に対して SYN-ACK-ACK プロキシ保護をサポートしています。
SYN-ACK-ACK プロキシ フラッド攻撃からネットワークを保護する
この例では、SYN-ACK-ACK プロキシ フラッド攻撃からネットワークを保護する方法を示します。
要件
この機能を設定する前に、デバイス初期化以外の特別な設定を行う必要はありません。
概要
この例では、SYN-ACK-ACK プロキシ フラッドに対する保護を有効にします。値の単位は、送信元アドレスあたりの接続数です。デフォルト値は、任意の単一アドレスからの 512 接続です。
構成
手順
CLIクイック構成
この例を迅速に設定するには、以下のコマンドをコピーして、テキストファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを 階層レベルでCLI [edit]
にコピーアンドペーストして、設定モードから を入力します commit
。
set security screen ids-option 1000-syn-ack-ack-proxy tcp syn-ack-ack-proxy threshold 1000 set security zones security-zone zone screen 1000-syn-ack-ack-proxy
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。SYN-ACK-ACK プロキシ フラッド攻撃から保護するには:
ソースセッションの制限を指定します。
[edit] user@host# set security screen ids-option 1000-syn-ack-ack-proxy tcp syn-ack-ack-proxy threshold 1000
ゾーン画面のセキュリティゾーンを設定します。
[edit] user@host# set security zones security-zone zone screen 1000-syn-ack-ack-proxy
結果
設定モードから、 および show security zones
コマンドを入力してshow security screen
設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
[edit] user@host# show security screen ids-option 1000-syn-ack-ack-proxy { tcp { syn-ack-ack-proxy threshold 1000; } }
[edit] user@host# show security zones security-zone zone { screen 1000-syn-ack-ack-proxy; }
デバイスの設定が完了したら、設定モードから を入力します commit
。
検証
SYN-ACK-ACK プロキシ フラッド攻撃の検証
目的
SYN-ACK-ACK プロキシ フラッド攻撃を検証します。
アクション
show security screen ids-option 1000-syn-ack-ack-proxy
動作モードから と show security zones
コマンドを入力します。
user@host> show security screen ids-option 1000-syn-ack-ack-proxy node0: -------------------------------------------------------------------------- Screen object status: Name Value TCP SYN-ACK-ACK proxy threshold 1000 user@host> show security zones Security zone: zone Send reset for non-SYN session TCP packets: Off Policy configurable: Yes Screen: 1000-syn-ack-ack-proxy Interfaces bound: 0 Interfaces:
意味
サンプル出力は、SYN-ACK-ACK-proxy フラッドによる攻撃がないことを示しています。