サービス ポリシーについて
次の各トピックでは、サービス ポリシーの仕組みについて説明します。
サービス ポリシーのコンポーネント
サービス ポリシーのポイントは、許可しているトラフィックに高度なサービスを適用することです。アクセス ルールによって許可されるトラフィックにサービスポリシーを適用し、サービス モジュールへのリダイレクトやアプリケーション インスペクションの適用などの特別な処理を実行できます。
次のタイプのサービス ポリシーを使用できます。
-
すべてのインターフェイスに適用される 1 つのグローバル ポリシー。
-
インターフェイスごとに適用される 1 つのサービス ポリシー。このポリシーは、デバイスを通過するトラフィックを対象とするクラスと、ASA インターフェイスに向けられた(インターフェイスを通過するのではない)管理トラフィックを対象とするクラスの組み合わせである場合があります。
各サービス ポリシーは、次の要素で構成されます。
-
サービス ポリシー マップ。これはルールの順序セットであり、service-policy コマンドで命名されます。ASDM では、ポリシー マップは [Service Policy Rules] ページにフォルダとして表示されます。
-
ルール。各ルールは、サービス ポリシー内の、class コマンドと class に関連するコマンド群で構成されます。ASDM では、各ルールは個別の行に表示され、ルールの名前はクラス名です。
class コマンドは、ルールのトラフィック照合基準を定義します。
inspect や set connection timeout などの class 関連のコマンドは、一致するトラフィックに適用するサービスと制約を定義します。inspect コマンドは、検査対象トラフィックに適用するアクションを定義するインスペクション ポリシー マップを指す場合があります。インスペクション ポリシー マップとサービス ポリシー マップは同じではないことに注意してください。
次の例では、サービス ポリシーが CLI と ASDM でどのように表示されるかを比較します。図の吹き出しと CLI の行は 1 対 1 で対応しないことに注意してください。
次の CLI は、上の図に示すルールによって生成されます。
: Access lists used in class maps.
: In ASDM, these map to call-out 3, from the Match to the Time fields.
access-list inside_mpc line 1 extended permit tcp 10.100.10.0 255.255.255.0 any eq sip
access-list inside_mpc_1 line 1 extended deny udp host 10.1.1.15 any eq snmp
access-list inside_mpc_1 line 2 extended permit udp 10.1.1.0 255.255.255.0 any eq snmp
access-list inside_mpc_2 line 1 extended permit icmp any any
: SNMP map for SNMP inspection. Denies all but v3.
: In ASDM, this maps to call-out 4, rule actions, for the class-inside policy.
snmp-map snmp-v3only
deny version 1
deny version 2
deny version 2c
: Inspection policy map to define SIP behavior.
: The sip-high inspection policy map must be referred to by an inspect sip command
: in the service policy map.
: In ASDM, this maps to call-out 4, rule actions, for the sip-class-inside policy.
policy-map type inspect sip sip-high
parameters
rtp-conformance enforce-payloadtype
no traffic-non-sip
software-version action mask log
uri-non-sip action mask log
state-checking action drop-connection log
max-forwards-validation action drop log
strict-header-validation action drop log
: Class map to define traffic matching for the inside-class rule.
: In ASDM, this maps to call-out 3, from the Match to the Time fields.
class-map inside-class
match access-list inside_mpc_1
: Class map to define traffic matching for the sip-class-inside rule.
: In ASDM, this maps to call-out 3, from the Match to the Time fields.
class-map sip-class-inside
match access-list inside_mpc
: Class map to define traffic matching for the inside-class1 rule.
: In ASDM, this maps to call-out 3, from the Match to the Time fields.
class-map inside-class1
match access-list inside_mpc_2
: Policy map that actually defines the service policy rule set named test-inside-policy.
: In ASDM, this corresponds to the folder at call-out 1.
policy-map test-inside-policy
: First rule in test-inside-policy, named sip-class-inside. Inspects SIP traffic.
: The sip-class-inside rule applies the sip-high inspection policy map to SIP inspection.
: In ASDM, each rule corresponds to call-out 2.
class sip-class-inside
inspect sip sip-high
: Second rule, inside-class. Applies SNMP inspection using an SNMP map.
class inside-class
inspect snmp snmp-v3only
: Third rule, inside-class1. Applies ICMP inspection.
class inside-class1
inspect icmp
: Fourth rule, class-default. Applies connection settings and enables user statistics.
class class-default
set connection timeout embryonic 0:00:30 half-closed 0:10:00 idle 1:00:00
reset dcd 0:15:00 5
user-statistics accounting
: The service-policy command applies the policy map rule set to the inside interface.
: This command activates the policies.
service-policy test-inside-policy interface inside
サービス ポリシーで設定される機能
次の表に、サービス ポリシーを使用して設定する機能を示します。
機能 |
通過トラフィック用か |
管理トラフィック用か |
次を参照してください。 |
---|---|---|---|
アプリケーション インスペクション(複数タイプ) |
RADIUS アカウンティングを除くすべて |
RADIUS アカウンティングのみ |
|
NetFlow セキュア イベント ロギングのフィルタリング |
対応 |
対応 |
NetFlow 実装ガイドを参照してください。 |
QoS 入出力ポリシング |
対応 |
× |
QoS。 |
QoS 標準プライオリティ キュー |
対応 |
× |
QoS。 |
TCP と UDP の接続制限値とタイムアウト、および TCP シーケンス番号のランダム化 |
対応 |
対応 |
接続設定。 |
TCP の正規化 |
対応 |
× |
接続設定。 |
TCP ステート バイパス |
対応 |
× |
接続設定。 |
アイデンティティ ファイアウォールのユーザー統計情報 |
対応 |
対応 |
コマンド リファレンスの user-statistics コマンドを参照してください。 |
機能の方向性
アクションは、機能に応じて双方向または単方向にトラフィックに適用されます。双方向に適用される機能の場合、トラフィックが両方向のクラス マップと一致した場合に、ポリシー マップを適用するインターフェイスを出入りするすべてのトラフィックが影響を受けます。
(注) |
グローバル ポリシーを使用する場合は、すべての機能が単方向です。単一インターフェイスに適用する場合に通常双方向の機能は、グローバルに適用される場合、各インターフェイスの入力にのみ適用されます。ポリシーはすべてのインターフェイスに適用されるため、ポリシーは両方向に適用され、この場合の双方向は冗長になります。 |
QoS プライオリティ キューなど単方向に適用される機能の場合は、ポリシー マップを適用するインターフェイスに出入りする(機能によって異なります)トラフィックだけが影響を受けます。各機能の方向については、次の表を参照してください。
機能 |
単一インターフェイスでの方向 |
グローバルでの方向 |
---|---|---|
アプリケーション インスペクション(複数タイプ) |
双方向 |
入力 |
NetFlow セキュア イベント ロギングのフィルタリング |
該当なし |
入力 |
QoS 入力ポリシング |
入力 |
入力 |
QoS 出力ポリシング |
出力 |
出力 |
QoS 標準プライオリティ キュー |
出力 |
出力 |
TCP と UDP の接続制限値とタイムアウト、および TCP シーケンス番号のランダム化 |
双方向 |
入力 |
TCP の正規化 |
双方向 |
入力 |
TCP ステート バイパス |
双方向 |
入力 |
アイデンティティ ファイアウォールのユーザー統計情報 |
双方向 |
入力 |
サービス ポリシー内の機能照合
パケットは、次のルールに従って特定のインターフェイスのポリシー マップのクラス マップに一致します。
-
パケットは、各機能タイプのポリシー マップ ルールで、1 つのクラス マップにだけ一致します。
-
パケットが機能タイプのクラス マップに一致した場合、ASA は、その機能タイプの後続のクラス マップとは照合しません。
-
ただし、パケットが別の機能タイプの後続のクラス マップと一致した場合、ASA は、後続のクラス マップのアクションも適用します(サポートされている場合)。サポートされていない組み合わせの詳細については、特定の機能アクションの非互換性を参照してください。
(注)
アプリケーション インスペクションには、複数のインスペクション タイプが含まれ、ほとんどのタイプは相互に排他的です。組み合わせ可能なインスペクションの場合、各インスペクションは個々の機能と見なされます。
パケット照合の例
次に例を示します。
-
パケットが接続制限値のクラス マップ と一致し、アプリケーション インスペクションのクラス マップ とも一致した場合、両方のクラス マップ アクションが適用されます。
-
パケットが HTTP インスペクションで 1 つのクラス マップと一致し、HTTP インスペクションを含む別のクラス マップ とも一致した場合、2 番目のクラス マップ のアクションは適用されません。
-
パケットが FTP インスペクションで 1 つのクラス マップ と一致し、HTTP インスペクションを含む別のクラス マップ とも一致した場合、HTTP および FTP インスペクションは組み合わせることができないため、2 番目のクラス マップのアクションは適用されません。
-
パケットが HTTP インスペクションで 1 つのクラス マップ と一致し、さらに IPv6 インスペクションを含む別のクラス マップ とも一致した場合、IPv6 インスペクションは他のタイプのインスペクションと組み合わせることができるため、両方のアクションが適用されます。
複数の機能アクションが適用される順序
ポリシー マップの各種のアクションが実行される順序は、ポリシー マップ 中に出現する順序とは無関係です。
アクションは次の順序で実行されます。
-
QoS 入力ポリシング
-
TCP の正規化、TCP と UDP の接続制限値とタイムアウト、TCP シーケンス番号のランダム化、および TCP ステート バイパス
(注)
ASA がプロキシサービス(AAA など)を実行したり、TCP ペイロード(FTP インスペクションなど)を変更したりするときは、TCP ノーマライザはデュアルモードで動作します。その場合、サービスを変更するプロキシやペイロードの前後で適用されます。
-
他のインスペクションと組み合わせることができるアプリケーション インスペクション:
-
IPv6
-
IP オプション
-
WAAS
-
-
他のインスペクションと組み合わせることができないアプリケーション インスペクション:詳細については、「特定の機能アクションの非互換性」を参照してください。
-
QoS 出力ポリシング
-
QoS 標準プライオリティ キュー
(注) |
NetFlow セキュア イベント ロギングのフィルタリングとアイデンティティ ファイアウォールのユーザー統計情報は順番に依存しません。 |
特定の機能アクションの非互換性
一部の機能は同じトラフィックに対して相互に互換性がありません。次のリストには、すべての非互換性が含まれていない場合があります。各機能の互換性については、機能に関する章または項を参照してください。
-
QoS プライオリティ キューイングと QoS ポリシングは同じトラフィックの集合に対して設定できません。
-
ほとんどのインスペクションは別のインスペクションと組み合わせられないため、同じトラフィックに複数のインスペクションを設定しても、ASA は 1 つのインスペクションだけを適用します。例外は、複数の機能アクションが適用される順序に記載されています。
(注) |
デフォルト グローバル ポリシーで使用される match default-inspection-traffic コマンド は、デフォルト ポートをすべてのインスペクションと照合する特別な CLI ショートカットです。ポリシー マップで使用すると、このクラス マップでは、トラフィックの宛先ポートに基づいて、各パケットに正しいインスペクションが適用されます。たとえば、宛先がポート 69 の UDP トラフィックが ASA に到達すると、ASA は TFTP インスペクションを適用し、宛先がポート 21 の TCP トラフィックが到着すると、ASA は FTP インスペクションを適用します。そのため、この場合に限って同じクラス マップに複数のインスペクションを設定できます。通常、ASA は、ポート番号を使用して適用するインスペクションを決定しないため、標準以外のポートなどにも柔軟にインスペクションを適用できます。 |
誤った設定例は、同じポリシー マップに複数のインスペクションを設定しても、default-inspection-traffic ショートカットを使用しないことです。最初の例では、ポート 21 宛てのトラフィックが、FTP インスペクションと HTTP インスペクションの両方に誤って設定されています。2 番目の例では、ポート 80 宛てのトラフィックが、FTP インスペクションと HTTP インスペクションの両方に誤って設定されています。どちらの誤った設定例の場合も、FTP インスペクションだけが適用されています。これは、適用されたインスペクションの順序では、FTP が HTTP よりも先になるためです。
例 1:FTP パケットの誤設定(HTTP インスペクションも設定されている)
class-map ftp
match port tcp eq 21
class-map http
match port tcp eq 21 [it should be 80]
policy-map test
class ftp
inspect ftp
class http
inspect http
例 2:HTTP パケットの誤設定(FTP インスペクションも設定されている)
class-map ftp
match port tcp eq 80 [it should be 21]
class-map http
match port tcp eq 80
policy-map test
class ftp
inspect ftp
class http
inspect http
複数のサービス ポリシーの機能照合
TCP および UDP トラフィック(およびステートフル ICMP インスペクションがイネーブルの場合は ICMP)の場合、サービス ポリシーはトラフィック フローに対して作用し、個々のパケットに限定されません。トラフィックが、1 つのインターフェイスのポリシーで定義されている機能に一致する既存の接続の一部である場合、そのトラフィック フローを別のインターフェイスのポリシーにある同じ機能と照合することはできません。最初のポリシーのみが使用されます。
たとえば、HTTP トラフィックが、HTTP トラフィックを検査する内部インターフェイスのポリシーと一致するときに、HTTP インスペクション用の外部インターフェイスに別のポリシーがある場合、そのトラフィックが外部インターフェイスの出力側でも検査されることはありません。同様に、その接続のリターン トラフィックが外部インターフェイスの入力ポリシーによって検査されたり、内部インターフェイスの出力ポリシーによって検査されたりすることもありません。
ステートフル ICMP インスペクションをイネーブルにしない場合の ICMP のように、フローとして扱われないトラフィックの場合は、リターン トラフィックを戻り側のインターフェイスの別のポリシー マップと照合できます。