Cisco IOS XE セキュリティ コンフィギュレーショ ン ガイド:データ プレーンのセキュリティ保護
Flexible Packet Matching
Flexible Packet Matching
発行日;2012/01/16 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 2MB) | フィードバック

目次

Flexible Packet Matching

機能情報の確認

目次

Flexible Packet Matching の前提条件

Flexible Packet Matching の制約事項

Flexible Packet Matching の概要

Flexible Packet Matching 機能の概要

プロトコル ヘッダー記述ファイル

フィルタ記述

Flexible Packet Matching のトラフィック クラスとトラフィック ポリシーの設定方法

Flexible Packet Matching のトラフィック クラスの作成

トラブルシューティングのヒント

次の作業

Flexible Packet Matching のトラフィック ポリシーの作成

FPM コンフィギュレーションの設定例

ASR プラットフォームでの FPM の設定と確認:例

その他の関連資料

関連マニュアル

標準

MIB

RFC

シスコのテクニカル サポート

Flexible Packet Matching に関する機能情報

Flexible Packet Matching

Flexible Packet Matching(FPM)は、次世代の Access Control List(ACL; アクセス コントロール リスト)パターン マッチング ツールです。より詳細でカスタマイズされたパケット フィルタが用意されています。FPM を使用すると、パケットの任意のビット、パケット ヘッダーおよびペイロードの任意の深さでマッチングできます。FPM は、パケット インスペクションが制限された特定のフィールドに対する制約を取り除きます。

FPM が便利なのは、独自のステートレス パケットの分類基準を作成し、複数のアクション(Internet Control Message Protocol(ICMP; インターネット制御メッセージ プロトコル)unreachable1 のドロップ、ログ、送信など)を含むポリシーを定義して、新しいウイルス、ワーム、および攻撃をただちにブロックできるためです。

機能情報の確認

最新の機能情報と注意事項については、ご使用のプラットフォームとソフトウェア リリースに対応したリリース ノートを参照してください。このモジュールで説明される機能に関する情報、および各機能がサポートされるリリースの一覧については、「Flexible Packet Matching に関する機能情報」を参照してください。

プラットフォームのサポートおよび Cisco IOS XE ソフトウェア イメージのサポートに関する情報を検索するには、Cisco Feature Navigator を使用します。Cisco Feature Navigator には、 http://www.cisco.com/go/cfn からアクセスします。Cisco.com のアカウントは必要ありません。

Flexible Packet Matching の前提条件

XML エディタへのアクセスは必要ありませんが、XML によって、Protocol Header Description File(PHDF; プロトコル ヘッダー記述ファイル)の作成は容易になります。

Flexible Packet Matching の制約事項

FPM では、パケットの先頭 256 バイト以内で、最大 32 バイトの長さまでのパターンを検索できます。

policy-map では最大 32 クラスがサポートされます。

IP オプション パケットの場合、FPM はレイヤ 2 ヘッダーのフィールドと IP ヘッダーの先頭 20 バイトのみを検査します。

非初期 IP フラグメントの場合、FPM はレイヤ 2 ヘッダーのフィールドと IP ヘッダーの先頭 20 バイトのみを検査します。

FPM は、ステートフル分類が必要な攻撃の軽減には使用できません。

FPM はステートレスなので、ダイナミックにポートをネゴシエートするプロトコルで使用されているポート番号は追跡できません。そのため、FPM を使用する場合は、ポート番号を明示的に指定する必要があります。

FPM は、IP フラグメンテーションまたは TCP フローの再アセンブリを実行できません。

FPM は、IPv4 ユニキャスト パケットのみを検査します。

FPM は、IP オプションを使用してパケットを分類できません。

FPM はマルチキャスト パケット インスペクションをサポートしません。

FPM はトンネルおよび MPLS インターフェイスでサポートされません。

FPM エンジンでは非初期フラグメントがマッチングされません。

マッチング開始構造体では、オフセットに定数のみを使用できます。

