この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
この章では、Cisco Anomaly Guard Module(Guard モジュール)のネットワーク トラフィック フィルタの設定方法について説明します。
この章には、Guard モジュールの関連製品である Cisco Detector(Detector)についての記述があります。Detector は、DDoS攻撃(分散型サービス拒絶攻撃)を検出するデバイスです。Detectorは、ゾーン トラフィックのコピーを分析します。Detector は、ゾーンが攻撃を受けていると判断したときに、Guard モジュールの攻撃軽減サービスをアクティブにできます。また、Detector は Guard モジュールとゾーン設定を同期させることができます。Detector の詳細については、『 Cisco Traffic Anomaly Detector Module Configuration Guide 』および『 Cisco Traffic Anomaly Detector Configuration Guide 』を参照してください。
ゾーン フィルタは、Guard モジュールが特定のトラフィック フローを処理する方法を定義します。トラフィック フローをカスタマイズし、DDoS攻撃の軽減操作を制御するようにフィルタを設定できます。
ゾーン フィルタを使用すると、Guard モジュールは次の機能を実行できます。
• 基本レベルまたは強化レベルの保護を適用し、異常なトラフィックから正当なトラフィックを分離して取り出す。
• トラフィックを直接ゾーンに転送し、Guard モジュールの保護機能をバイパスする。
Guard モジュールには、次のタイプのフィルタがあります。
• ユーザ フィルタ:必要な保護レベルを指定されたトラフィック フローに適用します。ユーザ フィルタは、異常なトラフィックや悪意のあるトラフィックが検出されたときに Guard モジュールが最初に実行するアクションを定義します。ゾーン設定には、多様なタイプの攻撃を処理できるオンデマンドの保護用に設定された、デフォルトのユーザ フィルタのセットが含まれています。ユーザ フィルタを変更すると、Guard モジュールの保護機能をカスタマイズし、攻撃の疑いがある場合の Guard モジュールによるトラフィック フローの処理規則を設定できます。詳細については、「ユーザ フィルタの設定」を参照してください。
• バイパス フィルタ:Guard モジュールが特定のトラフィック フローを分析しないようにします。信頼できるトラフィックが Guard モジュールの保護機能を通らないように転送して、そのトラフィックを直接ゾーンに転送できます。詳細については、「バイパス フィルタの設定」を参照してください。
• フレックスコンテンツ フィルタ:特定のトラフィック フローをカウントまたはドロップします。フレックスコンテンツ フィルタには、IP ヘッダーや TCP ヘッダー内のフィールドに基づいたフィルタリング、ペイロード コンテンツに基づいたフィルタリング、複雑なブール式に基づいたフィルタリングなどの非常に柔軟なフィルタリング機能があります。詳細については、「フレックスコンテンツ フィルタの設定」を参照してください。
• 動的フィルタ:必要な保護レベルを指定されたトラフィック フローに適用します。Guard モジュールは、トラフィック フロー分析に基づいて動的フィルタを作成し、ゾーン トラフィックや DDoS 攻撃のタイプに合せて常に動的フィルタ セットを修正しています。動的フィルタは有効期間が限定されており、攻撃が終了すると Guard モジュールによって削除されます。詳細については、「動的フィルタの設定」を参照してください。
図7-1 に、Guard モジュールのフィルタ システムを示します。
ユーザの操作またはリモートのネットワーク検知 DDoS 要素(Detector など)によってゾーン保護がイネーブルにされると、Guard モジュールはゾーンのトラフィックを自分宛に宛先変更して分析します。
Guard モジュールは、ゾーンに流れるトラフィックのレートを監視します。定義されたレートを超過するトラフィックはドロップされ、正当なトラフィックはゾーンに転送されます。Guard モジュールは、ゾーンのトラフィックの統計分析を行い、クローズド ループのフィードバック サイクルを実行して、動的に変化するゾーンのトラフィック特性や変化する DDoS 攻撃のタイプに合せて保護措置を調整します。
トラフィック フローの統計分析を行うために、Guard モジュールはゾーン ポリシーを使用します。ゾーン ポリシーはすべて、特定のタイプのトラフィックを処理するように設定されます。ゾーン ポリシーは、常にトラフィック フローを測定し、特定のトラフィック フローが悪意のあるものまたは異常である(トラフィック フローがポリシーのしきい値を超えた)と判断すると、そのフローに対してアクションを実行します。
Guard モジュールは、トラフィックの異常を識別すると次の処理を実行します。
1. 攻撃を軽減する動的フィルタを作成する。デフォルトでは、Guard モジュールは最初の動的フィルタを作成します。この動的フィルタは、新たに発生する DDoS 攻撃への防御の最前線となるユーザ フィルタにすべてのトラフィックを転送します。Guard モジュールは、十分な時間を費やして攻撃を分析した後、攻撃を軽減する動的フィルタの作成を開始します。
2. Guard モジュール内部のトラフィック フローを変更する。異常なトラフィックは、動的フィルタとユーザ フィルタから入力を受け取るコンポーネントであるコンパレータに流れ込みます。コンパレータは、フローに一致する最初のユーザ フィルタを動的フィルタと比較し、提案された中で最も強力な保護措置を選択します。コンパレータは関連する保護レベルを適用し、トラフィックを認証します。
フレックスコンテンツ フィルタは、パケット ヘッダー内のフィールドまたはパケット ペイロードのパターンに基づいて、ゾーン トラフィックをフィルタリングします。トラフィックに現れているパターンに基づいて攻撃を識別できます。これらのパターンでは、既知のワームまたは一定のパターンを持つフラッド攻撃が識別可能です。
フレックスコンテンツ フィルタは、目的のパケット フローをカウントまたはドロップする場合、および特定の悪意のあるトラフィックの送信元を識別する場合に使用します。フレックスコンテンツ フィルタは、次の順序でフィルタリング基準を適用します。
1. プロトコルとポートのパラメータ値に基づいてパケットをフィルタリングする。
2. tcpdump 式の値に基づいてパケットをフィルタリングする。
3. 残りのパケットに対して pattern-expression の値を使用してパターン マッチングを実行する。
(注) フレックスコンテンツ フィルタは大量の CPU リソースを消費します。フレックスコンテンツ フィルタは Guard モジュールのパフォーマンスに影響を及ぼす可能性があるため、使用を制限することをお勧めします。指定のポートに送信される TCP トラフィックなど、動的フィルタによって識別できる特定の攻撃からの保護にフレックスコンテンツ フィルタを使用する場合は、動的フィルタを使用してトラフィックをフィルタリングすることをお勧めします。
Guard モジュールは、作成済みフレックスコンテンツ フィルタのリストを作成し、それらのフィルタを昇順でアクティブにします。新しいフレックスコンテンツ フィルタを追加する場合は、フィルタ リストの適切な位置に配置してください。
Guard モジュールは、アクションがドロップであるフレックスコンテンツ フィルタにトラフィックが一致すると、フレックスコンテンツ フィルタのアクティブ化を停止します。
フレックスコンテンツ フィルタを設定するには、次の手順を実行します。
ステップ 1 フレックスコンテンツ フィルタのリストを表示して、リスト内で新しいフィルタを追加する位置を確認します(「フレックスコンテンツ フィルタの表示」を参照)。
ステップ 2 現在の行番号が連番の場合は、新しいフレックスコンテンツ フィルタを挿入するために、フレックスコンテンツ フィルタ番号が増分するよう番号を割り当て直します。ゾーン設定モードで次のコマンドを入力します。
表7-1 に、 flex-content-filter renumber コマンドの引数を示します。
|
|
---|---|
(オプション)フレックスコンテンツ フィルタ リストの新しい開始番号を示す 1 ~ 9,999 の整数。デフォルトは 10 です。 |
|
(オプション)フレックスコンテンツ フィルタの各行番号の増分を指定する 1 ~ 999 の整数。デフォルトは 10 です。 |
ステップ 3 (オプション)進行中の攻撃や以前に記録した攻撃のパターン式をフィルタリングします。 show packet-dump signatures コマンドを使用することにより、Guard モジュールをアクティブにして攻撃のシグニチャを生成します。詳細については、「パケットダンプ キャプチャ ファイルからの攻撃シグニチャの生成」を参照してください。
ステップ 4 次のコマンドを入力して、新しいフレックスコンテンツ フィルタを追加します。
表7-2 に、 flex-content-filter コマンドの引数とキーワードを示します。
|
|
---|---|
1 ~ 9,999 の固有な番号。行番号はフィルタの ID で、これによって複数のフレックスコンテンツ フィルタの優先順位が定まります。Guard モジュールは、行番号の昇順でフィルタを操作します。 |
|
フィルタの状態をイネーブルに設定します。Guard モジュールはトラフィックを監視し、フィルタに一致するフロー上でアクション(ドロップまたはカウント)を実行します。 |
|
特定のプロトコルからのトラフィック。すべてのプロトコルを指定するには、アスタリスク( * )を使用します。0 ~ 255 の整数を入力します。 指定可能なプロトコル番号については、次に示す Internet Assigned Numbers Authority(IANA; インターネット割り当て番号局)の Web サイトを参照してください。 |
|
特定の宛先ポート宛のトラフィック。0 ~ 65535 の整数を入力します。特定のポート番号を定義するには、特定のプロトコル番号を定義する必要があります。 すべての宛先ポートを指定するには、アスタリスク( * )を使用します。プロトコル番号を 6(TCP)または 17(UDP)に設定する場合に、アスタリスクを使用できます。 指定可能なポート番号については、次に示す Internet Assigned Numbers Authority(IANA; インターネット割り当て番号局)の Web サイトを参照してください。 |
|
pattern-expression 引数のパターン マッチングが開始される位置を、パケット ペイロードの先頭からのオフセットで指定します(バイト単位)。デフォルトは 0(ペイロードの先頭)です。0 ~ 1800 の整数を入力します。 show packet-dump signatures コマンドの出力からパターンをコピーする場合は、この引数をコマンドの出力の Start Offset フィールドからコピーします。 |
|
pattern-expression 引数のパターン マッチングが終了する位置を、パケット ペイロードの先頭からのオフセットで指定します(バイト単位)。デフォルトは、パケット長(ペイロードの末尾)です。0 ~ 1800 の整数を入力します。 show packet-dump signatures コマンドの出力からパターンをコピーする場合は、この引数をコマンドの出力の End Offset フィールドからコピーします。 |
|
パケットと照合する式を指定します。式はバークリー パケット フィルタの形式です。詳細および設定例については、「tcpdump 式の構文の設定」を参照してください。 式にスペースを使用する場合は、式を引用符(" ")で囲みます。 式で引用符を使用するには、引用符(\”)の前にバックスラッシュ(\)をエスケープ文字として使用します。 (注) tcpdump 式の構文については、ヘルプを使用できません。 |
|
パケット ペイロードと照合する正規表現のデータ パターンを指定します。詳細については、「パターン式構文の設定」を参照してください。 show packet-dump signatures コマンドを使用すると、Guard モジュールをアクティブにしてシグニチャを生成できます。「パケットダンプ キャプチャ ファイルからの攻撃シグニチャの生成」を参照してください。 式にスペースを使用する場合は、式を引用符(" ")で囲みます。 式で引用符を使用するには、引用符(\”)の前にバックスラッシュ(\)をエスケープ文字として使用します。 (注) パターン式の構文については、ヘルプを使用できません。 |
フィルタの状態は、いつでもイネーブルまたはディセーブルにできます(「フレックスコンテンツ フィルタの状態の変更」を参照)。
フィルタは、いつでも削除できます(「フレックスコンテンツ フィルタの削除」を参照)。
次の例は、フレックスコンテンツ フィルタを設定する方法を示しています。
user@GUARD
-conf-zone-scannet# flex-content-filter enabled count * * expression “ip[6:2] & 0x1fff=0” pattern tcpdump 式には、パケットと照合する式をバークリー パケット フィルタ形式で指定します。
(注) 宛先ポートとプロトコルに基づいてトラフィックをフィルタリングする場合は、tcpdump 式を使用できますが、Guard モジュールのパフォーマンスに影響を及ぼす可能性があります。これらの基準でトラフィックをフィルタリングする場合は、フレックスコンテンツ フィルタで protocol 引数と port 引数を使用することをお勧めします。
式には 1 つ以上の要素が含まれます。通常、要素は ID と ID の前に付く 1 つ以上の修飾子からなります。
• タイプ修飾子:ID(名前または番号)を定義します。指定可能なタイプは、 host 、 net 、および port です。 host タイプ修飾子がデフォルトです。
• 方向修飾子:転送の方向を定義します。指定可能な方向は、 src 、 dst 、 src or dst 、および src and dst です。方向修飾子は src or dst がデフォルトです。
• プロトコル修飾子:特定のプロトコルへの照合を制限します。指定可能なプロトコルは ether 、 ip 、 arp 、 rarp 、 tcp 、および udp です。プロトコル修飾子を指定しない場合、該当するタイプに適用されるすべてのプロトコルが照合されます。たとえば、ポート 53 とは、TCP または UDP のポート 53 を意味します。
表7-3 に、tcpdump 式の要素を示します。
|
|
---|---|
IP、ARP、または RARP などの特定のプロトコル番号またはプロトコル名を持つイーサネット プロトコル パケット。プロトコル名もキーワードです。プロトコル名を入力する場合は、プロトコル名の前にバックスラッシュ(\)をエスケープ文字として使用する必要があります。 |
|
特定の式に適合するトラフィック。 表7-4 に、tcpdump 式の規則を示します。 |
表7-4 に、tcpdump 式の規則を示します。
• 要素と演算子の集まりを丸カッコで囲む:演算子は、通常のバイナリ演算子(+、-、*、/、&、|)と長さ演算子です。
(注) 式でカッコを使用するには、カッコの前にバックスラッシュをエスケープ文字として使用します(\()。
否定は、最も高い優先度を持ちます。代替と連結の優先順位は同じで、左から右に関連付けられます。連結には、並置ではなく、明示的な and トークンが必要です。キーワードなしで識別子を指定した場合は、最後に指定されたキーワードが使用されます。
バークリー パケット フィルタの設定オプションの詳細については、次のサイトにアクセスしてください。
http://www.freesoft.org/CIE/Topics/56.htm
次の例は、断片化されていないデータグラムと断片化されたデータグラムのフラグメント 0 のみをカウントする方法を示しています。このフィルタは、TCP と UDP のインデックス操作に暗黙的に適用されます。たとえば、tcp[0] は常に TCP ヘッダーの最初のバイトを意味し、中間のフラグメントの最初のバイトを意味することはありません。
user@GUARD
-conf-zone-scannet# flex-content-filter enabled count * * expression ip[6:2]&0x1fff=0 pattern ““
次の例は、すべての TCP RST パケットをドロップする方法を示しています。
user@GUARD
-conf-zone-scannet# flex-content-filter enabled drop * * expression tcp[13]&4!=0 pattern ““
次の例は、エコー要求およびエコー応答(ping)ではないすべての ICMP パケットをカウントする方法を示しています。
user@GUARD
-conf-zone-scannet# flex-content-filter enabled count * * expression “icmp [0]!=8 and icmp[0] != 0” pattern ““
次の例は、ポート 80 を宛先とし、ポート 1000 を送信元としないすべての TCP パケットをカウントする方法を示しています。
user@GUARD
-conf-zone-scannet# flex-content-filter enabled count * * expression “tcp and dst port 80 and not src port 1000” pattern ““
パターン式構文とは、一連の文字を含んだ文字列を記述した正規表現です。パターン式は、一連の文字列をその要素を実際にリストせずに表現します。パターン式は、一般文字と特殊文字で構成されます。一般文字には、特殊文字とは見なされない印刷可能な ASCII 文字がすべて含まれます。特殊文字には特別な意味があり、Guard モジュールがパターン式に対して実行するマッチングのタイプを指定します。フレックスコンテンツ フィルタは、パターン式とパケットの内容(パケット ペイロード)を照合します。たとえば、version 3.1、version 4.0、および version 5.2 という 3 つの文字列は、version .*\..* というパターンで表現できます。
表7-5 に、使用可能な特殊文字を示します。
デフォルトでは、パターン式では大文字と小文字が区別されます。パターン式で大文字と小文字を区別しないようにするには、 flex-content-filter コマンドに ignore-case キーワードを指定します。詳細については、「フレックスコンテンツ フィルタの追加」を参照してください。
次の例は、パケット ペイロードに特殊なパターンを持つパケットをドロップする方法を示しています。この例のパターンは、Slammer ワームから抽出されました。 protocol 、 port 、および
tcpdump-expression パラメータは特定のものでなくてもかまいません。
user@GUARD
-conf-zone-scannet# flex-content-filter enabled drop * * expression “ “ pattern \x89\xE5Qh\.dllhel32hkernQhounthickChGetTf\xB9llフレックスコンテンツ フィルタを表示するには、ゾーン設定モードで次のコマンドを入力します。
表7-6 に、 show flex-content-filters コマンド出力のフィールドを示します。
|
|
---|---|
パケット ペイロードの先頭から、パターン マッチングを開始する位置までのオフセット(バイト単位)。このオフセットは、 pattern フィールドに適用されます。 |
|
パケット ペイロードの先頭から、パターン マッチングを終了する位置までのオフセット(バイト単位)。このオフセットは、 pattern フィールドに適用されます。 |
|
バークリー パケット フィルタ形式のパケットと照合する tcpdump 式。tcpdump 式の構文については、「tcpdump 式の構文の設定」を参照してください。 |
|
パケット ペイロードと照合する正規表現のデータ パターン。パターン式の構文については、「パターン式構文の設定」を参照してください。 |
|
フレックスコンテンツ フィルタでフィルタ式に基づくパケットのフィルタリングを実行する必要がなくなった場合は、フレックスコンテンツ フィルタを削除できます。
(注) 後日フレックスコンテンツ フィルタが必要になる可能性がある場合は、フレックスコンテンツ フィルタを削除しないでください。フレックスコンテンツ フィルタをディセーブルにすると、後で必要になったときにイネーブルにできます(「フレックスコンテンツ フィルタの状態の変更」を参照)。
フレックスコンテンツ フィルタを削除するには、ゾーン設定モードで次のコマンドを入力します。
no flex-content-filter row-num
row-num 引数には、削除するフレックスコンテンツ フィルタの行番号を指定します。フレックスコンテンツ フィルタのリストを表示し、削除するフレックスコンテンツ フィルタの行番号を確認するには、show flex-content-filters コマンドを使用します(「フレックスコンテンツ フィルタの表示」を参照)。すべてのフレックスコンテンツ フィルタを削除するには、行番号としてアスタリスク( * )を入力します。
次の例は、フレックスコンテンツ フィルタを削除する方法を示しています。
フレックスコンテンツ フィルタをディセーブルにすると、Guard モジュールはフィルタ式に基づくパケットのフィルタリングと、特定の種類のトラフィックのフィルタリングを実行しなくなります。フレックスコンテンツ フィルタをディセーブルにしても、そのフィルタはフレックスコンテンツ フィルタ リストに残ります。したがって、必要に応じてフィルタを再度イネーブルにできます。
フレックスコンテンツ フィルタを再度使用しない場合は、そのフィルタを削除できます(「フレックスコンテンツ フィルタの削除」を参照)。
フレックスコンテンツ フィルタの状態を変更するには、ゾーン設定モードで次のコマンドを入力します。
表7-7 に、flex-content-filter コマンドの引数を示します。
|
|
---|---|
フレックスコンテンツ フィルタのリストを表示し、イネーブルまたはディセーブルにするフレックスコンテンツ フィルタの行番号を確認するには、show flex-content-filters コマンドを入力します(「フレックスコンテンツ フィルタの表示」を参照)。
次の例は、フレックスコンテンツ フィルタをディセーブルにする方法を示しています。
バイパス フィルタでは、スプーフィング防止機能やゾンビ防止機能などのトラフィック保護機能を適用せずに Guard モジュールがゾーンに直接転送するトラフィックを指定できます。
(注) Guard モジュールは、バイパス フィルタを通過したトラフィックをゾーンに注入します。その際、rate-limit コマンドによって定められたトラフィック レート制限は適用されません。
バイパス フィルタを追加するには、ゾーン設定モードで次のコマンドを入力します。
bypass-filter row-num src-ip [ ip-mask ] protocol dest-port [ fragments-type ]
表7-8 に、 bypass-filter コマンドの引数を示します。
(注) fragments-type と dest-port を両方指定することはできません。fragments-type を設定するには、dest-port にアスタリスク(*)を入力してください。
バイパス フィルタのリストを表示するには、ゾーン設定モードで次のコマンドを入力します。
表7-9 に、 show bypass-filters コマンド出力のフィールドを示します。
|
|
---|---|
• yes :フィルタは断片化されたトラフィックを処理します。 |
|
送信元 IP アドレス、送信元アドレスのマスク、プロトコル番号、および宛先ポートは、特定のものでなくてもかまいません。アスタリスク(*)は、フィルタがすべてのフィールド値に対して動作するか、フィルタに複数の値が一致したことを示します。
バイパス フィルタを削除するには、ゾーン設定モードで次のコマンドを使用します。
row-num 引数には、削除するバイパス フィルタの行番号を指定します。バイパス フィルタのリストを表示し、削除するバイパス フィルタの行番号を確認するには、 show bypass-filters コマンドを使用します(「バイパス フィルタの表示」を参照)。すべてのバイパス フィルタを削除するには、行番号としてアスタリスク( * )を入力します。
ユーザ フィルタは、異常なトラフィックや悪意のあるトラフィックが検出されたときに Guard モジュールが最初に実行するアクションを定義します。ユーザ フィルタは、必要な保護レベルを指定されたトラフィック フローに適用するか、または指定されたトラフィックをドロップします。Guard モジュールは、十分な時間を費やして攻撃を分析した後、攻撃の軽減方法を定義する動的フィルタの作成を開始します。攻撃中、Guard モジュールは、特定のトラフィック フローの処理方法を決定する前に、ユーザ フィルタと動的フィルタの両方を検査します。Guard は、フローに一致する最初のユーザ フィルタを動的フィルタと比較し、提案された中で最も強力な保護措置を選択します。この適切な保護レベルをトラフィック フローに適用し、トラフィックの認証を行います。
各ゾーン設定には、オンデマンドの保護用に設定されており、多様なタイプの攻撃を処理できる、デフォルトのユーザ フィルタのセットが含まれています。ユーザ フィルタを変更すると、Guard モジュールの保護機能をカスタマイズし、攻撃の疑いがある場合の Guard モジュールによる特定のトラフィック フローの処理規則を設定できます。
動的フィルタまたはユーザ フィルタが実行するアクションは、重大度レベルの大きい順に、drop、strong、basic、permit です。アクションが redirect/zombie および block-unauthenticated である動的フィルタは、同じタイプのトラフィックを処理するユーザ フィルタが存在している場合でも適用されます。これは、これらの動的フィルタは Guard モジュールの認証メカニズムに影響を与えて、トラフィック フローには直接の影響を与えないためです。動的フィルタの詳細については、「動的フィルタの設定」を参照してください。
ユーザ フィルタは、行番号の昇順でアクティブになります。新しいユーザ フィルタを追加する場合は、リストの適切な位置に配置することが重要です。
表7-10 に、ユーザ フィルタで実行可能なアクションを示します。
|
|
---|---|
フローの統計分析を行わないようにします。また、スプーフィング防止やゾンビ防止の保護機能がこのフローを処理しないようにします。他の保護メカニズムでは処理されないため、このフィルタにはレート リミットとバースト リミットを設定することを推奨します。 |
|
TCP 経由のアプリケーションを認証します。HTTP トラフィック フローには basic/redirect のアクションを実行することをお勧めします。 |
|
TCP 接続のリセットを許容しない TCP アプリケーション トラフィック フローを認証します。HTTP トラフィック フローには basic/redirect のアクションを実行することをお勧めします。 |
|
VoIP 1 アプリケーションを認証します。VoIP アプリケーションは、 |
|
トラフィック フローに対する強化認証をイネーブルにします。強化認証が必要な場合や、それまでのフィルタがアプリケーションに適していないと考えられる場合にこのフィルタを使用します。認証は、各接続に対して行われます。 TCP 着信接続では、Guard モジュールはプロキシの役割を果たします。ネットワーク内の着信 IP アドレスに基づいた ACL 4 、アクセス ポリシー、またはロード バランシング ポリシーを使用している場合は、接続に強化認証アクションを使用しないでください。 |
2.SIP = Session Initiation Protocol 3.RTP/RTCP = Real-Time Transport Protocol/Real-Time Control Protocol |
ステップ 1 ユーザ フィルタのリストを表示して、リスト内で新しいフィルタを追加する位置を確認します。詳細については、「ユーザ フィルタの表示」を参照してください。
ステップ 2 現在の行番号が連番の場合は、新しいユーザ フィルタを挿入するために、ユーザ フィルタの番号が増分するよう番号を割り当て直します。次のコマンドを入力します。
表7-11 に、 user-filter renumber コマンドの引数を示します。
|
|
---|---|
ステップ 3 次のコマンドを入力して、新しいユーザ フィルタを追加します。
表7-12 に、 user-filter コマンドの引数を示します。
|
|
---|---|
1 ~ 1000 の固有な番号。行番号はフィルタの ID で、これによって複数のユーザ フィルタの優先順位が定まります。Guard モジュールは、行番号の昇順でフィルタを操作します。 |
|
特定のトラフィック タイプに対してフィルタが実行するアクションを指定します。詳細については、 表7-10 を参照してください。 |
|
(オプション)特定のサブネットからのフロー。サブネット マスクには、クラス C の値のみを指定できます。デフォルトのサブネットは、255.255.255.255 です。 |
|
特定のプロトコルからのトラフィック。すべてのプロトコルを指定するには、アスタリスク( * )を使用します。 指定可能なプロトコル番号については、次に示す Internet Assigned Numbers Authority(IANA; インターネット割り当て番号局)の Web サイトを参照してください。 |
|
特定の宛先ポートへのトラフィック。すべての宛先ポートを指定するには、アスタリスク( * )を使用します。 指定可能なポート番号については、次に示す Internet Assigned Numbers Authority(IANA; インターネット割り当て番号局)の Web サイトを参照してください。 |
|
(オプション)トラフィックのタイプ。トラフィックのタイプは次のいずれかになります。 • no-fragments :断片化されていないトラフィック |
|
レート制限を指定する 64 より大きい整数。ユーザ フィルタは、トラフィックをこのレートに制限します。単位は、 units パラメータで指定します。デフォルトでは、フィルタのトラフィック レートは制限されません。 レート リミットは、最大で バースト リミットの 10 倍まで指定可能です。 |
|
トラフィックのバースト リミットを指定する、64 より大きい整数。単位は、 units パラメータで指定される単位に応じて、ビット、キロビット、キロパケット、メガビット、またはパケットになります。 burst リミットは、最大で rate リミットの 8 倍まで指定可能です。 |
|
次の例は、ユーザ フィルタ番号 10 から増分 5 で番号を振りなおす方法と、行番号 12 にユーザ フィルタを追加する方法を示しています。このフィルタは、プロトコルが 6(TCP)で宛先ポート 25(SMTP)に向かうすべての送信元 IP アドレスからのトラフィックを対象とします。このユーザ フィルタは、トラフィック フロー レートを 600 pps に、バースト サイズを 400 パケットに制限しています。
ゾーン設定モードで show コマンドまたは show running-config コマンドを入力して、ゾーン設定に関連付けられているユーザ フィルタを表示できます。
ヒント ユーザ フィルタの設定をディスプレイの先頭に表示するには、show コマンドまたは show running-config コマンドに | begin USER FILTERS オプションを指定して使用します。
表7-13 に、 show コマンドの出力におけるユーザ フィルタのフィールドを示します。
|
|
---|---|
フィルタが処理するトラフィックのタイプ。トラフィックのタイプは次のいずれかになります。 • yes :フィルタは断片化されたトラフィックを処理します。 |
|
特定のトラフィック タイプに対してフィルタが実行するアクションを指定します。詳細については、 表7-10 を参照してください。 |
|
ユーザ フィルタで処理可能なトラフィック レートの制限。レートは、 Units フィールドで指定された単位で表示されます。 |
|
フィルタが特定のフローに許可するトラフィックのバースト リミット。単位は、 Units フィールドで指定される単位に応じて、ビット、キロビット、キロパケット、メガビット、またはパケットになります。 |
|
送信元 IP アドレス、送信元アドレスのマスク、プロトコル番号、および宛先ポートは、特定のものでなくてもかまいません。アスタリスク(*)は、フィルタがすべてのフィールド値に対して動作するか、フィルタに複数の値が一致したことを示します。
ユーザ フィルタを削除するには、ゾーン設定モードで次のコマンドを入力します。
row-num 引数には、ユーザ フィルタの行番号を指定します。ユーザ フィルタのリストを表示し、削除するユーザ フィルタの行番号を確認するには、 show running-config コマンドを使用します(「ユーザ フィルタの表示」を参照)。すべてのユーザ フィルタを削除するには、行番号としてアスタリスク( * )を入力します。
次の例は、すべてのユーザ フィルタを削除する方法を示しています。
動的フィルタは、必要な保護レベルをトラフィック フローに適用し、Guard モジュールが攻撃を軽減する方法を定義するものです。Guard モジュールは、ゾーン トラフィックに異常があると判断した場合(フローがゾーン ポリシーのしきい値を超えた場合)、動的フィルタを作成します。Guard モジュールは、ゾーン トラフィックや DDoS 攻撃のタイプの変化に応じて、新しい動的フィルタを作成します。
動的フィルタは有効期間が限定されており、攻撃が終了すると Guard モジュールによって削除されます。Guard モジュールは、すべてのゾーンで同時にアクティブな動的フィルタを最大 150,000 個サポートします。ゾーンが攻撃を受けており、ゾーン保護がイネーブルになっている場合に、動的フィルタを追加または削除できます。
Guard モジュールは、トラフィック異常を検出すると、ユーザ フィルタと動的フィルタの両方を使用して攻撃を軽減します。Guard モジュールが攻撃を分析し、その攻撃のために特別に設計された軽減アクションを持つ動的フィルタの作成を開始するまで、ユーザ フィルタが防御の最前線になります。ユーザ フィルタの詳細、および Guard モジュールがユーザ フィルタと動的フィルタを組み合せて使用する方法の詳細については、「ユーザ フィルタの設定」を参照してください。
動的フィルタとユーザ フィルタが実行するアクションは、重大度レベルの大きい順に、drop、strong、basic、permit です。アクションが redirect/zombie および block-unauthenticated である動的フィルタは、同じタイプのトラフィックを処理するユーザ フィルタが存在している場合でも適用されます。これは、これらの動的フィルタは Guard モジュールの認証機能に影響を及ぼしますが、トラフィック フローには直接影響を及ぼさないためです。
表7-14 に、動的フィルタで実行可能なさまざまなアクションを示します。
|
|
---|---|
ユーザ フィルタにトラフィックを転送します。デフォルトのユーザ フィルタを変更した場合は、これらの動的フィルタを処理するユーザ フィルタが存在することを確認してください。 |
|
DNS スプーフィング防止機能で認証されなかった、DNS UDP サーバに向かうトラフィック(プロトコルが UDP、ポートが 53 のもの)をドロップします。 |
|
動的フィルタは、アクティブな状態が一定時間持続するよう設定されています。動的フィルタのタイムアウトに関するパラメータは、フィルタがどのように作成されたかによって、次のいずれかの方法で設定されます。
• ゾーン ポリシーによって作成された動的フィルタ:動的フィルタのタイムアウトは、ポリシーのタイムアウトに設定されています。ポリシーによって作成される追加の動的フィルタのタイムアウトを変更するには、ポリシー設定モードで timeout コマンドを入力して、この動的フィルタを作成したポリシーのタイムアウトを変更します。
• ユーザ定義の動的フィルタ:動的フィルタのタイムアウトは、 dynamic-filter コマンドの exp-time 引数を指定して定義します。
動的フィルタのタイムアウト期限が切れると、Guard モジュールは、現在のトラフィック状態に基づいて動的フィルタを非アクティブにするかどうかを判断します。Guard モジュールが動的フィルタを非アクティブにしないと決定した場合、フィルタはさらにある期間アクティブのままになります。動的フィルタの非アクティブ化の詳細については、「動的フィルタの非アクティブ化」を参照してください。
ゾーン設定モードで次のいずれかのコマンドを使用して、Guard モジュールによって作成された動的フィルタを表示できます。
• show dynamic-filters [ details ]:すべての動的フィルタのリストを表示します。
• show dynamic-filters dynamic-filter-id [ details ]:特定の動的フィルタを 1 つ表示します。
• show dynamic-filters sort { action | exp-time | id | filter-rate }:すべての動的フィルタのソートされたリストを表示します。
表7-15 に、 show dynamic-filters コマンドの引数とキーワードを示します。
|
|
---|---|
表示する特定の動的フィルタの ID。この整数は Guard モジュールによって割り当てられます。フィルタの ID を確認するには、動的フィルタの完全なリストを表示します。 |
|
(オプション)動的フィルタを詳細に表示します。詳細情報には、攻撃フローに関する追加情報、トリガーとなるレート、およびそのフィルタを作成したポリシーなどがあります。 |
|
(注) Guard モジュールがインタラクティブ検出モードで動作している場合に、保留動的フィルタを表示するには、show recommendations コマンドを使用します。保留動的フィルタの詳細については、「インタラクティブ保護モードの使用方法」を参照してください。
(注) Guard モジュールは、最大 1000 個の動的フィルタを表示します。1000 を超える動的フィルタがアクティブになっている場合は、ログ ファイルまたはゾーンのレポートで、動的フィルタに関するすべてのリストを確認してください。
表7-16 に、 show dynamic-filters コマンド出力のフィールドを示します。
|
|
---|---|
フィルタがトラフィック フローに対して実行するアクション。詳細については、 表7-14 を参照してください。 |
|
フィルタがアクティブになっている時間。この時間が経過すると、フィルタは、 filter-termination コマンドで定義されたしきい値に従って削除される場合があります。 |
|
• yes :フィルタは断片化されたトラフィックを処理します。 |
|
送信元 IP アドレス、送信元アドレスのマスク、プロトコル番号、および宛先ポートは、特定のものでなくてもかまいません。アスタリスク(*)は、フィルタがすべてのフィールド値に対して動作するか、フィルタに複数の値が一致したことを示します。
表7-17 に、 show dynamic-filters details コマンド出力の追加フィールドを示します。
|
|
---|---|
軽減が図られた攻撃フローの特性。Dynamic Filters テーブルに表示される軽減が図られた攻撃フローの範囲は、攻撃フローの範囲より広い場合があります。たとえば、ポート 80 で非スプーフィング攻撃が発生すると、ポート 80 からのトラフィックだけでなく、最初の発信元 IP アドレスからのすべての TCP トラフィックがブロックされます。攻撃フローは、Source IP、Source Mask、Proto、Dport、および Frg フィールドで構成されています。これらのフィールドについては、 表7-16 で説明しています。 |
|
動的フィルタを作成したポリシー。詳細については、「ポリシー テンプレートとポリシーの設定」 を参照してください。 |
ゾーンの攻撃中に、ゾーン設定モードで次のコマンドを使用し、動的フィルタを追加してゾーン保護を操作できます。
dynamic-filter action { exp-time | forever } src-ip [ ip-mask ] protocol dest-port [ fragments-type ]
複数の動的フィルタを追加するには、 dynamic-filter コマンドを複数使用します。
表7-18 に、 dynamic-filter コマンドの引数とキーワードを示します。
|
|
---|---|
フィルタが特定のトラフィック フローに対して実行するアクション。詳細については、 表7-14 を参照してください。 |
|
特定の発信元 IP アドレスからのトラフィック。IP アドレスをドット区切り 10 進表記で入力します(たとえば 192.168.100.1)。すべての IP アドレスを指定するには、アスタリスク( * )を使用します。 |
|
(オプション)特定のサブネットからのフロー。サブネット マスクをドット区切り 10 進表記で入力します(たとえば 255.255.255.0)。サブネット マスクには、クラス C の値のみを指定できます。デフォルトのサブネットは、255.255.255.255 です。 |
|
特定のプロトコルからのトラフィック。すべてのプロトコルを指定するには、アスタリスク( * )を使用します。 指定可能なプロトコル番号については、次に示す Internet Assigned Numbers Authority(IANA; インターネット割り当て番号局)の Web サイトを参照してください。 |
|
特定の宛先ポートに向かうトラフィック。すべての宛先ポートを指定するには、アスタリスク( * )を使用します。 指定可能なポート番号については、次に示す Internet Assigned Numbers Authority(IANA; インターネット割り当て番号局)の Web サイトを参照してください。 |
|
(オプション)フィルタが機能するトラフィック タイプ。断片化には、次の 3 つのタイプがあります。 • no-fragments :断片化されていないトラフィック |
次の例は、トラフィックをユーザ フィルタへ転送する、有効期限が 600 秒の動的フィルタを追加する方法を示しています。
動的フィルタを削除しても、削除が有効になっている期間は限られています。これは、ゾーン保護がイネーブルのときは、Guard モジュールが新しい動的フィルタの設定を続行するためです。Guard モジュールが動的フィルタを作成しないようにする方法の詳細については、「動的フィルタの作成防止」を参照してください。
動的フィルタを削除するには、ゾーン設定モードで次のコマンドを入力します。
no dynamic-filter dynamic-filter-id
dynamic-filter-id 引数には、動的フィルタの ID を指定します。動的フィルタのリストを表示し、削除する動的フィルタの ID を確認するには、 show dynamic-filters コマンドを使用します(「動的フィルタの表示」を参照)。すべてのゾーン動的フィルタを削除するには、動的フィルタの ID としてアスタリスク( * )を入力します。
Guard モジュールが不要な動的フィルタを作成しないようにするには、次のいずれかのアクションを実行します。
• 動的フィルタを作成するポリシーを非アクティブにします(詳細については、「ポリシーの状態の変更」を参照)。不要な動的フィルタを作成したポリシーを特定するには、「動的フィルタの表示」を参照してください。
• 目的のトラフィック フローにバイパス フィルタを設定します(「バイパス フィルタの設定」を参照)。
• 不要な動的フィルタを作成するポリシーのしきい値を増分します(「ポリシーのしきい値の設定」を参照)。
動的フィルタのタイムアウト期限が切れると、Guard モジュールは、現在のトラフィック状態に基づいて動的フィルタを非アクティブにするかどうかを判断します。Guard モジュールが動的フィルタを非アクティブにしないと決定した場合、フィルタはさらにある期間アクティブのままになります。
動的フィルタは、次のいずれか 1 つの条件に当てはまる場合に非アクティブになります。
• ゾーンの悪意のあるトラフィック レートの合計(スプーフィングされたトラフィックとドロップされたトラフィックの合計と等しい)が、zone-malicious-rate 終了しきい値以下である。この項の次のコマンドを参照してください。
• 動的フィルタでトラフィック レートが測定され(フィルタのレート カウンタに N/A と表示されていない)、filter-rate 終了しきい値(この項で次に示すコマンドを参照)が次の両方の値以上である。
–ユーザが設定した期間内の動的フィルタの平均トラフィック レート。この期間は、ポリシーのタイムアウト パラメータで定義されます。詳細については、「ポリシーのタイムアウトの設定」を参照してください。
(注) アクション to-user-filters、block-unauthenticated、redirect/zombie、または notify が指定された動的フィルタでは、トラフィック レートは測定されません。
ゾーンの悪意のあるトラフィックのしきい値を設定するには、ゾーン設定モードで次のコマンドを入力します。
filter-termination zone-malicious-rate threshold
threshold 引数は、ゾーンの悪意のあるトラフィックのしきい値をパケット/秒(pps)単位で指定します。このトラフィックは、スプーフィングされたトラフィックとドロップされたトラフィックの合計で構成されます。デフォルト値は 50 pps です。
動的フィルタのレート終了しきい値を設定するには、ゾーン設定モードで次のコマンドを入力します。
filter-termination { filter-rate | filter-rate-pph } threshold
表7-19 に、 filter-termination コマンドの引数とキーワードを示します。
|
|
---|---|
PPH ポリシーによって作成されたフィルタのパケット/時のフィルタ レートを指定します(「ゾーン ポリシーについて」を参照)。 |
|
動的フィルタのトラフィックしきい値。単位は、選択するキーワードに応じてパケット/秒またはパケット/時のいずれかになります。デフォルト値は次のとおりです。 |
次の例は、動的フィルタの終了レートを設定する方法を示しています。