セキュリティ : Cisco ASA 5500-X シリーズ次世代型ファイアウォール

ASA 8.2.X TCP 状態バイパス機能の設定例

2010 年 11 月 10 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2010 年 5 月 19 日) | フィードバック

概要

このドキュメントでは、TCP 状態バイパス機能を設定する方法について説明しています。この機能によって、独立した Cisco ASA 5500 シリーズ適応型セキュリティ アプライアンス経由の着発信フローが許可されます。



前提条件

ライセンス要件

Cisco ASA 5500 シリーズ適応型セキュリティ アプライアンスには少なくとも Base ライセンスが必要です。



使用するコンポーネント

このドキュメントの情報は、Cisco Adaptive Security Appliance(ASA; 適応型セキュリティ アプライアンス)バージョン 8.2(1) 以降に基づいています。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。対象のネットワークが実稼働中である場合には、どのような作業についても、その潜在的な影響について確実に理解しておく必要があります。



表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。



TCP 状態バイパス

デフォルトで、Cisco Adaptive Security Appliance(ASA; 適応型セキュリティ アプライアンス)を通過するすべてのトラフィックは、アダプティブ セキュリティ アルゴリズムを使用して検査され、セキュリティ ポリシーに基づいて通過を許可されるか廃棄されます。ファイアウォールのパフォーマンスを最大限にするために、ASA は、各パケットの状態をチェック(新しい接続なのか、確立済みの接続なのかなど)し、パケットをセッション管理パス(新しい接続 SYN パケット)、高速パス(確立済みの接続)、またはコントロール プレーン パス(拡張インスペクション)のいずれかに割り当てます。

高速パス内の既存の接続に一致する TCP パケットは、セキュリティ ポリシーのすべての側面を再チェックしなくても適応型セキュリティ アプライアンスを通過できます。この機能によってパフォーマンスが最大化されます。ただし、高速パス内でセッションを確立するために使う方式(SYN パケットを使用)と高速パス内で発生するチェック(TCP シーケンス番号など)は、非対称ルーティング ソリューションの妨げになる可能性があります。非対称ルーティング ソリューションでは、1 つの接続の発信と着信のフローはどちらも同一の ASA を通過する必要があります。

たとえば、新しい接続が ASA 1 に到達するとします。SYN パケットはセッション管理パスを通過し、接続のエントリが高速パス テーブルに追加されます。この接続の後に続くパケットが ASA 1 を通る場合、パケットは高速パスのエントリと一致し、そのまま通過します。後に続くパケットが ASA 2 に送信される場合、そこにセッション管理パスを通った SYN パケットがなかったとすると、その接続用に高速パスのエントリが存在しないので、パケットは廃棄されます。

上流のルータに非対称ルーティングを設定していて、トラフィックが 2 つの ASA 間で交互に発生する場合、特定のトラフィックに対して TCP 状態バイパスを設定できます。TCP 状態バイパスは、高速パスでセッションが確立される方法を変更し、高速パスのチェックをディセーブルにします。この機能は、UDP 接続を取り扱うのと同様に TCP トラフィックを取り扱います。指定されたネットワークに一致する非 SYN パケットが ASA に入り、高速パス エントリが存在しないときに、そのパケットは高速パスでの接続を確立するためにセッション管理パスを通過します。高速パス内に入ると、トラフィックは高速パス チェックをバイパスします。

次の図は、非対称ルーティングの例であり、ここでは、発信トラフィックが着信トラフィックとは異なる ASA を通過しています。

asa-dynamic-pat-01.gif

注:TCP 状態バイパス機能は、Cisco ASA 5500 シリーズ適応型セキュリティ アプライアンスではデフォルトでディセーブルになっています。



サポート情報

このセクションでは、TCP 状態バイパス機能のサポート情報を提供しています。

  • コンテキスト モード:単一および複数のコンテキスト モードでサポートされます。

  • ファイアウォール モード:ルーテッド モードと透過モードでサポートされます。

  • フェールオーバー:フェールオーバーをサポートします。