FPM は複数のパケットにわたるマッチングを実行できません。

コントロール プレーンに対する FPM ポリシーのマッピングはサポートされません。

Flexible Packet Matching の概要

「Flexible Packet Matching 機能の概要」

Flexible Packet Matching 機能の概要

FPM を使用すると、新しいウイルスや攻撃をただちに検出してブロックできる独自のフィルタリング ポリシーを作成できます。

フィルタリング ポリシーは次の作業で定義されます。

PHDF をロードします(プロトコル ヘッダー フィールド マッチングの場合)

クラス マップを定義し、プロトコル スタック チェーン(トラフィック クラス)を定義します

サービス ポリシー(トラフィック ポリシー)を定義します

サービス ポリシーをインターフェイスに適用します

プロトコル ヘッダー記述ファイル

プロトコル ヘッダーは、PHDF という個別のファイルで定義されます。PHDF 内に定義されているフィールド名は、パケット フィルタの定義に使用されます。PHDF は、XML の柔軟性を利用して、ほぼすべてのプロトコル ヘッダーを記述できるファイルです。PHDF の重要なコンポーネントは、バージョン、XML ファイル スキーマの場所、およびプロトコル フィールド定義です。プロトコル フィールド定義では、プロトコル ヘッダーの適切なフィールドに名前を付け、フィールドを説明するコメントを考慮し、ヘッダーのプロトコル ヘッダー フィールドの場所を提供し(オフセットはプロトコル ヘッダーの開始に相対的です)、フィールドの長さを提供します。バイト単位またはビット単位を指定できます。


) ヘッダーの合計の長さは、各 PHDF の末尾で指定する必要があります。



) 冗長 sup PHDF ファイルが FPM ポリシーで使用される場合、ファイルはスタンバイ sup の対応するディスク上にも存在する必要があります。ファイルが使用できない場合、FPM ポリシーはスイッチオーバー後に動作しません。


既存または専用のプロトコルの場合、XML を介して独自のカスタム PHDF を作成できます。ただし、 load protocol コマンドを介して、ip.phdf、ether.phdf、tcp.phdf、および udp.phdf の標準 PHDF もルータに読み込むことができます。


) PHDF は XML を介して定義するため、実行コンフィギュレーションでは表示されません。ただし、show protocol phdf コマンドを使用して、読み込まれた PHDF を確認できます。


標準 PHDF は、次の URL の Cisco.com で入手できます。
http://www.cisco.com/cgi-bin/tablebuild.pl/fpm

フィルタ記述

フィルタ記述は、( match field コマンドを使用して)PHDF に定義するヘッダー フィールドを含むことができるトラフィック クラスの定義です。PHDF を読み込まない場合、トラフィック クラスは、( match start コマンドを使用して)データグラム ヘッダーの開始(レイヤ 2)またはネットワーク ヘッダーの開始(レイヤ 3)を介して定義できます。PHDF がルータに読み込まれた場合、クラスの指定は、パケット内のプロトコル ヘッダーのリストから始まります。

また、フィルタ定義にはポリシー マップも含まれます。つまり、クラス マップを定義した後は、一致をアクションにバインドするためにポリシー マップが必要です。ポリシー マップは、順序が指定されたクラスと関連するアクション(ICMP unreachable のドロップ、ログ、送信など)のセットです。

FPM のクラス マップとポリシー マップの設定方法については、 「Flexible Packet Matching のトラフィック クラスとトラフィック ポリシーの設定方法」 を参照してください。

Flexible Packet Matching のトラフィック クラスとトラフィック ポリシーの設定方法

ここでは、ネットワーク内で FPM トラフィック クラスとトラフィック ポリシーを設定するときに従う必要がある手順について説明します。

「Flexible Packet Matching のトラフィック クラスの作成」

「Flexible Packet Matching のトラフィック ポリシーの作成」

Flexible Packet Matching のトラフィック クラスの作成

