Catalyst 6500 シリーズ スイッチ/Cisco 7600 シ リーズ ルータ Firewall Services Module コンフィ ギュレーション ガイド(CLI を使用)
拡張接続機能の設定
拡張接続機能の設定
発行日;2012/02/02 | 英語版ドキュメント(2010/04/08 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 13MB) | フィードバック

目次

拡張接続機能の設定

接続制限とタイムアウトの設定

PISA 統合でのアプリケーション タイプの許可または拒否

PISA 統合の概要

PISA 統合の注意事項と制限事項

GRE によるタギング

フェールオーバー サポート

PISA トラフィックを拒否するように FWSM を設定

PISA と FWSM の統合用のスイッチの設定

PISA の制限事項

より長いパケット長に対応するためのスイッチ上の MTU の変更

PISA での分類の設定

PISA でのタギングの設定

PISA 統合に対応したスイッチ設定の例

PISA 接続の監視

廃棄された接続に関する Syslog メッセージ

FWSM での PISA 接続の表示

TCP ステート バイパスの設定

TCP ステート バイパスの概要

別々の を通過する発信フローと着信フローの許可

サポートされていない機能

NAT との互換性

接続タイムアウト

TCP ステート バイパスのイネーブル化

TCP 正規化のディセーブル化

IP スプーフィングの回避

フラグメント サイズの設定

不正な接続のブロック

接続制限とタイムアウトの設定

ここでは、TCP および UDP の最大接続数、最大接続レート、接続タイムアウトを設定し、TCP シーケンスのランダム化をディセーブルにする方法について説明します。

TCP 接続ごとに ISN を 2 つずつ使用します。1 つはクライアントが作成し、もう 1 つはサーバが作成します。FWSM は、発信と着信の両方向で通過する TCP SYN の ISN をランダム化します。

保護されたホストの ISN をランダム化すると、攻撃者が新しい接続用の次の ISN を予測して新しいセッションをハイジャックする可能性を排除できます。

TCP Initial Sequence Number ランダム化は、必要に応じてディセーブルにすることができます。次に例を示します。

別のインライン ファイアウォールでも Initial Sequence Number をランダム化している場合。このアクションの影響がトラフィックに及ばない場合でも、両方のファイアウォールでこのアクションを実行する必要はありません。

FWSM で eBGP マルチホップが使用されており、eBGP ピアで MD5 が使用されている場合。ランダム化によって MD5 チェックサムが分解されます。

FWSM で接続のシーケンス番号をランダム化しないようにする必要のある WAAS デバイスを使用している場合。


) TCP シーケンスのランダム化の実装方法によっては、Xlate バイパス(「Xlate バイパスの設定」を参照)がイネーブルになっていると、TCP シーケンスのランダム化をディセーブルにしても、データ接続ではなく、制御接続にしか反映されません。データ接続では、TCP シーケンスのランダム化が引き続き実行されます。

Network Address Translation(NAT; ネットワーク アドレス変換)設定で、最大接続数と TCP シーケンスのランダム化を設定することもできます。両方の方法を使用して、同じトラフィックに設定値を設定する場合、FWSM は低い方の制限を使用します。いずれかの方法によって TCP シーケンスのランダム化がディセーブルになっている場合、FWSM は TCP シーケンスのランダム化をディセーブルにします。

NAT でも初期接続制限を設定できます。これにより、Denial of Service(DoS; サービス拒絶)攻撃を回避するための TCP 代行受信が開始されます。接続制限、TCP シーケンスのランダム化、および初期接続制限を設定する場合は、「ネットワーク アドレス変換(NAT)の設定」を参照してください。


接続制限とタイムアウトを設定する手順は、次のとおりです。


ステップ 1 トラフィックを特定するには、 class-map コマンドを使用してクラス マップを追加します。詳細については、「トラフィックの識別(レイヤ 3/4 クラス マップ)」を参照してください。

たとえば、次のコマンドを使用してすべてのトラフィックを照合できます。

hostname(config)# class-map CONNS
hostname(config-cmap)# match any
 

特定のトラフィックを照合する場合は、次のようにアクセス リストを照合できます。

hostname(config)# access list CONNS extended permit ip any 10.1.1.1 255.255.255.255
hostname(config)# class-map CONNS
hostname(config-cmap)# match access-list CONNS
 

) 3.x では、set connection コマンドをアクセス リスト(match access-list)に使用した場合に、接続設定が Access Control Entry(ACE; アクセス制御エントリ)ごとに適用されていましたが、4.0 では、接続設定がアクセス リスト全体に適用されるようになりました。


ステップ 2 クラス マップ トラフィックで行うアクションを設定するポリシー マップを追加または編集するには、次のコマンドを入力します。

hostname(config)# policy-map name
hostname(config-pmap)# class class_map_name
hostname(config-pmap-c)#
 

class_map_nameステップ 1 で追加したクラス マップです。

