首先要去的是包捕获菜单上 GUI ,在那里你可以管理过滤器,添加捕获阶段,并轻松下载捕获。
在我们开始之前,有几件事你应该知道:
- 四个过滤器可以加各种属性。
- 数据包捕获基于会话,因此单个筛选器能够捕获客户端 2 服务器和服务器 2 客户端。
- 数据包捕获上 dataplane vs 上 (这就解释了下一个项目符号) 的接口。
- 预分析匹配是一种功能,可以捕获所有的文件,他们处理引擎上的 dataplane,可以帮助解决的问题,引擎可能不会正确接受入站的数据包运行之前。 此选项应仅在支持人员指示且在一天中的低音量时间使用,因为它将捕获所有 内容。
- 启用过滤后,新的会话被标记为过滤,并且可被捕获,但现有会话没有被过滤和可能需要重新启动,以便能够捕获它们。
- 无法捕获已卸载的会话,因此卸载可能需要暂时禁用。 卸载的会话将在显示会话详细信息中显示"第 7 层 处理:已完成 "。 请注意,这可能会导致性能影响 ,由于匹配的数据包正在处理 CPU 。 在维护窗口期间运行此窗口,并在需要时获得支持帮助。
这是很多要记住的,但这一切都将是有道理的后,你已经尝试了你的手在各种协议的几个包捕获, I 承诺!
让我们来添加几个筛选器:
过滤器1和3是我的实际过滤器: I 想要检查连接从我的客户端口在 IP 192.168.0.34 HTTP 在端口80 TCP 到198.51.100.97和 SSH 端口22 TCP 到198.51.100.1连接
过滤器 2 和 4 是我的"备份"过滤器: I 前面提到的数据包捕获是会话感知的,但以防上游返回的数据包发生某些情况,导致它无法与我的 NAT 规则匹配(可能是上游设备对源端口进行管理或对序列号执行一些奇怪的操作), I 通常设置一个返回规则来捕获任何因无法匹配而掉落的杂乱包。
注意:确保过滤器尽可能精确。 切勿运行与整个子网匹配的过滤器,如 192.168.0.0/16 或 0.0.0.0/0,因为这可能会导致性能影响和中断。
如果我们现在将过滤按钮切换到 ON ,过滤器将应用于任何符合标准的新会话:
A 检查过滤器是否工作的简单方法是检查如果启动新会话,则全球计数器是否在增加。
从 CLI , I 执行此命令:
> show counter global filter delta yes packet-filter yes
Global counters:
Elapsed time since last sampling: 2.647 seconds
--------------------------------------------------------------------------------
Total counters shown: 0
--------------------------------------------------------------------------------
并没有计数器显示。
- "delta Yes"表示 I 要查看自上次 I 执行此命令以来增量的计数器。
- "数据包过滤器是"表示 I 只想要查看与我的筛选器匹配的全球计数器。
如果 I 现在刷新浏览器并再次执行命令:
> show counter global filter packet-filter yes delta yes
Global counters:
Elapsed time since last sampling: 2.630 seconds
name value rate severity category aspect description
--------------------------------------------------------------------------------
pkt_sent 22 8 info packet pktproc Packets transmitted
pkt_outstanding 22 8 info packet pktproc Outstanding packet to be transmitted
session_allocated 4 1 info session resource Sessions allocated
session_installed 4 1 info session resource Sessions installed
appid_proc 2 0 info appid pktproc The number of packets processed by Application identification
appid_use_dfa_1 2 0 info appid pktproc The number of packets using the second DFA table
nat_dynamic_port_xlat 4 1 info nat resource The total number of dynamic_ip_port NAT translate called
dfa_sw 8 3 info dfa pktproc The total number of dfa match using software
ctd_sml_opcode_set_file_type 1 0 info ctd pktproc sml opcode set file type
aho_sw 5 1 info aho pktproc The total usage of software for AHO
ctd_pkt_slowpath 4 1 info ctd pktproc Packets processed by slowpath
--------------------------------------------------------------------------------
Total counters shown: 11
--------------------------------------------------------------------------------
你会看到有一堆的计数器。 I在本文底部添加了有关全球计数器的更多信息的链接,我们将在未来的节目中对它们进行更多报道。 但现在,只要有计数器,我们应该是好去。
下一步你要配置阶段 — — 有 4:
- 丢弃 阶段是丢弃数据包的地方。 原因可能有所不同,对于这一部分,全球计数器可能有助于确定下降是否是由于 policy 否认、检测到的威胁或其他原因。
- 接收 阶段捕获数据包,因为它们进入 firewall 之前,他们进入 firewall 发动机。 NAT配置时,这些数据包将预先 NAT 。
- 传输 阶段捕获数据包如何从发动机中退出 firewall 。 如果 NAT 配置,这些将是后 NAT 。
- firewall 阶段捕获阶段中的数据包 firewall 。
每一个阶段,你可以指定输出文件的名称和设置一个最大的数据包或字节计数:
当设置所有所需阶段时,您可以将捕获按钮切换到 ON (或者您可以使用 CLI )清除与指定筛选器匹配的现有会话。 这是要确保自启用筛选器之前以来,会话没有处于活动状态。 然后使用捕获命令开始捕获,如下所示。
> show session all => Note down the session number matching the configured filters.
> clear session id <id#> => This is to clear any existing session that matches the filters configured.
Example:
> show session all
--------------------------------------------------------------------------------
ID Application State Type Flag Src[Sport]/Zone/Proto (translated IP[Port])
Vsys Dst[Dport]/Zone (translated IP[Port])
--------------------------------------------------------------------------------
27240 web-browsing ACTIVE FLOW NS 192.168.0.34[61003]/trust/6 (198.51.100.230[31047])
vsys1 198.51.100.97[80]/ISP1 (198.51.100.97[80])
....(output omitted)....
> clear session id 27240
session 27240 cleared
> debug dataplane packet-diag set capture on
Packet capture is enabled
你现在可以启动你想要捕获会话。 若要验证是否会话已启动,请使用显示会话命令:
> show session all
--------------------------------------------------------------------------------
ID Application State Type Flag Src[Sport]/Zone/Proto (translated IP[Port])
Vsys Dst[Dport]/Zone (translated IP[Port])
--------------------------------------------------------------------------------
32637 web-browsing ACTIVE FLOW NS 192.168.0.34[61903]/trust/6 (198.51.100.230[31547])
vsys1 198.51.100.97[80]/ISP1 (198.51.100.97[80])
32635 ssh ACTIVE FLOW NS 192.168.0.34[61901]/trust/6 (198.51.100.230[52812])
vsys1 198.51.100.1[22]/ISP1 (198.51.100.1[22])
完成后,可以通过将按钮拖回 OFF 位置或使用调试命令来关闭捕获:
> debug dataplane packet-diag set capture off
Packet capture is disabled
> debug dataplane packet-diag clear filter-marked-session all
Unmark All sessions in packet debug
注意:不要忘记在调试后关闭数据包捕获。 如果不这样做,可能会对绩效 CPU 问题征税,并可能导致绩效问题。
现在将有捕获的文件可供下载,您可以使用 Wireshark 进行分析:
你下载的 pcaps 之后,您可能需要合并传输和接收文件在一起:
- 接收阶段将有客户端的私人 IP 网络服务器公众 IP ,和返回数据包从Web服务器公共 IP 到 firewall 外部 IP (接收阶段是预 NAT )。
- 传输阶段将有 firewall 外部 IP (客户 NAT 端)到服务器公共 IP ,并返回公众 IP 到客户端私人 IP 。
当您尝试跟踪流时,这可能会有点混乱 TCP ,因此您需要注意这两个文件之间的这一重要差异。
这两个阶段将确保您能够验证是否 NAT 应用得当。 您还可以查看从客户端和服务器角度发送和接收的数据包之间是否有任何区别。
合并的结果应该看起来像这样,并允许您比较包每包送出和收到了什么。
A 几篇有用的文章,帮助您更好地了解数据包如何流经系统:
全局计数器的意义是什么?
数据包流序列中 PAN-OS
管理平面
要解决管理平面的连接问题,内置 tcpdump 命令可以用于捕捉有用的信息:
admin@myNGFW> tcpdump filter "port 53"
Press Ctrl-C to stop capturing
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
^C
16 packets captured
32 packets received by filter
0 packets dropped by kernel
The resulting output is stored in a mgmt.pcap file on the management plane:
admin@myNGFW> view-pcap mgmt-pcap mgmt.pcap
15:24:07.512889 IP 10.0.0.1.36606 > 10.0.0.98.domain: 49243+ PTR? 0.0.0.10.in-addr.arpa. (41)
15:24:07.513106 IP 10.0.0.98.domain > 10.0.0.1.36606: 49243 NXDomain 0/1/0 (100)
15:24:17.196515 IP 10.0.0.1.45455 > 10.0.0.98.domain: 3126+ PTR? 0.0.0.10.in-addr.arpa. (41)
15:24:17.196762 IP 10.0.0.98.domain > 10.0.0.1.45455: 3126 NXDomain 0/1/0 (100)
15:24:31.126186 IP 10.0.0.1.57230 > 10.0.0.98.domain: 2978+ A? panos.wildfire.paloaltonetworks.com. (53)
15:24:31.126196 IP 10.0.0.1.57230 > 10.0.0.98.domain: 55173+ AAAA? panos.wildfire.paloaltonetworks.com. (53)
15:24:31.161436 IP 10.0.0.98.domain > 10.0.0.1.57230: 2978 4/0/0[|domain]
15:24:31.194586 IP 10.0.0.98.domain > 10.0.0.1.57230: 55173 2/0/0[|domain]
15:25:56.746679 IP 10.0.0.1.46048 > 10.0.0.98.domain: 43532+ A? wildfire.paloaltonetworks.com. (47)
15:25:56.746689 IP 10.0.0.1.46048 > 10.0.0.98.domain: 16653+ AAAA? wildfire.paloaltonetworks.com. (47)
15:25:56.794940 IP 10.0.0.98.domain > 10.0.0.1.46048: 43532 1/0/0 (63)
15:25:56.795553 IP 10.0.0.98.domain > 10.0.0.1.46048: 16653 0/1/0 (131)
15:25:59.038459 IP 10.0.0.1.51804 > 10.0.0.98.domain: 23806+ A? panos.wildfire.paloaltonetworks.com. (53)
15:25:59.038471 IP 10.0.0.1.51804 > 10.0.0.98.domain: 31471+ AAAA? panos.wildfire.paloaltonetworks.com. (53)
15:25:59.071431 IP 10.0.0.98.domain > 10.0.0.1.51804: 23806 4/0/0[|domain]
15:25:59.113552 IP 10.0.0.98.domain > 10.0.0.1.51804: 31471 2/0/0[|domain]
请查看本文以获取有关管理界面上的"如何数据包捕获"(tcpdump)的其他信息