ASAではアプリケーションレベルの検査(インスペクション)をしてアクションを起こすことができます。
デフォルトで設定されているものもありますが、ICMPは検査対象としておかないとinsideからoutsideへのPingの応答が無い等の弊害があります。
HTTPのインスペクション設定をしていきます。(入れ子になって分かりにくいので色分けしてみました)
1)流れ
図におこしてみるとおおよそこんな感じの流れかと思います。
-----------------------
| レイヤ 3/4 クラスマップでトラフィックを特定 |
-----------------------
↓
↓ -----------------------
↓ |検査クラスマップでアプリ固有のトラフック特定|
↓ -----------------------
↓ ↓
↓ ------------------ -----
↓ |検査ポリシーマップでアクションを指定 | |TCP Map |
↓ ------------------- -----
↓ ↓ ↓
↓ ↓ ↓
———————————————————————————-
| ポリシーマップでクラスマップにアクションを割り当て |
———————————————————————————-
2) レイヤ 3/4 クラスマップでトラフィックを特定
class-map outside-class_HTTPMedium
match access-list outsideACL
!
2)検査クラスマップでアプリ固有のトラフック特定
検査クラスマップでトラフィックを指定します。URL文字列等アプリケーション固有の基準とトラフィックを照合させるトラフィック照合コマンドが含まれます。
ASDMでは、Global Objects > Class Maps > HTTP内で設定します。
class-map type inspect http match-all asdm_medium_security_methods
match not request method head
match not request method post
match not request method get
3)検査ポリシーマップでアクションを指定
検査ポリシーマップ内でアクションを定義します。ASDMでは、Global Objects > Inspect Maps > HTTP内で設定します。
policy-map type inspect http HTTPMedium parameters protocol-violation action drop-connection log class asdm_medium_security_methods >>>> 検査クラスマップを指定してドロップ drop-connection
4)ポリシーマップでクラスマップにアクションを割り当て
ポリシーマップでレイヤ3/4クラスマップ、検査ポリシーマップを紐付けます。その他TCP正規化のアクション、QoSの指定などを行うことができます。
policy-map outside-policy class outside-class_HTTPMedium >>>>>> レイヤ3/4クラスマップの紐付け inspect http HTTPMedium >>>>>> 検査ポリシーマップを紐付け set connection random-sequence-number disable
最後にI/Fへポリシーマップを適用します。
service-policy outside-policy interface outside