次に例を示します。

hostname(config)# policy-map CONNS
hostname(config-pmap)# class CONNS
hostname(config-pmap-c)#
 

ステップ 3 最大接続制限、接続レート制限、または TCP シーケンスのランダム化をイネーブルにするかどうかを設定するには、次のコマンドを入力します。

hostname(config-pmap-c)# set connection {[conn-max n] [conn-rate-limit n] [random-sequence-number {enable | disable}]}
 

conn-max n 引数には、同時 TCP 接続または同時 UDP 接続(あるいはこの両方)の許容最大数を 0 ~ 65535 の範囲内で設定します。デフォルト値は 0 です。この場合は、接続数に制限はありません。

conn-rate-limit n 引数には、秒当たりの TCP 接続または UDP 接続(あるいはこの両方)の最大数を 0 ~ 65535 の範囲内で設定します。デフォルト値は 0 です。この場合は、接続レートに制限はありません。

random-sequence-number { enable | disable } キーワードでは、TCP シーケンス番号のランダム化をイネーブルまたはディセーブルにします。

1 行すべてにこのコマンドを(任意の順序で)入力することも、各属性を別のコマンドとして入力することもできます。FWSM は、実行コンフィギュレーションでこのコマンドを 1 行に結合します。

ステップ 4 TCP 初期接続(ハーフオープン)または TCP ハーフクローズ接続のタイムアウトを設定するには、次のコマンドを入力します。

hostname(config-pmap-c)# set connection timeout {[embryonic hh:mm:ss] [half-closed hh:mm:ss]}
 

embryonic hh : mm : ss キーワード には、TCP 初期(ハーフオープン)接続が閉じられるまでのタイムアウト期間を 0:0:1 ~ 0:4:15 の間で設定します。デフォルト値は 0:0:20 です。この値を 0 に設定することもできます。この場合、接続はタイムアウトしません。

half-closed hh : mm : ss キーワードには、アイドル タイムアウトを 0:0:1 ~ 0:4:15 の間で設定します。デフォルト値は 0:0:20 です。この値を 0 に設定することもできます。この場合、接続はタイムアウトしません。FWSM は、ハーフクローズ接続を切断する場合にリセットを送信しません。

1 行すべてにこのコマンドを(任意の順序で)入力することも、各属性を別のコマンドとして入力することもできます。実行コンフィギュレーションでは、このコマンドは 1 行に統合されています。

ステップ 5 すべてのプロトコルのアイドル接続のタイムアウトを設定するには、次のコマンドを入力します。

hostname(config-pmap-c)# set connection timeout idle hh:mm:ss
 

idle hh:mm:ss 引数には、確立されたプロトコル接続が閉じられるまでのアイドル時間を 0:5:0 ~ 1092:15:0 の間で設定します。デフォルト値は 0:60:0 です。この値を 0 に設定することもできます。この場合は、接続がタイムアウトになることがありません。


set connection timeout コマンドで tcp キーワードが idle キーワードに置換されましたが、tcp コマンド(TCP 接続限定)が設定に含まれている場合、このコマンドはまだ受け付けられます。idle コマンドと tcp コマンドが両方ともポリシーに含まれている場合は、TCP トラフィックが明示的に指定されているアクセス リストとクラス マップが一致している場合にかぎり、TCP トラフィックに関して tcp コマンドが優先されます。詳細については、『Catalyst 6500 Series Switch and Cisco 7600 Series Router Firewall Services Module Command Reference』の set connection timeout コマンドの説明を参照してください。


ステップ 6 1 つまたは複数のインターフェイス上でポリシー マップを実行するには、次のコマンドを入力します。

hostname(config)# service-policy policymap_name {global | interface interface_name}
 

policy_map_name は、ステップ 2 で設定したポリシー マップです。ポリシー マップをすべてのインターフェイス上のトラフィックに適用する場合は、 global キーワードを使用します。ポリシー マップを特定のインターフェイス上のトラフィックに適用する場合は、 interface interface_name オプションを使用します。 interface_name は、 nameif コマンドでインターフェイスに割り当てられた名前です。

許可されるのは 1 つのグローバル ポリシーだけです。サービス ポリシーをインターフェイスに適用すると、そのインターフェイス上のグローバル ポリシーが上書きされます。各インターフェイスに対し、ポリシー マップ 1 つを適用できます。


 

次の例では、10.1.1.1 へのトラフィックに対して TCP 接続と UDP 接続の最大数を 5000、秒当たりの最大接続数を 500、最長初期接続タイムアウトを 40 秒、ハーフクローズ タイムアウトを 20 分、アイドル タイムアウトを 2 時間に設定します。

hostname(config)# access-list CONNS permit ip any host 10.1.1.1
 
hostname(config)# class-map conns
hostname(config-cmap)# match access-list CONNS
 
