インスペクション エンジンは、ユーザのデータ パケット内に IP アドレッシング情報を埋め込むサービスや、ダイナミックに割り当てられるポート上でセカンダリ チャネルを開くサービスに必要です。これらのプロトコルでは、高速パスでパケットを渡すのではなく、ASA で詳細なパケット インスペクションを行う必要があります。そのため、インスペクション エンジンがスループット全体に影響を与えることがあります。ASA では、デフォルトでいくつかの一般的なインスペクション エンジンがイネーブルになっていますが、ネットワークによっては他のインスペクション エンジンをイネーブルにしなければならない場合があります。
ユーザが接続を確立すると、ASA は ACL と照合してパケットをチェックし、アドレス変換を作成し、高速パスでのセッション用にエントリを作成して、後続のパケットが時間のかかるチェックをバイパスできるようにします。ただし、高速パスは予測可能なポート番号に基づいており、パケット内部のアドレス変換を実行しません。
多くのプロトコルは、セカンダリの TCP ポートまたは UDP ポートを開きます。既知のポートで初期セッションが使用され、動的に割り当てられたポート番号がネゴシエーションされます。
パケットに IP アドレスを埋め込むアプリケーションもあります。この IP アドレスは送信元アドレスと一致する必要があり、通常、ASA を通過するときに変換されます。
これらのアプリケーションを使用する場合は、アプリケーション インスペクションをイネーブルにする必要があります。
IP アドレスを埋め込むサービスに対してアプリケーション インスペクションをイネーブルにすると、ASA は埋め込まれたアドレスを変換し、チェックサムや変換の影響を受けたその他のフィールドを更新します。
ダイナミックに割り当てられたポートを使用するサービスに対してアプリケーション インスペクションをイネーブルにすると、ASA はセッションをモニタしてダイナミックに割り当てられたポートを特定し、所定のセッションの間、それらのポートでのデータ交換を許可します。
インスペクション ポリシー マップを使用して、多くのアプリケーション インスペクションで実行される特別なアクションを設定できます。これらのマップはオプションです。インスペクション ポリシー マップをサポートするプロトコルに関しては、マップを設定しなくてもインスペクションをイネーブルにできます。デフォルトのインスペクション アクション以外のことが必要な場合にのみ、これらのマップが必要になります。
インスペクション ポリシー マップは、次に示す要素の 1 つ以上で構成されています。インスペクション ポリシー マップで使用可能な実際のオプションは、アプリケーションに応じて決まります。
トラフィック照合基準:アプリケーション トラフィックをそのアプリケーションに固有の基準(URL 文字列など)と照合し、その後アクションをイネーブルにできます。
一部のトラフィック照合基準では、正規表現を使用してパケット内部のテキストを照合します。ポリシー マップを設定する前に、正規表現クラス マップ内で、正規表現を単独またはグループで作成およびテストしておいてください。
インスペクション クラス マップ:一部のインスペクション ポリシー マップでは、インスペクション クラス マップを使用して複数のトラフィック照合基準を含めることができます。その後、インスペクション ポリシー マップ内でインスペクション クラス マップを指定し、そのクラス全体でアクションをイネーブルにします。クラス マップを作成することと、インスペクション ポリシー マップ内で直接トラフィック照合を定義することの違いは、より複雑な一致基準を作成できる点と、クラス マップを再使用できる点です。ただし、異なる照合基準に対して異なるアクションを設定することはできません。
サービス ポリシーのポリシー マップでインスペクションが有効になっている場合、ポリシー マップの交換は 2 つのステップからなるプロセスです。まず、サービス ポリシーからインスペクションを削除し、変更を適用する必要があります。次に、再度追加し、新しいポリシー マップ名を選択して、再度変更を適用します。
インスペクション ポリシー マップには、複数のインスペクション クラス マップや直接照合を指定できます。
1 つのパケットが複数の異なるクラスまたはダイレクト マッチに一致する場合、ASA がアクションを適用する順序は、インスペクション ポリシー マップにアクションが追加された順序ではなく、ASA の内部ルールによって決まります。内部ルールは、アプリケーションのタイプとパケット解析の論理的進捗によって決まり、ユーザが設定することはできません。HTTP トラフィックの場合、Request Method フィールドの解析が Header Host Length フィールドの解析よりも先に行われ、Request Method フィールドに対するアクションは Header Host Length フィールドに対するアクションより先に行われます。
アクションがパケットをドロップすると、インスペクション ポリシー マップではそれ以降のアクションは実行されません。たとえば、最初のアクションが接続のリセットである場合、それ以降の照合基準との照合は行われません。最初のアクションがパケットのログへの記録である場合、接続のリセットなどの 2 番目のアクションは実行されます。
パケットが、同一の複数の一致基準と照合される場合は、ポリシー マップ内のそれらのコマンドの順序に従って照合されます。
クラス マップは、そのクラス マップ内で重要度が最低の match オプション(重要度は、内部ルールに基づきます)に基づいて、別のクラス マップまたはダイレクト マッチと同じタイプであると判断されます。クラス マップに、別のクラス マップと同じタイプの重要度が最低の match オプションがある場合、それらのクラス マップはポリシー マップに追加された順序で照合されます。 各クラス マップの重要度が最低の照合が異なる場合、重要度が高い match オプションを持つクラス マップが最初に照合されます。
インスペクションが必要なマルチメディア セッションのステート情報は、ステートフル フェールオーバーのステート リンク経由では渡されません。ステート リンク経由で複製される GTP、および SIP は例外です。
次のインスペクションはクラスタリングではサポートされていません。
一部のインスペクション エンジンは、PAT、NAT、外部 NAT、または同一セキュリティ インターフェイス間の NAT をサポートしません。NAT サポートの詳細については、デフォルト インスペクションと NAT に関する制限事項を参照してください。
すべてのアプリケーション インスペクションについて、ASA はアクティブな同時データ接続の数を 200 接続に制限します。たとえば、FTP クライアントが複数のセカンダリ接続を開く場合、FTP インスペクション エンジンはアクティブな接続を 200 だけ許可して 201 番目の接続からはドロップし、適応型セキュリティ アプライアンスはシステム エラー メッセージを生成します。
検査対象のプロトコルは高度な TCP ステート トラッキングの対象となり、これらの接続の TCP ステートは自動的には複製されません。スタンバイ装置への接続は複製されますが、TCP ステートを再確立するベスト エフォート型の試行が行われます。
ASA(インターフェイス)に送信される TCP/UDP トラフィックはデフォルトで検査されます。ただし、インターフェイスに送信される ICMP トラフィックは、ICMP インスペクションをイネーブルにした場合でも検査されません。したがって、ASA がバックアップ デフォルト ルートを介して到達できる送信元からエコー要求が送信された場合など、特定の状況下では、インターフェイスへの ping(エコー要求)が失敗する可能性があります。
デフォルトでは、すべてのデフォルト アプリケーション インスペクション トラフィックに一致するポリシーがコンフィギュレーションに含まれ、すべてのインスペクションがすべてのインターフェイスのトラフィックに適用されます(グローバル ポリシー)。デフォルト アプリケーション インスペクション トラフィックには、各プロトコルのデフォルト ポートへのトラフィックが含まれます。適用できるグローバル ポリシーは 1 つだけなので、グローバル ポリシーを変更する(標準以外のポートにインスペクションを適用する場合や、デフォルトでイネーブルになっていないインスペクションを追加する場合など)には、デフォルトのポリシーを編集するか、デフォルトのポリシーをディセーブルにして新しいポリシーを適用する必要があります。
次の表に、サポートされているすべてのインスペクション、デフォルトのクラス マップで使用されるデフォルト ポート、およびデフォルトでオンになっているインスペクション エンジン(太字)を示します。この表には、NAT に関する制限事項も含まれています。この表の見方は次のとおりです。
ASA は、これらの指定された標準に準拠していますが、検査対象のパケットには準拠を強制しません。たとえば、各 FTP コマンドは特定の順序である必要がありますが、ASA によってその順序を強制されることはありません。
一部のインスペクション タイプは、非表示のデフォルト ポリシー マップを使用します。たとえば、マップを指定しないで ESMTP インスペクションをイネーブルにした場合、_default_esmtp_map が使用されます。
デフォルトのインスペクションは、各インスペクション タイプについて説明しているセクションで説明されています。これらのデフォルト マップは、show running-config all policy-map コマンドを使用して表示できます[Tools] > [Command Line Interface] を使用します。
DNS インスペクションは、明示的に設定されたデフォルト マップ preset_dns_map を使用する唯一のインスペクションです。
サービス ポリシーにアプリケーション インスペクションを設定します。
インスペクションは、一部のアプリケーションの標準のポートとプロトコルに関しては、デフォルトですべてのインターフェイスでグローバルに有効になっています。デフォルトのインスペクションの詳細については、デフォルト インスペクションと NAT に関する制限事項 を参照してください。インスペクションの設定をカスタマイズする一般的な方法は、デフォルトのグローバル ポリシーをカスタマイズすることです。または、たとえばインターフェイス固有のポリシーなど、必要に応じて新しいサービス ポリシーを作成することもできます。
一部のアプリケーションでは、インスペクション ポリシー マップを設定することでインスペクションをイネーブルにすると、特別なアクションを実行できます。この手順の後半の表に、インスペクション ポリシー マップを使用できるプロトコルを示します。また、それらの設定手順へのポインタも記載しています。これらの拡張機能を設定する場合は、インスペクションを設定する前にマップを作成します。
ステップ 1 | の順に選択します。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ステップ 2 | ルールを開きます。
標準以外のポートを照合する場合は、非標準ポート用の新しいルールを作成します。各インスペクション エンジンの標準ポートについては、デフォルト インスペクションと NAT に関する制限事項を参照してください。 必要に応じて同じサービス ポリシー内に複数のルールを組み合わせることができるため、照合するトラフィックに応じたルールを作成できます。ただし、トラフィックがインスペクション アクションを含むルールと一致し、その後同様にインスペクション アクションを含む別のルールとも一致した場合、最初に一致したルールだけが使用されます。 RADIUS アカウンティング インスペクションを実装している場合は、代わりに管理サービス ポリシー ルールを作成します。RADIUS アカウンティング インスペクションの設定を参照してください。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ステップ 3 | [Rule Actions] ウィザード ページまたはタブで、[Protocol Inspection] タブを選択します。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ステップ 4 | (使用中のポリシーを変更)異なるインスペクション ポリシー マップを使用するために使用中のポリシーを編集する場合は、インスペクションをディセーブルにし、新しいインスペクション ポリシー マップ名で再度イネーブルにします。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ステップ 5 | 適用したいインスペクション タイプを選択します。
デフォルトのインスペクション トラフィック クラスに対してのみ、複数のオプションを選択できます。 一部のインスペクション エンジンでは、トラフィックにインスペクションを適用するときの追加パラメータを制御できます。インスペクション ポリシー マップおよび他のオプションを設定するには、インスペクション タイプの [Configure] をクリックします。既存のマップを選択することも、新しいマップを作成することもできます。[Configuration] > [Firewall] > [Objects] > [Inspect Maps] リストから、インスペクション ポリシー マップを事前に定義できます。 次の表に、検査可能なプロトコル、インスペクション ポリシー マップまたはインスペクション クラス マップを使用できるかどうか、さらにインスペクションに関する詳細情報へのポインタを示します。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ステップ 6 | [OK] または [Finish] をクリックして、サービス ポリシー ルールを保存します。 |
正規表現は、テキスト文字列のパターン照合を定義します。一部のプロトコル インスペクション マップでは、正規表現を使用して、URL や特定のヘッダー フィールドのコンテンツなどの文字列に基づいてパケットを照合できます。
正規表現は、ストリングそのものとしてテキスト ストリングと文字どおりに照合することも、メタ文字を使用してテキスト ストリングの複数のバリアントと照合することもできます。正規表現を使用して特定のアプリケーション トラフィックの内容と照合できます。たとえば、HTTP パケット内部の URL 文字列と照合できます。
正規表現をパケットと照合する場合のパフォーマンスへの影響については、コマンド リファレンスで regex コマンドを参照してください。一般的に、長い入力文字列と照合したり、多くの正規表現と照合しようとすると、システム パフォーマンスが低下します。
![]() (注) | 最適化のために、ASA では、難読化解除された URL が検索されます。難読化解除では、複数のスラッシュ(/)が単一のスラッシュに圧縮されます。通常、「http://」のようなダブル スラッシュが使用される文字列では、代わりに「http:/」を検索してください。 |
正規表現クラス マップは、1 つ以上の正規表現を特定します。正規表現クラス マップは、正規表現オブジェクトを集めているにすぎません。多くの場合、正規表現オブジェクトの代わりに正規表現クラス マップを使用できます。
インスペクション サービス ポリシーをモニタするには、次のコマンドを入力します。コマンドを入力するには、 を選択します。構文の詳細と例については、Cisco.com のコマンド リファレンスを参照してください。
show service-policy inspect protocol
インスペクション サービス ポリシーの統計情報を表示します。protocol 、dnsdns どの inspect コマンドからのプロトコルです。ただし、すべてのインスペクション プロトコルでこのコマンドを使用して統計情報が表示されるわけではありません。次に例を示します。
asa# show service-policy inspect dns Global policy: Service-policy: global_policy Class-map: inspection_default Inspect: dns preset_dns_map, packet 0, lock fail 0, drop 0, reset-drop 0, 5-min-pkt-rate 0 pkts/sec, v6-fail-close 0 message-length maximum client auto, drop 0 message-length maximum 512, drop 0 dns-guard, count 0 protocol-enforcement, drop 0 nat-rewrite, count 0 asa#
show conn
デバイスを通過するトラフィックの現在の接続を示します。さまざまなプロトコルに関する情報を取得できるように、このコマンドにはさまざまなキーワードがあります。
特定の検査対象プロトコルの追加コマンドは次のとおりです。
show ctiqbe
CTIQBE インスペクション エンジンによって割り当てられたメディア接続に関する情報を表示します。
H.225 セッションの情報を表示します。
スロー スタートを使用しているエンドポイントによって確立された H.245 セッションの情報を表示します。
ゲートキーパーとその H.323 エンドポイントの間に確立されている H.323 RAS セッションの接続情報を表示します。
show mgcp {commands | sessions }
コマンド キュー内の MGCP コマンドの数、または既存の MGCP セッションの数を表示します。
SIP セッションの情報を表示します。
show skinny
Skinny(SCCP)セッションに関する情報を表示します。
Sun RPC サービス用に開けられているピンホールを表示します。