FPM トラフィック クラスを作成するには、次の作業を実行します。つまり、適切に定義されたポリシーと併用すると、ネットワークの攻撃を軽減できる、ステートレス パケット分類基準を作成します。


) PHDF プロトコル フィールドがアクセス コントロール クラスマップで参照されない場合、FPM が適切に動作するには、スタック クラスマップが必要です。


手順の概要

1. enable

2. configure terminal

3. load protocol location : filename

4. class-map [ type {s tack | access-control }] class-map-name [ match-all | match-any ]

5. description character-string

6. match field protocol protocol-field { eq [ mask ] | neq [ mask ] | gt | lt | range range | regex string } value [ next next-protocol ]

7. match start { l2-start | l3-start } offset number size number
{
eq | neq | gt | lt | range range | regex string } value [ value2 ]

8. exit

9. show class-map [ type { stack | access-control } ] [ class-map-name ]

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

必要に応じてパスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

load protocol location:filename

 

Router(config)# load protocol disk2:udp.phdf

(任意)PHDF をルータにロードします。

指定する場所は、ルータのローカルにする必要があります。

コマンドは発行できません。

コマンドを介して)手動でコピーする必要があります。

ステップ 4

class-map [type { stack | access-control }] class-map-name [match-all | match-any]

 

Router(config)# class-map type access-control slammer match-all

指定したクラスとパケットのマッチングに使用されるクラス マップを作成し、クラスマップ コンフィギュレーション モードを開始します。

type stack FPM で、確認が必要な正しいプロトコル スタックを決定できます。

type access-control 該当するプロトコル スタックを検索する正確なパターンを決定します。

class-map-name 最大 40 文字の英字を指定できます。

match-all または match-any が指定されない場合、トラフィック クラスの一部として分類されるには、トラフィックはすべての一致基準に適合する必要があります。

ステップ 5

description character-string

 

Router(config-cmap)# description “match on slammer packets”

(任意)説明をクラス マップに追加します。

ステップ 6

match field protocol protocol-field
{eq [mask] | neq [mask] | gt | lt | range range | regex string} value [next next-protocol]

 

Router(config-cmap)# match field udp dest-port eq 0x59A

(任意)PHDF に定義されているフィールドに基づいて、クラス マップの一致基準を設定します。

ステップ 7

match start {l2-start | l3-start} offset number size number {eq | neq | gt | lt | range range | regex string} value [value2]

 

Router(config-cmap)# match start l3-start offset 224 size 4 eq 0x4011010

(任意)データグラム ヘッダー(レイヤ 2)またはネットワーク ヘッダー(レイヤ 3)に基づいて、クラス マップの一致基準を設定します。

ステップ 8

exit

 

Router(config-cmap)# exit

 

Router(config)# exit

クラス マップ コンフィギュレーション モードおよびグローバル コンフィギュレーション モードを終了します。

ステップ 9

show class-map [type { stack | access-control }] [ class-map-name ]

 

Router# show class-map type access-control slammer

(任意)設定されたすべての FPM クラス マップを表示します。

トラブルシューティングのヒント

すべての FPM イベントを追跡するには、 debug fpm event コマンドを発行します。

次に、 debug fpm event コマンドの出力例を示します。

*Jun 21 09:22:21.607: policy-classification-inline(): matches class: class-default *Jun 21 09:22:21.607: packet-access-control(): policy-map: fpm-policy, dir: input, match. retval: 0x0, ip-flags: 0x80000000

次の作業

ネットワークに 1 つ以上のクラス マップを定義した後は、次の作業 「Flexible Packet Matching のトラフィック ポリシーの作成」 に示すように、トラフィック ポリシーを作成し、そのポリシーをインターフェイスに適用する必要があります。

Flexible Packet Matching のトラフィック ポリシーの作成

FPM トラフィック ポリシーを作成し、そのポリシーを指定したインターフェイスに適用するには、次の作業を実行します。

手順の概要

1. enable

2. configure terminal