hostname(config-cmap)# policy-map conns
hostname(config-pmap)# class conns
hostname(config-pmap-c)# set connection conn-max 5000 conn-rate-limit 500
hostname(config-pmap-c)# set connection timeout embryonic 0:0:40 half-closed 0:20:0
hostname(config-pmap-c)# set connection timeout idle 2:0:0
 
hostname(config-pmap-c)# service-policy conns interface outside
 

複数のパラメータを指定して set connection コマンドを入力することも、各パラメータを個別のコマンドとして入力することもできます。FWSM は、実行コンフィギュレーションでこれらのコマンドを 1 行に結合します。たとえば、クラス コンフィギュレーション モードで次の 2 つのコマンドを入力します。

hostname(config-pmap-c)# set connection timeout embryonic 0:0:40
hostname(config-pmap-c)# set connection timeout half-closed 0:20:0
 

この場合、 show running-config policy-map コマンドの出力に、2 つのコマンドの結果が 1 つの結合されたコマンドとして表示されます。

set connection timeout embryonic 0:0:40 half-closed 0:20:0
 

PISA 統合でのアプリケーション タイプの許可または拒否


) この機能は Cisco IOS Release 12.2(18)ZYA 以降に依存しており、Catalyst 6500 スイッチでだけ使用できます。


スイッチのスーパーバイザ上で Programmable Intelligent Services Accelerator(PISA; プログラマブル インテリジェント サービス アクセラレータ)を使用すると、ディープ パケット検査を実行して特定フローのアプリケーション タイプを迅速に判別できます。この判別は、標準ポートがトラフィックに使用されていない場合でも実行できます。FWSM では、PISA カードの高性能ディープ パケット検査を利用して、アプリケーション タイプに基づいてトラフィックを許可または拒否することができます。制御プレーン パスを通過する FWSM の検査機能とは異なり、PISA でタグ付けされたトラフィックは FWSM アクセラレーション パスを通過できます。FWSM と PISA の統合には、PISA が導入されたアップストリーム スイッチを複数設定しなくても、単一の FWSM にセキュリティ設定を統合できるという別の利点もあります。

クリティカル アプリケーション タイプ用に帯域幅を確保する場合は、特定タイプのアプリケーション トラフィックを拒否することができます。たとえば、peer-to-peer(P2P; ピアツーピア)アプリケーションが他のクリティカル アプリケーションに影響を与えている場合に、P2P アプリケーションの使用を拒否できます。

ここでは、次の内容について説明します。

「PISA 統合の概要」

「PISA トラフィックを拒否するように FWSM を設定」

「PISA と FWSM の統合用のスイッチの設定」

「PISA 接続の監視」

PISA 統合の概要

ここでは、PISA と FWSM との連携方法について説明します。内容は次のとおりです。

「PISA 統合の注意事項と制限事項」

「GRE によるタギング」

「フェールオーバー サポート」

PISA 統合の注意事項と制限事項

PISA 統合に適用される注意事項と制限事項は次のとおりです。

PISA と FWSM は同じスイッチ シャーシに配置できません。ただし、必要な場合は、FWSM のアップストリームとダウンストリームで複数の PISA を使用できます。

FWSM へのパケットにタグを付ける必要があるため(セクション「GRE によるタギング」を参照)、FWSM に送出されるトラフィックに関して PISA のパフォーマンスにわずかな影響があります。

FWSM のサービス ポリシーによって UDP パケットが拒否された場合に、対応するセッションがすぐに解除されません。代わりに、タイムアウトを設定し、その間に該当するセッションに到達したパケットを廃棄できます。

FWSM と PISA 間で使用される特殊な GRE キーをエンド ユーザ アプリケーションで利用できます。この場合、PISA は syslog メッセージを生成し、これらのパケットを廃棄します。

PISA では、アプリケーション タイプを判別するのに複数のパケットが必要となります。このため、PISA タギングが開始される前に、FWSM でセッションの確立が開始されます。PISA タギングが開始された時点で FWSM セキュリティ ポリシーが適用されるため、フローの拒否がポリシーに含まれている場合は、セッションを完了できません。

フラグメント化されたパケットの場合、PISA は最初のフラグメントにタグを付け、FWSM はそのパケットを組み立て直してから、最初のフラグメントに含まれているカプセルに基づいてそのパケットを処理します。

「PISA の制限事項」も参照してください。

GRE によるタギング

PISA は、特定のトラフィック フローで使用されているアプリケーションを判別すると、GRE を使用してすべてのパケットをカプセル化し、そのアプリケーション タイプを FWSM に報告するためのタグを挿入します。また、内部/元の IP ヘッダーとほとんど同じ外部 IP ヘッダー(レイヤ 4 プロトコルで GRE が示されている点が異なる)も追加されます。元のレイヤ 2 ヘッダーはそのまま維持されます。これにより、パケットが変更された場合でも、元のルーティング/スイッチング パスが保持されます。GRE カプセル化では、32 バイト(外部 IP ヘッダー用の 20 バイトと GRE ヘッダー用の 12 バイト)が別途追加されます。