次の機能は、TCP 状態バイパスを使用するときにはサポートされません。

  • アプリケーション検査:アプリケーション検査は、着信と発信の両方のトラフィックが同一の ASA を通過することが必要なので、アプリケーション検査は TCP 状態バイパスとともにはサポートされません。

  • AAA 認証済みセッション:ユーザが 1 つの ASA を使用して認証を行うと、他の ASA 経由で戻されるトラフィックは、ユーザがその ASA を使用して認証しなかったため、拒否されます。

  • TCP インターセプト、最大初期接続制限、TCP シーケンス番号ランダム化:ASA は接続の状態を追跡していないので、これらの機能は適用されません。

  • TCP のノーマライズ:TCP ノーマライザはディセーブルになっています。

  • SSM および SSC 機能:TCP 状態バイパスと、IPS や CSC などの SSM または SSC 上で動作するアプリケーションは、使用できません。

NAT ガイドライン:変換セッションはそれぞれの ASA 用に独立して確立されるので、TCP 状態バイパス トラフィック用に両方の ASA にスタティック NAT を必ず設定するようにします。ダイナミック NAT を使用する場合、ASA 1 のセッション用に選択されるアドレスは、ASA 2 のセッション用に選択されるアドレスとは異なります。



設定

このセクションでは、Cisco ASA 5500 Series Adaptive Security Appliance(ASA: 適応型セキュリティ アプライアンス)の TCP 状態バイパス機能の設定方法について説明します。



TCP 状態バイパス機能の設定

次のステップを実行して、Cisco ASA 5500 シリーズ適応型セキュリティ アプライアンスに TCP 状態バイパス機能を設定します。

  1. class-map class_map_name コマンドを使用してクラス マップを作成します。クラス マップは、ステートフル ファイアウォール インスペクションをディセーブルにするトラフィックを特定するために使われます。この例で使用されるクラス マップは bypass_traffic です。

    ASA(config)#class-map bypass_traffic
    
  2. match parameter コマンドを使用して、クラス マップ内で対象のトラフィックを指定します。モジュラ ポリシー フレームワークを使用するときは、class-map コンフィギュレーション モードで match access-list コマンドを使用してアクションを適用するトラフィックを特定するためのアクセス リストを使用します。次にこの設定の例を示します。

    ASA(config)#class-map tcp_bypass
    ASA(config-cmap)#match access-list tcp_bypass
    

    tcp_bypass は、この例で使用する access-list の名前です。対象のトラフィックを指定する詳細は、「レイヤ 3/4 クラス マップによるトラフィックの特定(英語)」を参照してください。

  3. policy-map name コマンドを使用して、ポリシー マップの追加や、すでに指定されているクラス マップでアクションを実行するために設定するポリシー マップの編集(すでに存在する場合)を行います。モジュラ ポリシー フレームワークを使用するときには、グローバル コンフィギュレーション モードで(type キーワードを指定せずに)policy-map コマンドを使用して、レイヤ 3/4 クラス マップで特定したトラフィックにアクションを割り当てます(class-map または class-map type management コマンド)。次の例では、ポリシー マップは tcp_bypass_policy です。

    ASA(config-cmap)#policy-map tcp_bypass_policy
    
  4. policy-map コンフィギュレーション モードで class コマンドを使用して、クラス マップ トラフィックにアクションを割り当てられるポリシー マップ(tcp_bypass_policy)に、すでに作成したクラス マップ(bypass_traffic)を割り当てます。次の例では、クラス マップは bypass_traffic です。

    ASA(config-cmap)#policy-map tcp_bypass_policy
    ASA(config-pmap)#class bypass_traffic
    
  5. クラス コンフィギュレーション モードで set connection advanced-options tcp-state-bypass コマンドを使用して、TCP 状態バイパス機能をイネーブルにします。このコマンドはバージョン 8.2(1) から導入されました。クラス設定モードは、次の例に示すように policy-map コンフィギュレーション モードからアクセスできます。

    ASA(config-cmap)#policy-map tcp_bypass_policy
    ASA(config-pmap)#class bypass_traffic
    ASA(config-pmap-c)#set connection advanced-options tcp-state-bypass
    
  6. グローバル コンフィギュレーション モードで service-policy policymap_name [ global | interface intf ] コマンドを使用して、ポリシー マップをすべてのインターフェイスでグローバルに、または対象のインターフェイスに対してアクティブ化します。サービス ポリシーをディセーブルにするには、このコマンドの no 形式を使用します。service-policy コマンドを使用して、1 つのインターフェイスに一連のポリシーをイネーブルにします。global はすべてのインターフェイスにポリシー マップを適用し、interface は 1 つのインターフェイスにポリシーを適用します。許可されるグローバル ポリシーは 1 つだけです。インターフェイスでは、そのインターフェイスへサービス ポリシーを適用することで、グローバル ポリシーを上書きできます。各インターフェイスに適用できるポリシー マップは 1 つだけです。

    ASA(config-pmap-c)#service-policy tcp_bypass_policy outside
    

