この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
この章では、Cisco Anomaly Guard Module(Guard モジュール)フィルタの設定方法について説明します。
• 概要
ゾーン フィルタは、Guard モジュールが特定のトラフィック フローを処理する方法を定義します。トラフィック フローをカスタマイズし、DDoS 防止保護操作を制御するようにフィルタを設定できます。
ゾーン フィルタを使用すると、Guard モジュールは次の機能を実行できます。
• 基本レベルまたは強化レベルの保護を適用し、異常なトラフィックから正当なトラフィックを分離して取り出す。
• トラフィックを直接ゾーンに転送し、Guard モジュールの保護機能をバイパスする。
Guard モジュールには、次のタイプのフィルタがあります。
• ユーザ フィルタ:必要な保護レベルを指定されたトラフィック フローに適用する。このフィルタは、異常なトラフィックや悪意のあるトラフィックが検出されたときに Guard モジュールが最初に実行するアクションを定義します。ゾーン設定には、多様なタイプの攻撃を処理できるオンデマンドの保護用に設定された、デフォルトのユーザ フィルタのセットが含まれています。ユーザ フィルタを変更すると、Guard モジュールの保護機能をカスタマイズし、攻撃の疑いがある場合の Guard モジュールによるトラフィック フローの処理規則を設定できます。
詳細については、「ユーザ フィルタの設定」を参照してください。
• バイパス フィルタ:Guard モジュールが特定のトラフィック フローを処理しないようにする。
信頼できるトラフィックが Guard モジュールの保護機能を通らないように誘導して、Guard モジュールが信頼できるトラフィックを分析しないようにし、直接ゾーンに転送できます。
詳細については、「バイパス フィルタの設定」を参照してください。
• フレックスコンテンツ フィルタ:特定のトラフィック フローをカウントまたはドロップする。IP ヘッダーや TCP ヘッダー内のフィールドに基づいたフィルタリング、ペイロード コンテンツに基づいたフィルタリング、複雑なブール式に基づいたフィルタリングなどの非常に柔軟なフィルタリング機能があります。
詳細については、「フレックスコンテンツ フィルタの設定」を参照してください。
• 動的フィルタ:必要な保護レベルを指定されたトラフィック フローに適用する。Guard モジュールは、トラフィック フロー分析に基づいて動的フィルタを作成し、ゾーン トラフィックや DDoS 攻撃(分散型サービス拒絶攻撃)のタイプに合せて常に動的フィルタ セットを修正しています。動的フィルタは有効期間が限定されており、攻撃が終了すると削除されます。
詳細については、「動的フィルタの設定」を参照してください。
図 7-1 に、Guard モジュールのフィルタ システムを示します。
ユーザのアクションまたはリモートのネットワーク検知 DDoS 要素、たとえば Cisco Traffic Anomaly Detector Module(Detector モジュール)などによってゾーン保護がイネーブルになると、Guard モジュールはゾーンのトラフィックを分析します。
Guard モジュールは、ゾーンに流れるトラフィックのレートを監視します。定義済みのレートを超過するトラフィックはドロップされ、正当なトラフィックはゾーンに転送されます。Guard モジュールは、ゾーンのトラフィックの統計分析を行い、クローズド ループのフィードバック サイクルを制御して、動的に変化するゾーンのトラフィック特性や変化する DDoS 攻撃のタイプに合せて保護措置を調整します。
トラフィック フローの統計分析を行うために、Guard モジュールには特定のタイプのトラフィックを処理する定義があります。この定義を、ゾーン ポリシーといいます。ゾーン ポリシーは、常にトラフィック フローを測定し、特定のトラフィック フローが悪意のあるものまたは異常である(トラフィック フローがポリシーのしきい値を超えた)と判断すると、そのフローに対してアクションを実行します。
Guard モジュールは、異常なトラフィックを識別すると次の処理を実行します。
1. 攻撃を処理するアクションが設定された動的フィルタの作成を開始する。デフォルトでは、Guard モジュールは、すべてのトラフィックをユーザ フィルタに誘導する最初の動的フィルタを追加します。Guard モジュールが十分な時間を費やして攻撃を分析するまでは、ユーザ フィルタが、新たに発生する DDoS 攻撃を第一線で防御します。
2. Guard モジュール内部のトラフィック フローを変更する。異常なトラフィックは、破線で示されているように、コンパレータに流れます。コンパレータとは、動的フィルタとユーザ フィルタから入力を受け取るコンポーネントです。コンパレータは、フローに一致する最初のユーザ フィルタを動的フィルタと比較し、 提案された中で最も強力な保護措置を選択します。 コンパレータは関連する保護レベルを適用し、トラフィックを認証します。
動的フィルタは有効期間が限定されており、攻撃が終了すると削除されます。デフォルトでは、ユーザがゾーンの保護を非アクティブにするまで Guard モジュールはゾーンを保護します。
フレックスコンテンツ フィルタは、パケット ヘッダー内のフィールドまたはパケット ペイロードのパターンに基づいて、ゾーン トラフィックをフィルタリングします。着信トラフィックに現れているパターンに基づいて攻撃を識別できます。これらのパターンでは、既知のワームまたは一定のパターンを持つフラッド攻撃が識別可能です。
(注) フレックスコンテンツ フィルタは大量の CPU リソースを消費します。フレックスコンテンツ フィルタは Guard モジュールのパフォーマンスに影響を及ぼす可能性があるため、使用を制限することをお勧めします。指定のポートに送信される TCP トラフィックなど、動的フィルタによって識別できる特定の攻撃からの保護にフレックスコンテンツ フィルタを使用する場合は、動的フィルタを使用してトラフィックをフィルタリングすることをお勧めします。
フレックスコンテンツ フィルタは、目的のパケット フローをカウントまたはドロップする場合、および特定の悪意のあるトラフィックの送信元を識別する場合に使用します。
フレックスコンテンツ フィルタは、次の順序でフィルタリング基準を適用します。
1. プロトコルとポートのパラメータ値に基づいてパケットをフィルタリングする。
2. tcpdump 式の値に基づいてパケットをフィルタリングする。
3. 残りのパケットに対して pattern-expression の値を使用してパターン マッチングを実行する。
フレックスコンテンツ フィルタは、行番号の昇順でアクティブになります。新しいフレックスコンテンツ フィルタを追加する場合は、リストの適切な位置に配置してください。
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 |
|
特定の宛先ポート宛てのトラフィック。0 ~ 65535 の整数を入力します。特定のポート番号を定義するには、特定のプロトコル番号を定義する必要があります。 すべての宛先ポートを示すには、アスタリスク( * )を使用します。プロトコル番号を 6(TCP)または 17(UDP)に設定する場合に、アスタリスクを使用できます。 指定可能なポート番号については、次に示す Internet |
|
パケット ペイロードの先頭から、 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 式を使用できます。ただし、パフォーマンスへの影響を考慮し、これらの基準でトラフィックをフィルタリングする場合は、フレックスコンテンツ フィルタで 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 フィールドに適用されます。 |
|
|
expression |
パケットと照合する tcpdump 式をバークリー パケット フィルタ形式で指定します。tcpdump 式の構文については、「tcpdump 式の構文の設定」を参照してください。 |
|
パケット ペイロードと照合する正規表現のデータ パターンを指定します。パターン式の構文については、「パターン式構文の設定」を参照してください。 |
|
フレックスコンテンツ フィルタを削除またはディセーブルにして、Guard モジュールがフィルタ式に基づくパケットのフィルタリングをしないようにすることができます。詳細については、「フレックスコンテンツ フィルタの状態の変更」を参照してください。
フレックスコンテンツ フィルタを削除するには、次の手順を実行します。
ステップ 1 show flex-content-filters コマンドを使用してフレックスコンテンツ フィルタのリストを表示し、削除するフレックスコンテンツ フィルタの行番号を確認します。
次の例は、フレックスコンテンツ フィルタのリストを表示する方法を示しています。
詳細については、「フレックスコンテンツ フィルタの表示」を参照してください。
ステップ 2 no flex-content-filter row-num コマンドを入力して、フレックスコンテンツ フィルタを削除します。
row-num 引数には、削除するフレックスコンテンツ フィルタの行番号を指定します。すべてのフレックスコンテンツ フィルタを削除するには、 row-num 引数としてアスタリスク( *) を入力します。
次の例は、フレックスコンテンツ フィルタを削除する方法を示しています。
フレックスコンテンツ フィルタをディセーブルにすると、Guard モジュールはフィルタ式に基づくパケットのフィルタリングと、特定の種類のトラフィックのフィルタリングを実行しなくなります(フィルタはフレックスコンテンツ フィルタのリストに保持されます)。
その後、Guard モジュールが指定されたトラフィックをフィルタリングするように再設定できます(フィルタの再設定は不要)。あるいは、フレックスコンテンツ フィルタを削除することもできます。詳細については、「フレックスコンテンツ フィルタの削除」を参照してください。
フレックスコンテンツ フィルタの状態を変更するには、次の手順を実行します。
ステップ 1 フレックスコンテンツ フィルタのリストを表示し、状態を変更するフレックスコンテンツ フィルタの行番号を確認します。
詳細については、「フレックスコンテンツ フィルタの表示」を参照してください。
ステップ 2 次のコマンドを入力して、フレックスコンテンツ フィルタの状態を変更します。
row-num 引数には、フレックスコンテンツ フィルタの行番号を指定します。
次の例は、フレックスコンテンツ フィルタをディセーブルにする方法を示しています。
バイパス フィルタは、Guard モジュールの保護機能(スプーフィング防止機能とゾンビ防止機能を含む)を適用しないという保護ポリシーの決定をサポートし、指定されたトラフィックを直接ゾーンに転送します。
(注) Guard モジュールは、バイパス フィルタを通過したトラフィックをゾーンに注入します。その際、rate-limit コマンドによって定められたトラフィック レート制限は適用されません。
バイパス フィルタを追加するには、ゾーン設定モードで次のコマンドを入力します。
bypass-filter row-num src-ip [ ip-mask ] protocol dest-port [ fragments-type ]
表7-7 に、 bypass-filter コマンドの引数を示します。
(注) fragments-type と dest-port を両方指定することはできません。
fragments-type を設定するには、dest-port にアスタリスク(*)を入力してください。
バイパス フィルタを表示するには、ゾーン設定モードで次のコマンドを入力します。
表7-8 に、 show bypass-filters コマンドの出力フィールドを示します。
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
|
• yes:フィルタは断片化されたトラフィックを処理します。 |
|
送信元 IP アドレス、送信元アドレスのマスク、プロトコル番号、および宛先ポートは、特定のものでなくてもかまいません。アスタリスク(*)は、フィルタがすべてのフィールド値に対して動作するか、フィルタに複数の値が一致したことを示します。
ステップ 1 バイパス フィルタのリストを表示し、削除するバイパス フィルタの行番号を確認します。
詳細については、前の項「 バイパス フィルタの表示 」を参照してください。
ステップ 2 ゾーン設定モードで次のコマンドを入力して、バイパス フィルタを削除します。
row-num 引数には、削除するバイパス フィルタの行番号を指定します。すべてのバイパス フィルタを削除するには、アスタリスク( * )を入力します。
ユーザ フィルタは、必要な保護レベルを指定されたトラフィック フローに適用したり、指定されたトラフィックをドロップしたりします。このフィルタは、異常なトラフィックや悪意のあるトラフィックが検出されたときに Guard モジュールが最初に実行するアクションを定義します。
ゾーン設定には、多様なタイプの攻撃を処理できるオンデマンドの保護用に設定された、デフォルトのユーザ フィルタのセットが含まれています。ユーザ フィルタを変更すると、Guard モジュールの保護機能をカスタマイズし、攻撃の疑いがある場合の Guard モジュールによる特定のトラフィック フローの処理規則を設定できます。
Guard モジュールは、ゾーン宛のトラフィックを継続的に分析します。異常なトラフィック パターンを検出すると、攻撃の処理方法を定義する動的フィルタの作成を開始します。デフォルトでは、Guard モジュールは、すべてのトラフィックをユーザ フィルタに誘導する最初の動的フィルタを追加します。Guard モジュールが十分な時間を費やして攻撃を分析するまでは、ユーザ フィルタが、新たに発生する DDoS 攻撃を第一線で防御します。
Guard モジュールは、特定のトラフィック フローの処理方法を決定する前に、ユーザ フィルタと動的フィルタの両方を検査します。コンパレータは、フローに一致する最初のユーザ フィルタを動的フィルタと比較し、 提案された中で最も強力な保護措置を選択します。 この適切な保護レベルをトラフィック フローに適用し、トラフィックの認証を行います。動的フィルタまたはユーザ フィルタが実行するアクションは、重大度レベルの大きい順に、drop、strong、basic、permit です。アクションが redirect/zombie および block-unauthenticated である動的フィルタは、同じタイプのトラフィックを処理するユーザ フィルタが存在している場合でも適用されます。これは、これらの動的フィルタは Guard モジュールの認証メカニズムに影響を与えて、トラフィック フローには直接の影響を与えないためです。
ユーザ フィルタは、行番号の昇順でアクティブになります。新しいユーザ フィルタを追加する場合は、リストの適切な位置に配置することが重要です。
表7-9 に、ユーザ フィルタで実行可能なアクションを示します。
|
|
---|---|
フローの統計分析を行わないようにします。また、スプーフィング防止やゾンビ防止の保護機能がこのフローを処理しないようにします。他の保護メカニズムでは処理されないため、このフィルタにはレート リミットとバースト リミットを設定することを推奨します。 |
|
TCP 経由のアプリケーションを認証します。HTTP トラフィック フローには basic/redirect のアクションを実行することをお勧めします。 |
|
TCP 接続のリセットを許容しない TCP アプリケーション トラフィック フローを認証します。HTTP トラフィック フローには basic/redirect のアクションを実行することをお勧めします。 |
|
SIP1 over UDP を使用して VoIP セッションを確立し、セッション確立後に RTP/RTCP2 を使用して音声データを SIP エンド ポイント間で伝送する VoIP3 アプリケーションを認証します。 |
|
トラフィック フローに対する強化認証をイネーブルにします。強化認証が必要な場合や、それまでのフィルタがアプリケーションに適していないと考えられる場合にこのフィルタを使用します。認証は、各接続に対して行われます。 TCP 着信接続では、Guard モジュールはプロキシの役割を果たします。ネットワーク内の着信 IP アドレスに基づいた ACL4、アクセス ポリシー、またはロード バランシング ポリシーを使用している場合は、接続に強化認証アクションを使用しないでください。 |
1.SIP = Session Initiation Protocol 2.RTP/RTCP = Real-Time Transport Protocol/Real-Time Control Protocol |
ステップ 1 ユーザ フィルタのリストを表示して、リスト内で新しいフィルタを追加する位置を確認します。詳細については、「ユーザ フィルタの表示」を参照してください。
ステップ 2 現在の行番号が連番の場合は、次のコマンドを入力して、新しいユーザ フィルタを挿入できるようにユーザ フィルタの番号を順に増加させます。
]]
表7-10 に、 user-filter renumber コマンドの引数を示します。
|
|
---|---|
|
|
|
ステップ 3 次のコマンドを入力して、新しいユーザ フィルタを追加します。
fragments-type
] [rate-limit rate burst units]
表7-11 に、 user-filter コマンドの引数を示します。
|
|
---|---|
|
1 ~ 1000 の固有な番号。行番号はフィルタの ID で、これによって複数のユーザ フィルタの優先順位が定まります。Guard モジュールは、行番号の昇順でフィルタを操作します。 |
|
特定のトラフィック タイプに対してフィルタが実行するアクション。詳細については、 表7-9 を参照してください。 |
|
|
|
(オプション)特定のサブネットからのフロー。サブネット マスクには、クラス C の値のみを指定できます。デフォルトのサブネットは、255.255.255.255 です。 |
|
特定のプロトコルからのトラフィック。すべてのプロトコルを示すには、アスタリスク( * )を使用します。 指定可能なプロトコル番号については、次に示す Internet |
|
特定の宛先ポートへのトラフィック。すべての宛先ポートを示すには、アスタリスク( * )を使用します。 指定可能なポート番号については、次に示す 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-12 に、 show コマンドの出力におけるユーザ フィルタのフィールドを示します。
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
特定のトラフィック タイプに対してフィルタが実行するアクションを指定します。詳細については、 表7-9 を参照してください。 |
|
ユーザ フィルタで処理可能なトラフィック レートの制限。レートは、 Units フィールドで指定された単位で表示されます。 |
|
フィルタが特定のフローに許可するトラフィックのバースト リミット。単位は、 Units フィールドで指定される単位に応じて、ビット、キロビット、キロパケット、メガビット、またはパケットになります。 |
|
送信元 IP アドレス、送信元アドレスのマスク、プロトコル番号、および宛先ポートは、特定のものでなくてもかまいません。アスタリスク(*)は、フィルタがすべてのフィールド値に対して動作するか、フィルタに複数の値が一致したことを示します。
ステップ 1 ユーザ フィルタのリストを表示し、削除するユーザ フィルタの行番号を確認します。詳細については、前の項「 ユーザ フィルタの表示 」を参照してください。
ステップ 2 ゾーン設定モードで次のコマンドを入力して、ユーザ フィルタを削除します。
row-num 引数には、ユーザ フィルタの行番号を指定します。すべてのユーザ フィルタを削除するには、アスタリスク( * )を入力します。
次の例は、すべてのユーザ フィルタを削除する方法を示しています。
動的フィルタは必要な保護レベルをトラフィック フローに適用し、攻撃の処理方法を定義するものです。Guard モジュールは、ゾーン トラフィックに異常があると判断すると(フローがゾーン ポリシーのしきい値を超えたときに発生する)、動的フィルタを作成し、この動的フィルタ セットを常にゾーン トラフィックや DDoS 攻撃のタイプに適合させます。動的フィルタは有効期間が限定されており、攻撃が終了すると削除されます。Guard モジュールは、すべてのゾーンで同時にアクティブな動的フィルタを最大 150,000 個サポートします。
デフォルトでは、Guard モジュールは、すべてのトラフィックをユーザ フィルタに誘導する最初の動的フィルタを作成します。Guard モジュールが十分な時間を費やして攻撃を分析するまでは、ユーザ フィルタが、新たに発生する DDoS 攻撃を第一線で防御します。
Guard モジュールは、特定のトラフィック フローの処理方法を決定する前に、ユーザ フィルタと動的フィルタの両方を検査します。コンパレータは、フローに一致する最初のユーザ フィルタを動的フィルタと比較し、 提案された中で最も強力な保護措置を選択します。 この適切な保護レベルをトラフィック フローに適用し、トラフィックの認証を行います。動的フィルタとユーザ フィルタが実行するアクションは、重大度レベルの大きい順に、drop、strong、basic、permit です。アクションが redirect/zombie および block-unauthenticated である動的フィルタは、同じタイプのトラフィックを処理するユーザ フィルタが存在している場合でも適用されます。これは、これらの動的フィルタは Guard モジュールの認証機能に影響を及ぼしますが、トラフィック フローには直接影響を及ぼさないためです。
動的フィルタを追加できるのは、ゾーン保護がイネーブルになっている場合のみです。
表7-13 に、動的フィルタで実行可能なさまざまなアクションを示します。
|
|
---|---|
ユーザ フィルタにトラフィックを転送します。デフォルトのユーザ フィルタを変更した場合は、これらの動的フィルタを処理するユーザ フィルタが存在することを確認してください。 |
|
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 } :すべての動的フィルタのソートされたリストを表示します。
保留 動的 フィルタを表示するには、show recommendations コマンドを使用します。保留動的フィルタの詳細については、 第 11 章「インタラクティブ保護モードの使用方法」 を参照してください。
表7-14 に、 show dynamic-filters コマンドの引数とキーワードを示します。
|
|
---|---|
|
表示する特定の動的フィルタの ID5。この整数は Guard モジュールによって割り当てられます。フィルタの ID を確認するには、動的フィルタの完全なリストを表示します。 |
|
動的フィルタを詳細に表示します。詳細情報には、攻撃フローに関する追加情報、トリガーとなるレート、およびそのフィルタを作成したポリシーなどがあります。 |
|
|
|
|
|
|
|
(注) Guard モジュールは、最大 1,000 個の動的フィルタを表示します。1,000 を超える動的フィルタがアクティブになっている場合は、ログ ファイルまたはゾーンのレポートで、動的フィルタに関するすべてのリストを確認してください。
表7-15 に、 show dynamic-filters コマンドの出力フィールドを示します。
|
|
---|---|
|
|
|
フィルタがトラフィック フローに対して実行するアクションを示します。詳細については、 表7-13 を参照してください。 |
|
フィルタがアクティブになっている時間を示します。この時間が経過すると、フィルタは、 filter-termination コマンドで定義されたしきい値に従って削除される場合があります。 |
|
|
|
|
|
|
|
|
|
フィルタが断片化されたトラフィックを処理するかどうかを指定します。 • yes :フィルタは断片化されたトラフィックを処理します。 |
|
送信元 IP アドレス、送信元アドレスのマスク、プロトコル番号、および宛先ポートは、特定のものでなくてもかまいません。アスタリスク(*)は、フィルタがすべてのフィールド値に対して動作するか、フィルタに複数の値が一致したことを示します。
表7-16 に、 show dynamic-filters details コマンドの追加出力フィールドを示します。
|
|
---|---|
|
軽減が図られた攻撃フローの特性を示します。Dynamic Filters テーブルに表示される軽減が図られた攻撃フローの範囲は、攻撃フローの範囲より広い場合があります。たとえば、ポート 80 で非スプーフィング攻撃が発生すると、ポート 80 からのトラフィックだけでなく、最初の発信元 IP アドレスからのすべての TCP トラフィックがブロックされます。攻撃フローは、 Source IP、Source Mask、Proto、Dport、および Frg フィールドで構成されています。これらのフィールドについては、 表7-15 で説明しています。 |
|
|
|
|
|
動的フィルタを作成したポリシーを指定します。詳細については、 第 8 章「ポリシー テンプレートとポリシーの設定」 を参照してください。 |
ゾーンの攻撃中に、動的フィルタを追加してゾーン保護を操作することができます。
動的フィルタを追加するには、ゾーン設定モードで次のコマンドを入力します。
dynamic-filter action { exp-time | forever } src-ip [ ip-mask ] protocol dest-port [ fragments-type ]
複数の動的フィルタを追加するには、 dynamic-filter コマンドを複数使用します。
表7-17 に、 dynamic-filter コマンドの引数を示します。
|
|
---|---|
|
フィルタが特定のトラフィック フローに対して実行するアクション。詳細については、 表7-13 を参照してください。 |
|
|
|
|
|
特定の発信元 IP アドレスからのトラフィック。IP アドレスをドット区切り 10 進表記で入力します(たとえば 192.168.100.1)。すべての IP アドレスを指定するには、アスタリスク( * )を使用します。 |
|
(オプション)特定のサブネットからのフロー。サブネット マスクをドット区切り 10 進表記で入力します(たとえば |
|
特定のプロトコルからのトラフィック。すべてのプロトコルを指定するには、アスタリスク( * )を使用します。 指定可能なプロトコル番号については、次に示す Internet |
|
特定の宛先ポートに向かうトラフィックを処理します。すべての宛先ポートを指定するには、アスタリスク( * )を使用します。 指定可能なポート番号については、次に示す Internet Assigned Numbers Authority(IANA; インターネット割り当て番号局)の Web サイトを参照してください。 |
|
(オプション)フィルタが機能するトラフィック タイプ。断片化には、次の 3 つのタイプがあります。 • no-fragments :断片化されていないトラフィック |
次の例は、トラフィックをユーザ トラフィックに誘導する、有効期限が 600 秒の動的フィルタを追加する方法を示しています。
動的フィルタを削除しても、削除が有効になっている期間は限られています。これは、ゾーン保護がイネーブルのときは、Guard モジュールが新しい動的フィルタの設定を続行するためです。Guard モジュールが動的フィルタを作成しないようにする方法の詳細については、「動的フィルタの作成防止」を参照してください。
ステップ 1 動的フィルタのリストを表示し、削除する動的フィルタの ID を確認します。
詳細については、前の項「 動的フィルタの表示 」を参照してください。
ステップ 2 ゾーン設定モードで次のコマンドを入力して、関連する動的フィルタを削除します。
dynamic-filter-id 引数には、動的フィルタの ID を指定します。すべての動的フィルタを削除するには、アスタリスク( * )を使用します。
不要な動的フィルタが作成されないようにするには、次のいずれかのアクションを実行します。
• 動的フィルタを作成するポリシーを非アクティブにします(詳細については、「ポリシーの状態の変更」を参照)。不要な動的フィルタを作成したポリシーを特定するには、「動的フィルタの表示」を参照してください。
• 目的のトラフィック フローにバイパス フィルタを設定します。詳細については、「バイパス フィルタの設定」を参照してください。
• 不要な動的フィルタを作成するポリシーのしきい値を増分します。詳細については、「ポリシーのしきい値の設定」を参照してください。
動的フィルタのタイムアウト期限が切れると、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 threshold
threshold 引数には、動的フィルタのトラフィックのしきい値を pps 単位で指定します。デフォルト値は 2 pps です。
次の例は、動的フィルタの終了レートを設定する方法を示しています。