FWSM は、パケットを受信し、情報に従って処理を実行したあと、そのパケットから GRE カプセル化を解除します。

トラフィックが存在する VLAN に対して、PISA カプセル化に基づいてトラフィックを拒否するように FWSM を設定した場合は、PISA ですべてのトラフィック(拒否対象として指定されていないトラフィックを含む)がカプセル化されます。

GRE カプセル化を実行すると、パケットのサイズが少し拡張されるため、「より長いパケット長に対応するためのスイッチ上の MTU の変更」に従って PISA と FWSM 間の MTU を大きくする必要があります。

GRE カプセル化では、FWSM に送出されるトラフィックに関して PISA のパフォーマンスにわずかな影響があります。

フェールオーバー サポート

PISA のフェールオーバーと FWSM のフェールオーバーの間に相互関係はありません。FWSM に対してステートフル フェールオーバーを実施している場合は、フェールオーバー間でセッション情報が維持されます。

PISA トラフィックを拒否するように FWSM を設定

PISA タギングを使用して拒否するトラフィックを特定する手順は、次のとおりです。


ステップ 1 アプリケーション タイプに基づいて拒否するトラフィックを特定するには、 class-map コマンドを使用してクラス マップを追加します。詳細については、「トラフィックの識別(レイヤ 3/4 クラス マップ)」を参照してください。

たとえば、次のようにアクセス リストを照合できます。

hostname(config)# access list BAD_APPS extended permit any 10.1.1.1 255.255.255.255
hostname(config)# class-map denied_apps
hostname(config-cmap)# match access-list BAD_APPS
 

ステップ 2 クラス マップ トラフィックで行うアクションを設定するポリシー マップを追加または編集するには、次のコマンドを入力します。

hostname(config)# policy-map name
hostname(config-pmap)# class class_map_name
hostname(config-pmap-c)#
 

class_map_nameステップ 1 で追加したクラス マップです。

次に例を示します。

hostname(config)# policy-map denied_apps_policy
hostname(config-pmap)# class denied_apps
hostname(config-pmap-c)#
 

ステップ 3 許可または拒否するアプリケーションを決定するには、次のコマンドを入力します。

hostname(config-pmap-c)# deny {all | protocol}
hostname(config-pmap-c)# permit protocol
 

protocol 引数はプロトコル名またはプロトコル番号になります。サポートされているプロトコル名を確認するには、 permit ? または deny ? コマンドを使用します。

permit 文と deny 文を結合すると、拒否するトラフィックを絞り込むことができます。1 つ以上の deny 文を入力する必要があります。末尾に暗黙拒否が配置されるアクセス リストとは異なり、PISA アクションでは末尾に暗黙許可が配置されます。

たとえば、Skype、eDonkey、および Yahoo を除くすべてのトラフィックを許可するには、次のコマンドを入力します。

hostname(config-pmap-c)# deny skype
hostname(config-pmap-c)# deny yahoo
hostname(config-pmap-c)# deny eDonkey
 

次に、Kazaa と eDonkey を除くすべてのトラフィックを拒否する例を示します。

hostname(config-pmap-c)# deny all
hostname(config-pmap-c)# permit kazaa
hostname(config-pmap-c)# permit eDonkey
 

permit コマンドと deny コマンドを含むクラス マップには、inspect コマンドを含めることができません。


ステップ 4 1 つまたは複数のインターフェイス上でポリシー マップを有効にするには、次のコマンドを入力します。

hostname(config)# service-policy policymap_name {global | interface interface_name}
 

global はポリシー マップをすべてのインターフェイスに適用し、 interface はポリシーを 1 つのインターフェイスに適用します。許可されるのは 1 つのグローバル ポリシーだけです。サービス ポリシーをインターフェイスに適用すると、そのインターフェイス上のグローバル ポリシーが上書きされます。各インターフェイスに対し、ポリシー マップ 1 つを適用できます。


 

次に、PISA 統合の設定例を示します。

hostname(config)# access-list BAD_APPS extended permit 10.1.1.0 255.255.255.0 10.2.1.0 255.255.255.0
 
hostname(config)# class-map denied_apps
hostname(config-cmap)# description "Apps to be blocked"
hostname(config-cmap)# match access-list BAD_APPS
 
hostname(config-cmap)# policy-map denied_apps_policy
hostname(config-pmap)# class denied_apps
hostname(config-pmap-c)# deny skype
hostname(config-pmap-c)# deny yahoo
hostname(config-pmap-c)# deny eDonkey
 
hostname(config-pmap-c)# service-policy denied_apps_policy inside
 

PISA と FWSM の統合用のスイッチの設定

