Error:
An unexpected error occurred. Please click Reload to try again.
Error:
An unexpected error occurred. Please click Reload to try again.
入门教程: 网络数据包捕获 - Knowledge Base - Palo Alto Networks

入门教程: 网络数据包捕获

1042927
Created On 09/25/18 19:02 PM - Last Modified 01/18/24 15:51 PM


Symptom


让我修复此问题,您︰ 数据包捕获 — —

A 管理员在完成一个安全杰作几分钟后遇到的典型情况 policy 是,为什么自安装新的网络功能以来,一些晦涩难懂的应用程序表现得很有趣。 这是开始进行故障排除的地方。

在过去的分期付款中,我们检查了 如何配置您的几个方面 firewall ,并从头开始设置它。

管理员可使用的更高级的工具之一是执行数据包捕获和查看会话计数器的能力。

注意:本文中讨论的一些细节将对性能产生影响。 如果您不确定,请与 Palo Alto 支持个人合作,在维护窗口期间捕获数据包。



Environment


  • 任何 PAN-OS 。
  • 帕洛阿尔托 Firewall .


Resolution


首先要去的是包捕获菜单上 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 ,过滤器将应用于任何符合标准的新会话:

在配置筛选下,筛选现在切换到 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 。

 

每一个阶段,你可以指定输出文件的名称和设置一个最大的数据包或字节计数:

文件名设置为 drop.pcap 的数据包捕获阶段

 

配置捕获,生成 3 个文件(接收、传输、丢弃)

 

当设置所有所需阶段时,您可以将捕获按钮切换到 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 进行分析:

配置捕获,生成 3 个文件(接收.pcap 和传输.pcap)

 

你下载的 pcaps 之后,您可能需要合并传输和接收文件在一起:

  • 接收阶段将有客户端的私人 IP 网络服务器公众 IP ,和返回数据包从Web服务器公共 IP 到 firewall 外部 IP (接收阶段是预 NAT )。
  • 传输阶段将有 firewall 外部 IP (客户 NAT 端)到服务器公共 IP ,并返回公众 IP 到客户端私人 IP 。

当您尝试跟踪流时,这可能会有点混乱 TCP ,因此您需要注意这两个文件之间的这一重要差异。

接收.pcap数据包捕获在线鲨鱼中打开,表示源地址和目的地 IP 地址。

传输.pcap数据包捕获在线鲨鱼中打开,表示源地址和目的地 IP 地址。

 

这两个阶段将确保您能够验证是否 NAT 应用得当。 您还可以查看从客户端和服务器角度发送和接收的数据包之间是否有任何区别。

 

合并的结果应该看起来像这样,并允许您比较包每包送出和收到了什么。

接收.pcap 和传输.pcap 在 WireShark 视图中一起表示

 

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)的其他信息

 


 



Additional Information


1. 为了控制数据包捕获文件大小,单个文件限制为 200mb,一旦超过大小,将自动创建第二个文件,然后两个文件将充当一个环形缓冲区,其中主 pcap 文件用于写入活动捕获数据,并将 *.pcap.1 文件用作缓冲区。 一旦主 pcap 再次到达它的容量, 就会丢弃该缓冲区文件, 将主文件重命名为 *. pcap. 1, 并启动一个新的主文件。 更多信息: 数据包捕获文件大小的限制是什么 PAN-OS ?

2. 对于小型捕获,将所有内容捕获到单个文件中可能很方便,因此可以将每个阶段捕获到同一个文件名。 请注意上述尺寸限制, 以及每个阶段的能见度下降。 建议的方法是每个阶段始终具有单个文件。

由于 PAN-OS 8.1.0,可以添加过滤器的来源和网络子网,这是只能通过CLI和 NOT WebGU:I

admin@firewall> debug dataplane packet-diag set filter match 
+ destination           Destination IP address
+ destination-netmask   Destination netmask              <<<< new option for network
+ destination-port      Destination port
+ ingress-interface     Ingress traffic interface name
+ ipv6-only             IPv6 packet only
+ lacp                  LACP packet
+ non-ip                Non-IP packet
+ protocol              IP protocol value
+ source                Source IP address
+ source-netmask        Source netmask                     <<<< new option for network
+ source-port           Source port
  |                     Pipe through a command
  <Enter>               Finish input
 
admin@firewall> debug dataplane packet-diag set filter match source 192.168.1.0 source-netmask 24

admin@firewall> debug dataplane packet-diag set filter match destination 192.168.2.0 destination-netmask 24

admin@firewall> debug dataplane packet-diag show setting 

DP dp0:

--------------------------------------------------------------------------------
Packet diagnosis setting:
--------------------------------------------------------------------------------
Packet filter
  Enabled:                   no
  Match pre-parsed packet:   no            
  Index 1: 192.168.1.0/24[0]->0.0.0.0/0[0], proto 0 <<<<<<<<< network is captured /24
           ingress-interface any, egress-interface any, exclude non-IP
  Index 2: 0.0.0.0/0[0]->192.168.2.0/24[0], proto 0 <<<<<<<<< network is captured /24
           ingress-interface any, egress-interface any, exclude non-IP
--------------------------------------------------------------------------------
 

注意 在启用全网络捕获时要小心,可能会产生大量数据包,从而导致高数据飞机 CPU 消耗和可能的流量影响。



Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000ClTJCA0&lang=zh_CN&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language