3. policy-map [ type access-control ] policy-map-name

4. description character-string

5. class class-name

6. drop

7. service-policy policy-map-name

8. exit

9. interface type name

10. service-policy [ type access-control ] { input | output } policy-map-name

11. exit

12. show policy-map interface [ type access-control ] interface-name [ input | output ]

手順の詳細

コマンドまたはアクション
目的

ステップ 1

enable

 

Router> enable

特権 EXEC モードをイネーブルにします。

必要に応じてパスワードを入力します。

ステップ 2

configure terminal

 

Router# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

policy-map [ type access-control ] policy-map-name

 

Router(config)# policy-map type access-control fpm-udp-policy

1 つ以上のインターフェイスに対応付けることができるポリシー マップを作成または修正し、サービス ポリシーを指定し、ポリシー マップ コンフィギュレーション モードを開始します。

ステップ 4

description character-string

 

Router(config-pmap)# description “policy for UDP based attacks”

(任意)説明をポリシー マップに追加します。

ステップ 5

class class-name

 

Router(config-pmap)# class slammer

定義済みのトラフィック クラスの名前を指定します。この名前は、トラフィックをトラフィック ポリシーに分類するために使用する class-map コマンドを使用して設定されています。

ステップ 6

drop

 

Router(config-pmap)# drop

(任意) トラフィック クラスを設定して、特定のクラスに属するパケットを廃棄します。

このコマンドを発行する場合、次の制約事項に注意してください。

パケットの廃棄は、トラフィック クラスで設定できる唯一のアクションです。

トラフィック クラスを drop コマンドで設定する場合、 service policy コマンドを使用してその特定のトラフィック クラスの(入れ子にされた)「子」ポリシーを設定できません。

パケットの廃棄は、 class class-default コマンドを介して指定されたデフォルト クラスには設定できません。

ステップ 7

service-policy policy-map-name

 

Router(config-pmap-c)# service policy fpm-udp-policy

階層的なサービス ポリシーを作成します。

ステップ 8

exit

 

Router(config-pmap-c)# exit

 

Router(config-pmap)# exit

ポリシー マップ クラス コンフィギュレーション モードおよびポリシー マップ コンフィギュレーション モードを終了します。

ステップ 9

interface type number

 

Router(config)# interface gigabitEthernet 0/1/0

インターフェイス タイプを設定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 10

service-policy [ type access-control ] { input | output } policy-map-name

 

Router(config-if)# service-policy type access-control input fpm-policy

インターフェイスの入力方向または出力方向に対応付けるトラフィック ポリシーの種類と名前を指定します。

ステップ 11

exit

 

Router(config-if)# exit

 

Router(config)# exit

インターフェイス コンフィギュレーション モードおよびグローバル コンフィギュレーション モードを終了します。

ステップ 12

show policy-map interface [ type access-control ] interface-name [ input | output ]

 

Router# show policy-map interface type access-control interface gigabit 0/1

(任意)FPM コンフィギュレーションを確認します。

FPM コンフィギュレーションの設定例

ここでは、次の設定例を示します。

「ASR プラットフォームでの FPM の設定と確認:例」

ASR プラットフォームでの FPM の設定と確認:例

次に、ASR プラットフォームで FPM を設定する例を示します。

load protocol bootflash:ip.phdf
load protocol bootflash:tcp.phdf
class-map type stack match-all ip_tcp
match field IP protocol eq 6 next TCP
 
class-map type access-control match-all test_class
match field TCP dest-port gt 10
match start l3-start offset 40 size 32 regex "ABCD"
 
policy-map type access-control child
class test_class
drop
 
policy-map type access-control parent
class ip_tcp
service-policy child
 
interface GigabitEthernet0/3/0
ip address 10.1.1.1 255.0.0.0
service-policy type access-control input parent
 