ここでは、PISA と FWSM の統合用のスイッチを設定する手順について説明します。内容は次のとおりです。

「PISA の制限事項」

「より長いパケット長に対応するためのスイッチ上の MTU の変更」

「PISA での分類の設定」

「PISA でのタギングの設定」

「PISA 統合に対応したスイッチ設定の例」

PISA の制限事項

PISA に適用される制限事項は次のとおりです。

Network Based Application Recognition(NBAR)はレイヤ 3 EtherChannel 上で動作しません。レイヤ 2 EtherChannel がサポートされています。

PISA 上の RP では、プロトコル タギングがサポートされていません。このため、RP から FWSM へのパケットにはタグが付けられません。

NBAR 実装では、IPv6 がサポートされていません。このため、プロトコル検出とプロトコル タギングは IPv4 にしか適用されません。NBAR によって課せられたこの制限に加えて、基本的な PISA インフラストラクチャでも IPv6 パケットのアクセラレーションがサポートされていません。

現在、レイヤ 2 ポート(トランクなど)上で PISA アクセラレートされた VLAN 用の L2 PISA 実装では、アクセラレートされたレイヤ 2 ポートを通過する VLAN 用の Switch Virtual Interface(SVI; スイッチ仮想インターフェイス)が稼動状態にならない(管理停止状態になる)という警告が出されています。

複数 VLAN アクセス ポートはサポートされていません。

「PISA 統合の注意事項と制限事項」も参照してください。

より長いパケット長に対応するためのスイッチ上の MTU の変更

GRE カプセル化を実行する場合は、PISA と FWSM 間で使用される VLAN の MTU サイズを拡張する必要があります。GRE カプセル化では、32 バイト(外部 IP ヘッダー用の 20 バイトと GRE ヘッダー用の 12 バイト)が別途追加されます。

ルーテッド スイッチ ポートまたはレイヤ 3 インターフェイス(SVI)の MTU を変更するには、次のコマンドを入力します。

Router(config-if)# mtu mtu_size
 

SVI の場合、 mtu_size は 64 ~ 9216 バイトになります。ルーテッド スイッチ ポートの場合、 mtu_size は 1500 ~ 9216 バイトになります。デフォルトの MTU サイズは 1500 バイトです。

レイヤ 2 ポートのグローバル LAN ポート MTU サイズを設定するには、次のコマンドを入力します。

Router(config)# system jumbomtu mtu_size
 

mtu_size には、1500 ~ 9216 バイトを指定できます。デフォルトのサイズは 9216 バイトです。

PISA での分類の設定

レイヤ 2 スイッチ ポート(物理ポート上に設定されたアクセス、トランク、または EtherChannel)またはレイヤ 3 インターフェイス(SVI、ルーテッド ポート、またはサブインターフェイス)で分類をイネーブルにするには、次のコマンドをインターフェイス コンフィギュレーション モードで入力します。

Router(config-if)# ip nbar protocol-discovery
 

レイヤ 2 またはレイヤ 3 インターフェイスでプロトコル検出統計を表示するには、次のコマンドを入力します。

Router# show ip nbar protocol-discovery interface ifname
 

PISA でのタギングの設定

プロトコル検出をイネーブルにしたら、次に示された各コマンドを入力して出力パケット タギングをイネーブルにします。


) 分類とタギングは同一のポートでイネーブルにする必要があります。たとえば、アクセス ポートで分類をイネーブルにしてトランク ポートでタギングをイネーブルにすることはできません。


スイッチ ポート(アクセス ポート)またはレイヤ 3 インターフェイス(SVI、ルーテッド ポート、またはサブインターフェイス)でタギングをイネーブルにするには、次のコマンドをインターフェイス コンフィギュレーション モードで入力します。

Router(config-if)# ip nbar protocol-tagging
 

トランク ポートでタギングをイネーブルにするには、次のコマンドをインターフェイス コンフィギュレーション モードで入力します。

Router(config-if)# ip nbar protocol-tagging [vlan-list vlan-list]
 

vlan-list vlan-list 引数には、タグ付けする VLAN のリストを指定します。指定しないと、アクティブな VLAN がすべてタグ付けされます。

次の各コマンドは、PISA でのタギングの監視に役立ちます。

タギング設定情報を表示するには、次のコマンドを入力します。

Router# show ip nbar protocol-tagging {key | interface ifname | summary}
 

key キーワードは、タギングに使用される GRE キーを示します。

interface ifname 引数は、インターフェイスでタギングがイネーブルになっているかどうかを示します。

summary キーワードは、タギングがイネーブルになっているすべてのインターフェイスを示します。

プロトコル名から ID へのマッピングを表示するには、次のコマンドを入力します。

Router# show ip nbar protocol-id [protocol_name]
 

protocol_name を入力すると、マッピングされた ID が表示されます。省略した場合は、プロトコル名と ID の完全なリストが表示されます。

