소개
이 문서에서는 Threat Service Policy를 통해 FTD(Firepower Threat Defense)를 통한 traceroute를 허용하는 컨피그레이션에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- FMC(Firepower Management Center)
- FTD(Firepower Threat Defense)
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- 이 문서는 모든 Firepower 플랫폼에 적용됩니다.
- 소프트웨어 버전 6.4.0을 실행하는 Cisco Firepower 위협 방어
- 소프트웨어 버전 6.4.0을 실행하는 Cisco Firepower Management Center Virtual
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
Traceroute - 패킷이 목적지로 이동하는 경로를 결정하는 데 도움이 됩니다. traceroute는 UDP(Unified Data Platform) 패킷을 잘못된 포트의 대상으로 전송하는 방식으로 작동합니다. 포트가 유효하지 않기 때문에, 목적지로 가는 동안 라우터는 ICMP(Internet Control Message Protocol) 시간 초과 메시지로 응답하고 ASA(Adaptive Security Appliance)에 오류를 보고합니다.
traceroute에는 전송된 각 프로브의 결과가 표시됩니다. 각 출력 행은 증가하는 순서의 TTL(Time to Live) 값에 해당합니다. 이 표에서는 출력 기호에 대해 설명합니다.
출력 기호 |
설명 |
* |
시간 초과 기간 내에 프로브에 대한 응답을 받지 못했습니다. |
nn msec |
각 노드에 대해 지정된 프로브 수에 대한 왕복 시간(밀리초)입니다. |
!네트워킹 |
ICMP 네트워크에 연결할 수 없습니다. |
!H |
ICMP 호스트에 연결할 수 없습니다. |
!P |
ICMP에 연결할 수 없습니다. |
!A |
관리상 ICMP가 금지되었습니다. |
? |
알 수 없는 ICMP 오류입니다. |
기본적으로 ASA는 traceroute에 홉으로 나타나지 않습니다. 이를 표시하려면 ASA를 통과하는 패킷에서 TTL(Time-To-Live)을 줄이고 ICMP 도달 불가 메시지의 속도 제한을 늘립니다.
주의: TTL이 1인 패킷은 삭제되지만, 연결에 TTL이 더 큰 패킷이 포함될 수 있다는 가정 하에 세션에 대한 연결이 열립니다. OSPF hello 패킷과 같은 일부 패킷은 TTL = 1로 전송되므로 TTL(Time To Live)이 감소하면 예기치 않은 결과가 발생할 수 있습니다. 트래픽 클래스를 정의할 때는 이러한 사항을 염두에 두어야 합니다.
구성
1단계. traceroute 보고를 활성화해야 하는 트래픽 클래스를 정의하는 확장 ACL을 생성합니다.
FMC GUI에 로그인하고 Objects(개체) > Object Management(개체 관리) > Access List(액세스 목록)로 이동합니다. 목차에서 Extended를 선택하고 새 Extended Access List를 추가합니다.Traceroute_ACL 아래에 객체의 이름을 입력하고 이미지에 표시된 대로 ICMP 유형 3 및 11을 허용하는 규칙을 추가합니다.
2단계. TTL(time-to-live) 값을 줄이는 서비스 정책 규칙을 구성합니다.
Policies(정책) > Access Control(액세스 제어)로 이동한 다음 디바이스에 할당된 정책을 수정합니다. Advanced(고급) 탭에서 Threat Defense Service Policy(위협 방어 서비스 정책)를 편집한 다음 Add Rule(규칙 추가) 탭에서 새 규칙을 추가한 다음 Global(전역) 확인란을 선택하여 전역으로 적용하고 Next(다음)를 클릭합니다.
Traffic Flow(트래픽 플로우) > Extended Access List(확장 액세스 목록)로 이동한 다음 이전 단계에서 만든 드롭다운 메뉴에서 Extended Access List Object(확장 액세스 목록 개체)를 선택합니다. 이제 다음을 클릭합니다.
Enable Decrement TTL(TTL 감소 활성화) 확인란을 선택하고 다른 연결 옵션을 수정합니다(선택 사항). 이제 Finish(마침)를 클릭하여 규칙을 추가한 다음 OK(확인)를 클릭하고 다음 그림과 같이 Threat defense 서비스 정책의 변경 사항을 저장합니다.
이전 단계가 완료되면 액세스 제어 정책을 저장합니다.
3단계. 내부 및 외부에서 ICMP를 허용하고 속도 제한을 50(선택 사항)으로 늘립니다.
Devices(디바이스) > Platform Settings(플랫폼 설정)로 이동한 다음 Edit(편집) 또는 Create a new Firepower Threat Defense 플랫폼 설정 정책을 수정하고 디바이스에 연결합니다. 콘텐츠 테이블에서 ICMP를 선택하고 Rate Limit(속도 제한)을 늘립니다. 예를 들어, 50까지(Burst Size(버스트 크기)를 무시할 수 있음)를 설정한 다음 Save(저장)를 클릭하고 이미지에 표시된 대로 Deploy the Policy to the device(디바이스에 정책 구축)로 진행합니다.
주의: ICMP Destination Unreachable(Type 3) 및 ICMP Time Exceeded(Type 11)가 ACL 정책에서 Outside에서 Inside로 또는 Pre-filter 정책에서 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 인그레스 및 이그레스 인터페이스에서 캡처하여 흥미로운 트래픽으로 문제를 더 자세히 해결할 수 있습니다.
Lina의 패킷 캡처는 traceroute가 수행되는 동안 대상 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 버그 ID CSCvq79913. ICMP 오류 패킷은 Null pdts_info에 대해 삭제됩니다. ICMP의 경우 프리필터를 사용하고, 3 및 11 반환 트래픽의 경우 프리필터를 사용하는 것이 좋습니다.
관련 정보
기술 지원 및 문서 − Cisco Systems