次の出力例では、すべての TCP パケットがクラス マップ「ip_tcp」以下に表示され、特定のパターンに一致するすべてのパケットはクラス マップ「test_class」以下に表示されます。特定のパターンがない TCP パケットは子ポリシー「class-default」以下に表示され、すべての非 TCP パケットは、親ポリシー「class-default」以下に表示されます(この例ではカウンタは 0 です)。

Router# show policy-map type access-control interface GigabitEthernet0/3/0
 
GigabitEthernet0/3/0
Service-policy access-control input: parent
 
Class-map: ip_tcp (match-all)
2024995578 packets, 170099628552 bytes
5 minute offered rate 775915000 bps
Match: field IP version eq 4
Match: field IP ihl eq 5
Match: field IP protocol eq 6 next TCP
 
Service-policy access-control : child
 
Class-map: test_class (match-all)
1598134279 packets, 134243279436 bytes
5 minute offered rate 771012000 bps, drop rate 771012000 bps
Match: field TCP dest-port gt 10
Match: start l3-start offset 40 size 32 regex "ABCD"
drop
 
Class-map: class-default (match-any)
426861294 packets, 35856348696 bytes
5 minute offered rate 4846000 bps, drop rate 0 bps
Match: any
 
Class-map: class-default (match-any)
0 packets, 0 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any
Router#

その他の関連資料

ここでは、Flexible Packet Matching の関連資料を紹介します。

関連マニュアル

内容
参照先

QoS コマンドの詳細

『Cisco IOS Quality of Service Solutions Command Reference』

このマニュアルに記載されているコマンドに関する情報

『Cisco IOS Master Command List, All Releases』

標準

標準
タイトル

なし

--

MIB

MIB
MIB リンク

なし

選択したプラットフォーム、Cisco IOS XE ソフトウェア リリース、およびフィーチャ セットの MIB の場所を検索しダウンロードするには、次の URL にある Cisco MIB Locator を使用します。

http://www.cisco.com/go/mibs

RFC

RFC
タイトル

なし

--

シスコのテクニカル サポート

説明
リンク

右の URL にアクセスして、シスコのテクニカル サポートを最大限に活用してください。

以下を含むさまざまな作業にこの Web サイトが役立ちます。

テクニカル サポートを受ける

ソフトウェアをダウンロードする

セキュリティの脆弱性を報告する、またはシスコ製品のセキュリティ問題に対する支援を受ける

ツールおよびリソースへアクセスする

Product Alert の受信登録

Field Notice の受信登録

Bug Toolkit を使用した既知の問題の検索

Networking Professionals(NetPro)コミュニティで、技術関連のディスカッションに参加する

トレーニング リソースへアクセスする

TAC Case Collection ツールを使用して、ハードウェアや設定、パフォーマンスに関する一般的な問題をインタラクティブに特定および解決する

この Web サイト上のツールにアクセスする際は、Cisco.com のログイン ID およびパスワードが必要です。

http://www.cisco.com/en/US/support/index.html

Flexible Packet Matching に関する機能情報

表 1 に、この機能のリリース履歴を示します。

プラットフォーム サポートとソフトウェア イメージ サポートに関する情報を入手するには、Cisco Feature Navigator を使用します。Cisco Feature Navigator を使用すると、特定のソフトウェア リリース、フィーチャ セット、またはプラットフォームをサポートする Cisco IOS XE のソフトウェア イメージを判別できます。Cisco Feature Navigator には、 http://www.cisco.com/go/cfn からアクセスします。Cisco.com のアカウントは必要ありません。


表 1 に、特定の Cisco IOS XE ソフトウェア リリース群で特定の機能をサポートする Cisco IOS XE ソフトウェア リリースだけを示します。特に明記されていない限り、Cisco IOS XE ソフトウェア リリース群の後続のリリースでもこの機能をサポートします。


 

表 1 Flexible Packet Matching に関する機能情報

機能名
リリース
機能情報

Flexible Packet Matching

Cisco IOS XE
Release 2.2

Copyright © 2006-2011, シスコシステムズ合同会社.
All rights reserved.