前言:
部署FTD之后,如果您的网络出现任何连通性问题,首先要做的就是验证配置是否正确。但是,如果无法确定任何配置错误,则可能需要捕获实时流量并分析它们。本文将讨论使用FTD内置工具捕获流量的过程。
Chapter 1 - 流量捕获的要点
一. 当Firepower阻止从入向接口发往出向接口的数据包时,这个行为实际上是由防火墙引擎或Firepower引擎执行的。因此,如果两个主机在通过FTD发送流量时遇到任何连通性问题时,则必须分析来自两个引擎的数据包,以确定问题的根本原因。
下图展示了穿越FTD设备的数据流,防火墙引擎从入接口接收到一个数据包,并将其重定向到Firepower引擎。
二. 在考虑捕获流量时,您需要确保以下几点:
Firepower系统主要不是随时捕获实时流量,除了控制流量和检测流量外,Firepower还支持捕获实时流量仅仅用于排错,不推荐长时间使用,来捕获流量。
在生产环境中捕获实时流量会降低系统性能。
不要在Console 会话中希纳是捕获的数据包,推荐把捕获的数据包重定向到一个文件中,然后用第三方抓包软件打开。
Chapter 2 - 配置Firepower系统进行流量分析
根据您希望探测的位置,流量的捕获过程会有所不同,接下来,我们会介绍从以下硬件和软件组件上捕获数据包的任务:
- Firepower引擎
- 防火墙引擎
- FMC
下图,展示了本文将使用到的流量捕获场景使用的实验拓扑。
一.从Firepower引擎捕获流量
从Firepower引擎捕获流量步骤如下:
登陆到FTD CLI中
在Shell上执行命令 capture-traffic
当系统提示选择一个域时,选择“Router“域来捕获数据接口的流量,(br1域捕获管理接口的流量)。
> capture-traffic
Please choose domain to capture traffic from:
0 - br1
1 - Router
Selection? 1
Please specify tcpdump options desired.
(or enter '?' for a list of supported options)
Options:
当FTD提示指定TCPdump时,可以使用下表中的选项来确定你的选择,如果您没有提供任何选项,默认也 可以不适用任何过滤器来捕获流量
在您添加了选项后,点击回车键开始捕获。可随时点击Ctrl+C组合键结束。
a.tcpdump提供了大量选项,您可以使用这些选项来管理捕获到的数据包,还提供了BPF过滤参数,您可 以使用BPF控制并提升数据包的显示。具体参数如表1,表2所示:
表1:TCP dump选项
选项 | 描述 |
---|---|
-c | 捕获到一定数量的数据包后停止 |
-e | 捕获中显示以太网头部 |
-n | 不解析主机名或端口名称 |
-s | 定义捕获数据包的大小 |
-v | 显示额外数据包数据 |
-w | 在文件中保存捕获的数据包,而不是在Console终端上显示 |
-x | 以16进制显示数据包内容 |
表2:BPF选项
选项 | 用途 |
---|---|
host.net | 分别用来过滤去往和来自特定主机或整个网络的流量 |
port,portrange | 分别用来过滤去往和来自特定端口或特定端口范围的流量 |
src,dst | 选择流量的方向,源或目的 |
and.or,not | 把具体的条件结合在一起或独立起来 |
vlan | 捕获与指定vlan相关的流量 |
使用tcpdump选项捕获流量
! To capture the 5 HTTP transactions between a web server and a host with IP address
192.168.1.2:
Options: -n -c 5 host 192.168.1.2 and port 80
03:42:23.479970 IP 192.168.1.2.44694 > 172.16.1.2.80: Flags [S], seq 2622260089, win
29200, options [mss 1380,sackOK,TS val 2174057 ecr 0,nop,wscale 7],
Technet24
length 0
03:42:23.479970 IP 172.16.1.2.80 > 192.168.1.2.44694: Flags [S.], seq 2877405527, ack
2622260090, win 28960, options [mss 1380,sackOK,TS val 1270689 ecr 2174057,nop,wscale
7], length 0
03:42:23.479970 IP 192.168.1.2.44694 > 172.16.1.2.80: Flags [.], ack 1, win 229, options
[nop,nop,TS val 2174058 ecr 1270689], length 0
03:42:23.479970 IP 192.168.1.2.44694 > 172.16.1.2.80: Flags [P.], ack 1, win 229, options
[nop,nop,TS val 2174058 ecr 1270689], length 436
03:42:23.479970 IP 172.16.1.2.80 > 192.168.1.2.44694: Flags [.], ack 437, win 235, options
[nop,nop,TS val 1270689 ecr 2174058], length 0
b.下载Firepower引擎生产的.pcap文件
除了使用Console终端查看以外,还可以将数据包保存到一个.pcap文件中,然后通过数据包分析软件查看 次文件,进一步分析。如下所示,捕获去往和去往192.168.1.2的流量,在捕获数据包时,系统会把这些数 据包保存到traffic.pcap文件中。
Options: -w traffic.pcap -s 1518 host 192.168.1.2
Caught interrupt signal
Exiting.
>
! The following command confirms that the pcap file is created and stored on the disk.
> file list
Feb 15 05:03 886 /traffic.pcap
捕获到流量且创建了.pcap文件后,可以通过GUI或CLI下载整个文件(本文以FMC为例)。
c.FTD没有自己的GUI,但可以使用FMC的GUI下载文件整个文件
步骤1:登陆FMC的GUI,打开System > Health > Monitor ,这时会显示出Appliance Status Summary(设备状态汇总)图标
步骤2:找到捕获流量的FTD设备,如果没有看到设备,可以展开安全状态旁的箭头图标,如下图所示:
步骤3:找到相应FTD设备后,单击设备名称,会出现这台FTD设备的Health Monitor(健康监控)页面。
步骤4:单击Advanced Troubleshooting(高级排错)按钮,出现如图4,图5,界面,下载文件。
二.从防火墙引擎捕获流量
前面我们介绍了如何从Firepower引擎捕获流量,但您无法在防火墙引擎上使用相同的命令,接下来我们接入如何从防火墙引擎捕获流量
步骤1:确认您希望捕获流量的接口名称。本例我们以GE1/1为例,捕获次接口流量。如下图所示:
步骤2:使用如下命令捕获接口流量
> capture icmp_traffic interface INSIDE_INTERFACE match icmp host 192.168.1.2 any
表示从一台主机(192.168.1.2)捕获发往任意目的地的ICMP流量。“ icmp_traffic“capture名称,”NSIDE_INTERFACE“为接口名称。
下图,中清晰展示了从防火墙引擎捕获流量和从Firepower捕获流量的区别。
步骤3:执行一些穿越FTD的ping测试,使用show capture进行查看捕获的流量。
> show capture
capture icmp_traffic type raw-data interface INSIDE_INTERFACE [Capturing - 1140 bytes]
match icmp host 192.168.1.2 any
>
下载防火墙引擎生产的.pacp文件的方式同Firepower引擎方式一样
三.从FMC捕获流量
要想排查FMC和FTD之间的复杂通信问题,其中一项重要排错工具是对管理流量进行分析。
步骤1:在FMC的管理接口使用tcpdump命令来捕获流量。也可以使用BPF语法,以及Firepower引擎上应用 的类似过滤选项。如下所示,展示了FTD和FMC之间的ICMP流量捕获内容,host选项限制设备 只 捕获从特定主机10.1.1.2发来的流量。该主机位FTD设备,选项-i eth0允许tcpdump工具只侦听
eth0管理接口
admin@FMC:~$ sudo tcpdump -i eth0 host 10.1.1.2
Password:
HS_PACKET_BUFFER_SIZE is set to 4.
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes Technet24
11:11:52.121238 IP 10.1.1.2 > FMC: ICMP echo request, id 16625, seq 1, length 64
11:11:52.121293 IP FMC > 10.1.1.2: ICMP echo reply, id 16625, seq 1, length 64
11:11:53.121786 IP 10.1.1.2 > FMC: ICMP echo request, id 16625, seq 2, length 64
11:11:53.121856 IP FMC > 10.1.1.2: ICMP echo reply, id 16625, seq 2, length 64
^C
4 packets captured
4 packets received by filter
0 packets dropped by kernel
admin@FMC:~$
步骤2:下载FMC生成的.pcap文件。为了使用第三方软件分析捕获的流量,需要把流量保存为.pcap文件,然 后把文件传输到本地计算机。如下所示,捕获了10个数据包,并将文件保存在/var/common/路径 下。
admin@FMC:~$ sudo tcpdump -i eth0 host 10.1.1.2 -w /var/common/fmc_traffic.pcap
HS_PACKET_BUFFER_SIZE is set to 4.
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
^C
10 packets captured
10 packets received by filter
0 packets dropped by kernel
admin@FMC:~$
捕获的流量文件,必须存储在FMC上的/var/common目录下,FMC才允许直接从GUI中下载这些文件。文件下载方法同从Firepower引擎捕获流量下载方法一致。