PISA でタグ付けされたパケットの数を表示するには、次のコマンドを入力します。

Router# show platform pisa np tx counters
 

次に例を示します。

Router# show platform pisa np tx counters
 
TX Statistics(ME1)
------------------
Errors: 0
......
TX NBAR Protocol tagged pkt: 9869
 

PISA 統合に対応したスイッチ設定の例

例 20-1 レイヤ 3 モード(インターフェイスベース、ルーテッド ポート/SVI)

Router(config)# interface vlan 100
Router(config-if)# ip nbar protocol-discovery
! enables discovery
Router(config-if)# ip nbar protocol-tagging
! enables tagging
Router(config-if)# mtu 9216
! Allows packet sizes up to 9216 bytes without fragmenting
 

例 20-2 レイヤ 2 モード(インターフェイスベース、アップリンク ポートでのプロトコル検出)

Router(config)# interface gigabitethernet 6/1
Router(config-if)# ip nbar protocol-discovery
! Classification
Router(config-if)# ip nbar protocol-tagging vlan-list 100
! Tagging
Router(config-if)# mtu 9216
! Allow packet size up to 9216 bytes without fragmenting
Router(config)# system jumbomtu 9216
! Set global LAN port MTU to 9216 bytes
 

PISA 接続の監視

ここでは、次の内容について説明します。

「廃棄された接続に関する Syslog メッセージ」

「FWSM での PISA 接続の表示」

廃棄された接続に関する Syslog メッセージ

PISA 接続が拒否された時点で Syslog メッセージ 302014(TCP の場合)および 302016(UDP の場合)が表示されます。次に例を示します。

%FWSM-6-302014: Teardown TCP connection 144547133155839947 for inside:10.1.1.12/33407 to outside:209.165.201.10/21 duration 0:00:00 bytes 160 PISA denied protocol

FWSM での PISA 接続の表示

PISA からの接続を監視するには、 show conn コマンドを使用します。PISA でタグ付けされた接続が「p」フラグ付きの出力に一覧表示されます。次に、 show conn コマンドの出力例を示します。

hostname# show conn
2 in use, 3 most used
Network Processor 1 connections
TCP out 10.1.1.10:21 in 209.165.201.12:33406 idle 0:00:04 Bytes 1668 FLAGS - UOIp
Network Processor 2 connections
UDP out 10.1.1.255:137 in 10.1.1.11:137 idle 0:00:48 Bytes 288 FLAGS -
Multicast sessions:
Network Processor 1 connections
Network Processor 2 connections
IPv6 connections:
...
 

TCP ステート バイパスの設定

ここでは、TCP ステート バイパスを設定する手順について説明します。内容は次のとおりです。

「TCP ステート バイパスの概要」

「TCP ステート バイパスのイネーブル化」

TCP ステート バイパスの概要

ここでは、TCP ステート バイパスの使用方法について説明します。内容は次のとおりです。

「別々の FWSM を通過する発信フローと着信フローの許可」

「サポートされていない機能」

「NAT との互換性」

「接続タイムアウト」

別々の FWSM を通過する発信フローと着信フローの許可

デフォルトでは、FWSM を通過するすべてのトラフィックは Adaptive Security Algorithm(ASA; アダプティブ セキュリティ アルゴリズム)で検査され、セキュリティ ポリシーに基づいて通過が許可されるか、または廃棄されます。FWSM では、ファイアウォールの性能を最大限に活用するために、各パケットのステートをチェックし(新規の接続か確立済みの接続かを調べる)、セッション管理パス(新規の接続の SYN パケット)、アクセラレーション パス(確立済みの接続)、または制御プレーン パス(拡張検査)のいずれかに割り当てます。ステートフル ファイアウォールの詳細については、「ステートフル インスペクションの概要」を参照してください。

アクセラレーション パス内の既存の接続に一致した TCP パケットは、セキュリティ ポリシーのすべての面の再チェックを行わないで FWSM を通過できます。この機能により、性能が最大限に活用されます。ただし、SYN パケットを使用してアクセラレーション パスでセッションを確立する方法とアクセラレーション パスで実施されるチェック(TCP シーケンス番号など)は、非対称ルーティング ソリューションの障害となることがあります。接続の発信フローと着信フローはいずれも同じ FWSM を通過する必要があります。

1.たとえば、FWSM 1 に到達する新規の接続が確立されたとします。SYN パケットがセッション管理パスを通過し、この接続のエントリがアクセラレーション パス テーブルに追加されます。この接続の後続のパケットが FWSM 1 を通過する場合、これらのパケットはアクセラレーション パス テーブル内のエントリと照合され、一致した場合に通過できます。ただし、セッション管理パスを通過した SYN パケットが含まれていない FWSM 2 に後続のパケットが向かった場合、この接続のエントリがアクセラレーション パス テーブル内に存在しないため、これらのパケットは廃棄されます。図 20-1 に、発信トラフィックが着信トラフィックとは異なる FWSM を通過する非対称ルーティングの例を示します。

