2017-10-05 08:43 PM 2024-02-27 05:23 PM 更新
Prefilteringは アクセスコントロールの最も最初に実施されるアクセス制御処理です。 信頼されたTCP/IP通信を Prefilterで許可、もしくは 明らかに不要な通信をPrefilterでドロップすることで、その後のより詳細な処理をバイパスができ、FTD全体の処理負荷の上昇を抑え、パフォーマンスの最適化につながります。
本ドキュメントでは、このPrefilterの動作概要と設定方法、及び 動作確認方法を紹介します。
本ドキュメントは、ASA5516の FTDバージョン 6.2.0.2で確認、作成しております。
Firepower Threat Defense (FTD)は、以下2種類のソフトウェアを統合した新ソフトウェアです。
以下は実際のFTDソフトウェアの通信処理アーキテクチャ概要です。ASAエンジンで主にL2-L4の高速処理を実施し、高度処理が必要な通信は Snrotエンジンに渡され、さらに詳細な複数処理が実行されます。
[概要]
[各処理プロセス 詳細] ※拡大イメージは添付ファイル参照
FTDは様々なアクセス制御が可能ですが、以下は 主要なアクセス制御である、Prefilterと Access Control Policy(ACP)の比較です。
Prefilter | Access Control Policy | |
設定箇所 | Policies > Access Control > Prefilter | Policies > Access Control > Access Control |
処理エンジン | ASAエンジン | ASAエンジン+Snortエンジン (設定内容により変化) |
Rule Action | Fastpath Block Analyze |
Trust, Permit, monitor, |
Rule Criteria |
IPやVLAN、Port、Protcol | 多数 (URLやアプリケーション情報、 地理情報なども利用可) |
ロギング | Fastpathと Blockのみ設定可 Analyzeは不可 (Analyzeは後続処理のロギン設定に依存) |
全てのコネクションで対応 |
処理順序 | アクセス制御処理の中で、 最初に実行 |
(設定内容により可変) |
処理速度 | 高速 | (設定内容により可変) |
Prefilterの Rule Actionの Fastpathは、その後のSnortエンジンの処理をパイパスし、許可します。つまり、高速なASAエンジン内で許可とパケット転送を行います。
Prefilterの Rule Actionの Analyzeは、その後のAccess Control(Snortなど)に処理を渡します。
つまり、Prefilterは TCP/IPベースでの制御となりますが、高速に通信制御が可能です。
その為、例えば以下に該当する通信はPrefilterで高速処理(Fastpath or Block)することで、不要な通信をSnortエンジンに渡さず、パフォーマンスの最適化が可能となります。
Prefilterの利用ケース例
1. Policies から Access Control > Prefilterに移動し、画面右上の"New Policy"から 任意Prefilter Policyを作成
2. Add Prefilter Ruleより任意ルールを作成し保存。 例えば以下は、1.176.200.200宛の inside→outside通信を Prefilterでドロップする設定。なお、定義したルールにマッチしない場合は、後続処理(=他のAccess Control設定)に渡される
3. 必要に応じて、Polocies から Access Control > Access Controlに移動し、画面右上のPrefilter Policyで 項番1で設定したものを指定
4. 設定の保存とデプロイを実施
1. 既存ACPルールを右クリックし「Move to another policy」を選択
(※注:Prefilterに移動できるのは、 適用済みの IP/Port 制御ルールのみ)
2. 任意のPrefilter Policy が選択されていることを確認し「Move」をクリック
3. Prefilter Policyにアクセスし、ルールがACPからPrefilterに移動されたことを確認
なお、ACPルールで設定時のアクションによって、Prefilterで設定されるルールアクションは変わります。例えば、ACPで Allowを利用時は「Analyze(許可しSnortで詳細調査)」に自動変換されるため、高速許可を希望時は「Fastpath」に変更してください。
Prefilterの該当ルールのログ出力が有効の場合、Connection Eventより処理結果を確認できます。
想定のルールにマッチするかの動作確認は、FTDのCLIでパケットトレーサの実行と確認がとても便利です。 なお、パケットトレーサは単純なTCP/IPパケットの動作試験にしか使えないことに注意してください。 例えばACPのアプリケーションやURL検知の動作確認には利用できず、これら試験には実通信試験が必要になります。
パケットトレーサの利用方法は以下URLコンフィギュレーションガイドを参照してください。
https://www.cisco.com/c/en/us/td/docs/security/firepower/620/configuration/guide/fpmc-config-guide-v62/troubleshooting_the_system.html#id_41641
なお、コマンドラインは 従来のASAソフトウェアと大きく変わりませんので、以下ドキュメントも参考頂けます。
https://supportforums.cisco.com/t5/-/-/ta-p/3155834#toc-hId--764080770
> packet-tracer input inside tcp 192.168.100.1 1234 1.176.200.200 80
Phase: 1
Type: ROUTE-LOOKUP
Subtype: Resolve Egress Interface
Result: ALLOW
Config:
Additional Information:
found next-hop 1.176.200.200 using egress ifc outside
Phase: 2
Type: ACCESS-LIST
Subtype: log
Result: DROP
Config:
access-group CSM_FW_ACL_ global
access-list CSM_FW_ACL_ advanced deny ip ifc inside any ifc outside host 1.176.200.200 rule-id 268435457 event-log flow-start
access-list CSM_FW_ACL_ remark rule-id 268435457: PREFILTER POLICY: ASA5516-FTD
access-list CSM_FW_ACL_ remark rule-id 268435457: RULE: 1.176.200.200 block
Additional Information:
Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: drop
Drop-reason: (acl-drop) Flow is denied by configured rule
> packet-tracer input inside tcp 192.168.100.1 1234 1.176.100.100 80
Phase: 1
Type: ROUTE-LOOKUP
Subtype: Resolve Egress Interface
Result: ALLOW
Config:
Additional Information:
found next-hop 1.176.100.100 using egress ifc outside
Phase: 2
Type: ACCESS-LIST
Subtype: log
Result: ALLOW
Config:
access-group CSM_FW_ACL_ global
access-list CSM_FW_ACL_ advanced permit tcp any host 1.176.100.100 object-group HTTP rule-id 268435459
access-list CSM_FW_ACL_ remark rule-id 268435459: ACCESS POLICY: ASA5516 - Mandatory
access-list CSM_FW_ACL_ remark rule-id 268435459: L7 RULE: 1.176.100.100-Web-Block
object-group service HTTP tcp
port-object eq www
Additional Information:
This packet will be sent to snort for additional processing where a verdict will be reached
Phase: 3
Type: CONN-SETTINGS
Subtype:
Result: ALLOW
Config:
class-map class-default
match any
policy-map global_policy
class class-default
set connection advanced-options UM_STATIC_TCP_MAP
service-policy global_policy global
Additional Information:
Phase: 4
Type: NAT
Subtype:
Result: ALLOW
Config:
object network IPv4-Private-192.168.0.0-16
nat (inside,outside) dynamic PAT-1.176.xx.xx
Additional Information:
Dynamic translate 192.168.100.1/1234 to 1.176.xx.xx/1234
Phase: 5
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Phase: 6
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:
Phase: 7
Type: FOVER
Subtype: standby-update
Result: ALLOW
Config:
Additional Information:
Phase: 8
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Phase: 9
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:
Phase: 10
Type: FLOW-CREATION
Subtype:
Result: ALLOW
Config:
Additional Information:
New flow created with id 20743, packet dispatched to next module
Phase: 11
Type: EXTERNAL-INSPECT
Subtype:
Result: ALLOW
Config:
Additional Information:
Application: 'SNORT Inspect' <--- Snort処理開始
Phase: 12
Type: SNORT
Subtype:
Result: DROP
Config:
Additional Information:
Snort Trace:
Packet: TCP, SYN, seq 442988200
AppID: service unknown (0), application unknown (0)
Firewall: block w/ reset rule, id 268435459, drop
Snort: processed decoder alerts or actions queue, drop
NAP id 2, IPS id 0, Verdict BLACKLIST, Blocked by Firewall
Snort Verdict: (black-list) black list this flow
Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: drop
Drop-reason: (firewall) Blocked or blacklisted by the firewall preprocessor
> packet-tracer input inside tcp 192.168.100.1 1234 8.8.8.8 80
Phase: 1
Type: ROUTE-LOOKUP
Subtype: Resolve Egress Interface
Result: ALLOW
Config:
Additional Information:
found next-hop 1.0.0.100 using egress ifc outside
Phase: 2
Type: ACCESS-LIST
Subtype: log
Result: ALLOW
Config:
access-group CSM_FW_ACL_ global
access-list CSM_FW_ACL_ advanced permit ip any any rule-id 268434433
access-list CSM_FW_ACL_ remark rule-id 268434433: ACCESS POLICY: ASA5516 - Mandatory
access-list CSM_FW_ACL_ remark rule-id 268434433: L7 RULE: Permit-any-inspection
Additional Information:
This packet will be sent to snort for additional processing where a verdict will be reached
Phase: 3
Type: CONN-SETTINGS
Subtype:
Result: ALLOW
Config:
class-map class-default
match any
policy-map global_policy
class class-default
set connection advanced-options UM_STATIC_TCP_MAP
service-policy global_policy global
Additional Information:
Phase: 4
Type: NAT
Subtype:
Result: ALLOW
Config:
object network IPv4-Private-192.168.0.0-16
nat (inside,outside) dynamic PAT-1.176.xx.xx
Additional Information:
Dynamic translate 192.168.100.1/1234 to 1.176.xx.xx/1234
Phase: 5
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Phase: 6
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:
Phase: 7
Type: FOVER
Subtype: standby-update
Result: ALLOW
Config:
Additional Information:
Phase: 8
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Phase: 9
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:
Phase: 10
Type: FLOW-CREATION
Subtype:
Result: ALLOW
Config:
Additional Information:
New flow created with id 20725, packet dispatched to next module
Phase: 11
Type: EXTERNAL-INSPECT
Subtype:
Result: ALLOW
Config:
Additional Information:
Application: 'SNORT Inspect' <--- Snort処理開始
Phase: 12
Type: SNORT
Subtype:
Result: ALLOW
Config:
Additional Information:
Snort Trace:
Packet: TCP, SYN, seq 1553903749
AppID: service unknown (0), application unknown (0)
Firewall: allow rule, id 268434433, allow
NAP id 2, IPS id 1, Verdict PASS
Snort Verdict: (pass-packet) allow this packet
Phase: 13
Type: ROUTE-LOOKUP
Subtype: Resolve Egress Interface
Result: ALLOW
Config:
Additional Information:
found next-hop 1.0.0.100 using egress ifc outside
Phase: 14
Type: ADJACENCY-LOOKUP
Subtype: next-hop and adjacency
Result: ALLOW
Config:
Additional Information:
adjacency Active
next-hop mac address 503d.e59d.002c hits 4294989770
Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: allow
異なる処理となります。
PrefilterのFastpathは ASA(Lina)エンジンの処理で、最も最初に処理されます。従来のASAと同等の処理のため、L4レベル(ProtocolやIP、Port)までの制御しかできません。 制御内容がシンプルなため、軽快に高速に動作します。 また、Snort 2を利用時は VDB適用時にSnort再起動が発生しますが、Snortの再起動などによる影響を回避できるため、特に遮断したくない信頼された通信への適用をお勧めします。
Access Control Policy(ACP)のTrustは、Access Control Ruleの1つのActionとして処理され、その前のSnort処理である セキュリティインテリジェンスや ネットワークアナリシスポリシーなどの制御も合わせ行われます。 そのため、ACPのTrustのほうが より慎重な許可となります。 また、ACPのTrustは レイヤー7のApplicationなどのTrust設定もできます。 Access Control Ruleの処理順序について より詳しくは、Chapter: An Overview of Network Analysis and Intrusion Policiesを参照してください。 以下は処理フロー図の抜粋です。
Firepower System and FTDトラブルシューティング
https://community.cisco.com/t5/-/-/ta-p/3161733
FTDを経由するICMP通信の、Snort検査を行わない許可方法 (Prefilter)
https://supportforums.cisco.com/t5/-/-/ta-p/3208100
Prefiltering and Prefilter Policies
https://www.cisco.com/c/en/us/td/docs/security/firepower/620/configuration/guide/fpmc-config-guide-v62/prefiltering_and_prefilter_policies.pdf
Cisco Secure Firewall (FTD) - how to ※FTD情報 まとめサイト
https://community.cisco.com/t5/-/-/ta-p/5024782
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします
下記より関連するコンテンツにアクセスできます