はじめに
このドキュメントでは、脅威サービスポリシーを使用してFirepower Threat Defense(FTD)経由のtracerouteを許可するための設定について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Firepower Management Center(FMC)
- Firepower Threat Defense(FTD)
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- この記事は、すべてのFirepowerプラットフォームに適用されます。
- ソフトウェアバージョン6.4.0が稼働するCisco Firepower Threat Defense(FTD)
- ソフトウェアバージョン6.4.0が稼働するCisco Firepower Management Center(FMC)Virtual。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
tracerouteを使用すると、パケットが宛先に到達するまでに経由するルートを特定できます。tracerouteは、Unified Data Platform(UDP)パケットを無効なポート上の宛先に送信することによって機能します。ポートが有効ではないため、宛先までの経路に沿ったルータは、インターネット制御メッセージプロトコル(ICMP)のTime Exceededメッセージで応答し、そのエラーを適応型セキュリティアプライアンス(ASA)に報告します。
tracerouteは、送信された各プローブの結果を示します。出力の各行は、Time to Live(TTL;存続可能時間)の値に昇順で対応しています。次の表に、出力シンボルの説明を示します。
出力シンボル |
説明 |
* |
タイムアウト期間内にプローブに対する応答を受信しませんでした。 |
nn msec |
各ノードについて、指定されたプローブ数のラウンドトリップ時間(ミリ秒)。 |
!N |
ICMPネットワークに到達できない。 |
!H |
ICMPホストに到達できません。 |
!P |
ICMPは到達不能です。 |
!A |
ICMPは管理上禁止されています。 |
? |
不明なICMPエラーです。 |
デフォルトでは、ASAはtracerouteにホップとして表示されません。これを表示するには、ASAを通過するパケットの存続可能時間(TTL)を減らし、ICMP到達不能メッセージのレート制限を増やします。
注意:存続可能時間(TTL)を減らすと、TTLが1のパケットは廃棄されますが、接続にもっと大きなTTLのパケットが含まれていると仮定すると、セッションに対して接続が開かれます。OSPF helloパケットなど、一部のパケットはTTL = 1で送信されるため、存続可能時間(TTL)を減らすと予期しない結果が生じる場合があることに注意してください。トラフィッククラスを定義する際は、次の点を考慮してください。
設定
ステップ 1:tracerouteレポートを有効にする必要があるトラフィッククラスを定義する拡張ACLを作成します。
FMC GUIにログインして、Objects > Object Management > Access Listの順に移動します。 目次からExtendedを選択し、新しい拡張アクセスリストを追加します。次の図に示すように、オブジェクトの名前を入力します。たとえば、Traceroute_ACLで、ICMPタイプ3と11を許可するルールを追加し、これを保存します。
ステップ 2:存続可能時間(TTL)の値を減らすサービスポリシールールを設定します。
Policies > Access Controlの順に移動し、デバイスに割り当てられているポリシーをEditします。Advancedタブで、Threat Defense Serviceポリシーを編集し、次にAdd a new rule from Add Ruleタブで、Globalチェックボックスを選択してグローバルに適用し、Nextをクリックします(下図参照)。
Traffic Flow > Extended Access Listの順に移動し、前の手順で作成したドロップダウンメニューからExtended Access List Objectを選択します。次の図に示すように、Nextをクリックします。
Enable Decrement TTLチェックボックスを選択して、他の接続オプション(オプション)を変更します。ここで、図に示すように、Finishをクリックしてルールを追加し、OKをクリックして、Threat Defenseサービスのポリシーに対する変更を保存します。
上記の手順が完了したら、アクセスコントロールポリシーを保存します。
ステップ 3:InsideおよびOutsideでICMPを許可し、レート制限を50に増やします(オプション)。
Devices > Platform Settingsの順に移動し、次にEditまたはCreateで新しいFirepower Threat Defenseプラットフォーム設定ポリシーを選択し、デバイスに関連付けます。目次からICMPを選択し、レート制限を大きくします。たとえば、次の図に示すように、50に設定し(バーストサイズは無視できます)、SaveをクリックしてからDeployに進み、ポリシーをデバイスに展開します。
注意:ICMP宛先到達不能(タイプ3)およびICMP時間超過(タイプ11)が、ACLポリシーのOutsideからInsideへ、またはプレフィルタポリシーのFastpath経由で許可されていることを確認してください。
確認
ポリシーの導入が完了したら、FTD CLIから設定を確認します。
FTD# show run policy-map
!
policy-map type inspect dns preset_dns_map
---Output omitted---
class class_map_Traceroute_ACL
set connection timeout idle 1:00:00
set connection decrement-ttl
class class-default
!
FTD# show run class-map
!
class-map inspection_default
---Output omitted---
class-map class_map_Traceroute_ACL
match access-list Traceroute_ACL
!
FTD# show run access-l Traceroute_ACL
access-list Traceroute_ACL extended permit object-group ProxySG_ExtendedACL_30064773500 any any log
FTD#
トラブルシュート
問題をさらにトラブルシューティングするために、対象トラフィックのFTDの入力および出力インターフェイスでキャプチャを取得できます。
tracerouteを実行しながらLinaでパケットキャプチャを行うと、ルート上の各希望がターゲットIPに到達するまでこれを表示できます。
ftd64# capture icmp interface inside real-time match icmp any any
Warning: using this option with a slow console connection may
result in an excessive amount of non-displayed packets
due to performance limitations.
Use ctrl-c to terminate real-time capture
1: 00:22:04.192800 10.0.0.1 > 10.10.10.11 icmp: time exceeded in-transit
2: 00:22:04.194432 10.0.0.1 > 10.10.10.11 icmp: time exceeded in-transit
3: 00:22:04.194447 10.0.0.1 > 10.10.10.11 icmp: time exceeded in-transit
4: 00:22:04.194981 172.16.1.1 > 10.10.10.11 icmp: time exceeded in-transit
5: 00:22:04.194997 172.16.1.1 > 10.10.10.11 icmp: time exceeded in-transit
6: 00:22:04.201130 10.122.149.1 > 10.10.10.11 icmp: time exceeded in-transit
7: 00:22:04.201146 10.122.149.1 > 10.10.10.11 icmp: time exceeded in-transit
8: 00:22:04.201161 172.16.1.1 > 10.10.10.11 icmp: time exceeded in-transit
9: 00:22:04.201375 10.0.114.197 > 10.10.10.11 icmp: time exceeded in-transit
10: 00:22:04.201420 10.0.254.225 > 10.10.10.11 icmp: time exceeded in-transit
11: 00:22:04.202336 10.122.149.1 > 10.10.10.11 icmp: time exceeded in-transit
12: 00:22:04.202519 10.0.127.113 > 10.10.10.11 icmp: time exceeded in-transit
13: 00:22:04.216022 10.0.127.113 > 10.10.10.11 icmp: time exceeded in-transit
14: 00:22:04.216038 10.0.127.113 > 10.10.10.11 icmp: time exceeded in-transit
15: 00:22:04.216038 10.0.114.197 > 10.10.10.11 icmp: time exceeded in-transit
16: 00:22:04.216053 10.0.114.197 > 10.10.10.11 icmp: time exceeded in-transit
17: 00:22:04.216297 172.18.127.245 > 10.10.10.11 icmp: 172.18.127.245 udp port 33452 unreachable
18: 00:22:04.216312 10.0.254.225 > 10.10.10.11 icmp: time exceeded in-transit
19: 00:22:04.216327 10.0.254.225 > 10.10.10.11 icmp: time exceeded in-transit
上記の – Iスイッチと – nスイッチを使用してtracerouteを実行すると、Lina CLIでさらに詳細な出力が得られます。
[ On the Client PC ]
# traceroute 10.18.127.245 -I -n
Note: You may not observe any difference between traceroute with or without -I switch. The difference is noticeable in the packet captures.
[ On FTD Lina CLI ]
ftd64# capture icmp interface inside real-time match icmp any any
Warning: using this option with a slow console connection may
result in an excessive amount of non-displayed packets
due to performance limitations.
Use ctrl-c to terminate real-time capture
1: 18:37:33.517307 10.10.10.11 > 172.18.127.245 icmp: echo request
2: 18:37:33.517642 10.10.10.11 > 172.18.127.245 icmp: echo request
3: 18:37:33.517658 10.10.10.11 > 172.18.127.245 icmp: echo request
4: 18:37:33.517658 10.10.10.11 > 172.18.127.245 icmp: echo request
5: 18:37:33.517673 10.10.10.11 > 172.18.127.245 icmp: echo request
6: 18:37:33.517673 10.10.10.11 > 172.18.127.245 icmp: echo request
7: 18:37:33.517673 10.10.10.11 > 172.18.127.245 icmp: echo request
8: 18:37:33.517749 10.10.10.11 > 172.18.127.245 icmp: echo request
9: 18:37:33.517749 10.10.10.11 > 172.18.127.245 icmp: echo request
10: 18:37:33.517764 10.10.10.11 > 172.18.127.245 icmp: echo request
11: 18:37:33.517764 10.10.10.11 > 172.18.127.245 icmp: echo request
12: 18:37:33.517826 10.10.10.11 > 172.18.127.245 icmp: echo request
13: 18:37:33.517826 10.10.10.11 > 172.18.127.245 icmp: echo request
14: 18:37:33.517826 10.10.10.11 > 172.18.127.245 icmp: echo request
15: 18:37:33.517932 10.10.10.11 > 172.18.127.245 icmp: echo request
16: 18:37:33.517932 10.10.10.11 > 172.18.127.245 icmp: echo request
17: 18:37:33.522464 10.0.0.1 > 10.10.10.11 icmp: time exceeded in-transit
18: 18:37:33.522510 10.0.0.1 > 10.10.10.11 icmp: time exceeded in-transit
19: 18:37:33.522510 10.0.0.1 > 10.10.10.11 icmp: time exceeded in-transit
20: 18:37:33.522632 172.16.1.1 > 10.10.10.11 icmp: time exceeded in-transit
21: 18:37:33.522647 172.16.1.1 > 10.10.10.11 icmp: time exceeded in-transit
22: 18:37:33.522647 172.16.1.1 > 10.10.10.11 icmp: time exceeded in-transit
23: 18:37:33.523852 10.0.114.197 > 10.10.10.11 icmp: time exceeded in-transit
24: 18:37:33.523929 10.0.114.197 > 10.10.10.11 icmp: time exceeded in-transit
25: 18:37:33.523944 10.0.114.197 > 10.10.10.11 icmp: time exceeded in-transit
26: 18:37:33.524066 10.0.127.113 > 10.10.10.11 icmp: time exceeded in-transit
27: 18:37:33.524127 10.0.254.225 > 10.10.10.11 icmp: time exceeded in-transit
28: 18:37:33.524127 10.0.127.113 > 10.10.10.11 icmp: time exceeded in-transit
29: 18:37:33.524142 10.0.127.113 > 10.10.10.11 icmp: time exceeded in-transit
30: 18:37:33.526767 10.122.149.1 > 10.10.10.11 icmp: time exceeded in-transit
31: 18:37:33.526843 10.122.149.1 > 10.10.10.11 icmp: time exceeded in-transit
32: 18:37:33.526843 10.122.149.1 > 10.10.10.11 icmp: time exceeded in-transit
33: 18:37:33.527652 10.10.10.11 > 172.18.127.245 icmp: echo request
34: 18:37:33.527697 10.10.10.11 > 172.18.127.245 icmp: echo request
35: 18:37:33.527713 10.10.10.11 > 172.18.127.245 icmp: echo request
36: 18:37:33.527728 10.10.10.11 > 172.18.127.245 icmp: echo request
37: 18:37:33.527987 10.10.10.11 > 172.18.127.245 icmp: echo request
38: 18:37:33.528033 10.10.10.11 > 172.18.127.245 icmp: echo request
39: 18:37:33.528048 10.10.10.11 > 172.18.127.245 icmp: echo request
40: 18:37:33.528048 10.10.10.11 > 172.18.127.245 icmp: echo request
41: 18:37:33.528064 10.10.10.11 > 172.18.127.245 icmp: echo request
42: 18:37:33.528064 10.10.10.11 > 172.18.127.245 icmp: echo request
43: 18:37:33.528079 10.10.10.11 > 172.18.127.245 icmp: echo request
44: 18:37:33.528094 10.10.10.11 > 172.18.127.245 icmp: echo request
45: 18:37:33.528094 10.10.10.11 > 172.18.127.245 icmp: echo request
46: 18:37:33.532870 10.0.254.225 > 10.10.10.11 icmp: time exceeded in-transit
47: 18:37:33.532885 10.0.254.225 > 10.10.10.11 icmp: time exceeded in-transit
48: 18:37:33.533679 172.18.127.245 > 10.10.10.11 icmp: echo reply
49: 18:37:33.533694 172.18.127.245 > 10.10.10.11 icmp: echo reply
50: 18:37:33.533694 172.18.127.245 > 10.10.10.11 icmp: echo reply
51: 18:37:33.533694 172.18.127.245 > 10.10.10.11 icmp: echo reply
52: 18:37:33.533694 172.18.127.245 > 10.10.10.11 icmp: echo reply
53: 18:37:33.533724 172.18.127.245 > 10.10.10.11 icmp: echo reply
54: 18:37:33.533724 172.18.127.245 > 10.10.10.11 icmp: echo reply
55: 18:37:33.533724 172.18.127.245 > 10.10.10.11 icmp: echo reply
56: 18:37:33.533740 10.10.10.11 > 172.18.127.245 icmp: echo request
57: 18:37:33.533816 10.10.10.11 > 172.18.127.245 icmp: echo request
58: 18:37:33.533831 10.10.10.11 > 172.18.127.245 icmp: echo request
59: 18:37:33.537066 172.18.127.245 > 10.10.10.11 icmp: echo reply
60: 18:37:33.537081 172.18.127.245 > 10.10.10.11 icmp: echo reply
61: 18:37:33.537081 172.18.127.245 > 10.10.10.11 icmp: echo reply
62: 18:37:33.538500 172.18.127.245 > 10.10.10.11 icmp: echo reply
63: 18:37:33.538500 172.18.127.245 > 10.10.10.11 icmp: echo reply
64: 18:37:33.539217 172.18.127.245 > 10.10.10.11 icmp: echo reply
64 packets shown.
0 packets not shown due to performance limitations.
ヒント:Cisco Bug ID CSCvq79913。ICMPエラーパケットは、Null pdts_infoに対してドロップされます。ICMPのプレフィルタ(できればタイプ3と11のリターントラフィック)を使用してください。
関連情報
テクニカル サポートとドキュメント - Cisco Systems