図 20-1 非対称ルーティング

 

アップストリーム ルータ上に非対称ルーティングが設定されており、トラフィックが 2 つの FWSM に交互に送出される場合は、特定のトラフィックに対して TCP ステート バイパスを設定できます。TCP ステート バイパスにより、アクセラレーション パスでのセッションの確立方法が変更され、アクセラレーション パス チェックがディセーブルになります。この機能では、UDP 接続の処理と同様の方法で TCP トラフィックが処理されます。指定されたネットワークと一致した非 SYN パケットが FWSM に入った時点でアクセラレーション パス エントリが存在しない場合、アクセラレーション パスで接続を確立するために、そのパケットはセッション管理パスを通過します。一度アクセラレーション パスに入ったトラフィックでは、アクセラレーション パス チェックが回避されます。

サポートされていない機能

TCP ステート バイパスを使用する場合にサポートされていない機能は、次のとおりです。

アプリケーション検査:アプリケーション検査は、着信トラフィックと発信トラフィックがいずれも同じ FWSM を通過する必要があるため、TCP ステート バイパスでサポートされていません。

AAA 認証セッション:ユーザが一方の FWSM でだけ認証を行い、もう一方の FWSM で認証を行っていないと、もう一方の FWSM を経由して戻されたトラフィックが拒否されます。

NAT との互換性

変換セッションは FWSM ごとに別々に確立されるため、TCP ステート バイパス トラフィックに対して両方の FWSM で静的 NAT を設定する必要があります。動的 NAT を使用すると、セッションに対して選択されるアドレスが FWSM 1 と FWSM 2 で異なります。

接続タイムアウト

特定の接続上でトラフィックが 2 分間存在しないと、その接続がタイムアウトになります。 set connection timeout tcp コマンドを使用して、このデフォルト値を無効にすることができます。通常の TCP 接続は、デフォルトで 60 分後にタイムアウトになります。

TCP ステート バイパスのイネーブル化

TCP ステート バイパスをイネーブルにする手順は、次のとおりです。


ステップ 1 ステートフル ファイアウォール検査をディセーブルにするトラフィックを特定するには、 class-map コマンドを使用してクラス マップを追加します。詳細については、「トラフィックの識別(レイヤ 3/4 クラス マップ)」を参照してください。

たとえば、次のようにアクセス リストを照合できます。

hostname(config)# access list bypass extended permit tcp any 10.1.1.1 255.255.255.255
hostname(config)# class-map bypass_traffic
hostname(config-cmap)# match access-list bypass
 

ステップ 2 クラス マップ トラフィックで行うアクションを設定するポリシー マップを追加または編集するには、次のコマンドを入力します。

hostname(config)# policy-map name
hostname(config-pmap)# class class_map_name
hostname(config-pmap-c)#
 

class_map_nameステップ 1 で追加したクラス マップです。

次に例を示します。

hostname(config)# policy-map tcp_bypass_policy
hostname(config-pmap)# class bypass_traffic
hostname(config-pmap-c)#
 

ステップ 3 TCP ステート バイパスをイネーブルにするには、次のコマンドを入力します。

hostname(config-pmap-c)# set connection advanced-options tcp-state-bypass
 

ステップ 4 1 つまたは複数のインターフェイス上でポリシー マップを有効にするには、次のコマンドを入力します。

hostname(config)# service-policy policymap_name {global | interface interface_name}
 

global はポリシー マップをすべてのインターフェイスに適用し、 interface はポリシーを 1 つのインターフェイスに適用します。許可されるのは 1 つのグローバル ポリシーだけです。サービス ポリシーをインターフェイスに適用すると、そのインターフェイス上のグローバル ポリシーが上書きされます。各インターフェイスに対し、ポリシー マップ 1 つを適用できます。


show conn コマンドを使用すると、TCP ステート バイパスを使用した接続の表示に「b」フラグが含まれます。



 

次に、TCP ステート バイパスの設定例を示します。

hostname(config)# access-list tcp_bypass extended permit tcp 10.1.1.0 255.255.255.0 10.2.1.0 255.255.255.0
 
hostname(config)# class-map tcp_bypass
hostname(config-cmap)# description "TCP traffic that bypasses stateful firewall"
hostname(config-cmap)# match access-list tcp_bypass
 
hostname(config-cmap)# policy-map tcp_bypass_policy
hostname(config-pmap)# class tcp_bypass
hostname(config-pmap-c)# set connection advanced-options tcp-state-bypass
 
hostname(config-pmap-c)# service-policy tcp_bypass_policy outside
 

TCP 正規化のディセーブル化