次に示すのは、TCP 状態バイパスのサンプル設定です。


!--- パフォーマンスを向上させるため、インスペクションをバイパスする必要のある
!--- TCP トラフィックを指定するアクセス リストを設定します。

ASA(config)#access-list tcp_bypass extended permit tcp 10.1.1.0 255.255.255.224 any


!--- クラス マップを設定し、対象のトラフィックを一致させるクラス マップの
!--- 一致パラメータを設定します。

ASA(config)#class-map tcp_bypass
ASA(config-cmap)#description "TCP traffic that bypasses stateful firewall"
ASA(config-cmap)#match access-list tcp_bypass


!--- ポリシー マップを設定し、クラス マップに対してこのポリシー マップ内に
!--- クラス マップを指定します。

ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-pmap)#class tcp_bypass

!--- set connection advanced-options tcp-state-bypass コマンドを使用して 
!--- TCP 状態バイパス機能をイネーブルにします。

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

!--- service-policy policymap_name [ global |interface intf ]
!--- コマンドをグローバル コンフィギュレーション モードで使用して、ポリシー マップをすべてのインターフェイスで
!--- グローバルに、または対象の 1 つのインターフェイスに対してアクティブ化します。

ASA(config-pmap-c)#service-policy tcp_bypass_policy outside

ASA(config-pmap-c)#static (inside,outside) 192.168.1.224 10.1.1.0 netmask 
255.255.255.224


確認

show conn コマンドは、アクティブな TCP と UDP の接続数を表示し、さまざまなタイプの接続についての情報を提供します。指定された接続タイプの接続状態を表示するには、特権 EXEC モードで show conn コマンドを使用します。このコマンドは IPv4 と IPv6 のアドレスをサポートします。TCP state bypass を使用する接続の出力表示は、フラグ b を含んでいます。



トラブルシューティング

エラー メッセージ

ASA は、TCP 状態バイパス機能がイネーブルになった後でも次のエラー メッセージを表示します。

%PIX|ASA-4-313004:Denied ICMP type=icmp_type, from source_address oninterface 
interface_name to dest_address:no matching session

通常は有効なエコー要求がセキュリティ アプライアンス経由でまだ渡されていない ICMP エコー応答であったり、セキュリティ アプライアンスですでに確立されている TCP、UDP、または ICMP セッションに関係していない ICMP エラー メッセージであったりするステートフルな ICMP 機能によってセキュリティ チェックが追加されるため、ICMP パケットはセキュリティ アプライアンスによって廃棄されました。

TCP 状態バイパスがイネーブルになっている場合でも ASA はこのログを表示します。その理由は、この機能をディセーブルにする(つまり、接続テーブルでタイプ 3 用の ICMP 戻りエントリをチェックする)ことが不可能であるためです。ただし、TCP 状態バイパス機能は正しく動作します。

次のコマンドを使用すると、これらのメッセージが表示されるのを防止できます。

hostname(config)#no logging message 313004



関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 111986