レイヤ 7 検査を必要とするパケットや管理トラフィックなどの制御プレーン パスを通過するトラフィックの場合、FWSM は TCP 接続のキューに挿入できる不連続パケットの最大数を 2 に設定します。ユーザはこの値を設定できません。PIX プラットフォームと ASA プラットフォームでサポートされている他の TCP 正規化機能は FWSM に対してイネーブルになっていません。FWSM に限定された TCP 正規化のサポートをディセーブルにするには、 no control-point tcp-normalizer コマンドを使用します。

IP スプーフィングの回避

Unicast Reverse Path Forwarding(uRPF; ユニキャスト RPF)をインターフェイス上でイネーブルにすることができます。uRPF は、すべてのパケットの送信元 IP アドレスが、ルーティング テーブル内の正しい送信元インターフェイスと一致するかどうかを確認して、IP スプーフィング(パケットが不正な送信元 IP アドレスを使用して正しい送信元を不明にすること)を防ぎます。

通常、パケットの送信先を決定する場合、FWSM は宛先アドレスだけを認識します。uRPF は送信元アドレスも認識するよう FWSM に指示します。そのため、この機能は Reverse Path Forwarding と呼ばれます。FWSM 経由で許可したい任意のトラフィックについては、FWSM ルーティング テーブルに送信元アドレスまで戻るルートを含める必要があります。詳細については、RFC2267 を参照してください。

外部トラフィックについては、たとえば、FWSM は uRPF 保護要件を満たすため、デフォルトのルートを使用できます。トラフィックが外部インターフェイスから入り、ルーティング テーブルがその送信元アドレスを知らない場合、FWSM はデフォルトのルートを使用して、外部インターフェイスを送信元インターフェイスとして正しく指定します。

トラフィックが、ルーティング テーブルにとって既知であるが、内部インターフェイスに対応付けられているアドレスから外部インターフェイスに入る場合、FWSM はパケットを廃棄します。同様に、トラフィックが未知の送信元アドレスから内部インターフェイスに入る場合、一致するルート(デフォルトのルート)が外部インターフェイスを示すので、FWSM はパケットを廃棄します。

ユニキャスト RPF は次のように実行されます。

Internet Control Message Protocol(ICMP; インターネット制御メッセージ プロトコル)パケットにはセッションがないため、各パケットが検証されます。

UDP および TCP にはセッションがあるため、初期パケットはリバース ルート検索を必要とします。セッション中に着信する以降のパケットは、セッションの一部として維持された既存のステートを使用して検証されます。非初期パケットは、初期パケットが使用する同一のインターフェイス上に着信するように検証されます。

 

uRPF をイネーブルにするには、次のコマンドを入力します。

hostname(config)# ip verify reverse-path interface interface_name

フラグメント サイズの設定

デフォルトでは、FWSM は、IP パケット当たりのフラグメントを 24 個まで許可し、リアセンブリを待機するフラグメントを 200 個まで許可します。定期的にパケットのフラグメント化を行うアプリケーション(NFS over UDP など)がある場合は、ネットワークでフラグメント化が必要となることがあります。ただし、トラフィックをフラグメント化するアプリケーションがない場合、FWSM 経由でフラグメントを許可しないことを推奨します。フラグメント化されたパケットは、DoS 攻撃としてしばしば使用されます。フラグメントを許可しないようにするには、次のコマンドを入力します。

hostname(config)# fragment chain 1 [interface_name]
 

特定のインターフェイスでフラグメント化を回避したい場合、インターフェイス名を入力します。デフォルトでは、このコマンドはすべてのインターフェイスに適用されます。

不正な接続のブロック

ホストがネットワークを攻撃しようとしていることがわかっている(たとえば、システム ログ メッセージに攻撃が表示されている)場合は、送信元 IP アドレスとその他の識別パラメータに基づいて接続をブロック(または排除)できます。排除を解除するまで新しい接続は実行されません。


) トラフィックをモニタする IPS がある場合、IPS は自動的に接続を排除します。


接続を手動で排除する手順は、次のとおりです。


ステップ 1 必要に応じて、次のコマンドを入力して接続の詳細を表示します。

hostname# show conn
 

FWSM に、次のような各接続の詳細を表示します。

TCP out 64.101.68.161:4300 in 10.86.194.60:23 idle 0:00:00 bytes 1297 flags UIO
 

ステップ 2 送信元 IP アドレスから接続を排除するには、次のコマンドを入力します。

hostname(config)# shun src_ip [dst_ip src_port dest_port [protocol]] [vlan vlan_id]
 

このコマンドは既存の接続を廃棄するだけでなく、後続の接続をブロックします。デフォルトでは、IP のプロトコルは 0 です。

マルチコンテキスト モードの場合は、このコマンドを admin コンテキストに入力できます。他のコンテキストでインターフェイスに割り当てられた VLAN ID を指定すると、他のコンテキストの接続を排除できます。

ステップ 3 排除を解除するには、次のコマンドを入力します。

hostname(config)# no shun src_ip [vlan vlan_id]