VPN cisco ASA tcp 连接问题 -pcap inside

网络工程 思科 思科 通讯协议 包分析
2021-07-14 18:56:23

我已经在我的公司和客户之间建立了 VPN。数据包捕获显示客户收到一个数据包,然后在它击中我们的互联网防火墙时发回一个 ACK​​,这是连接将进行的范围。然后这个过程会重复几次,结果相同。

数据包捕获在出口过滤器上显示了所有这些,这正常吗?我在入口过滤器上看不到任何东西。

10.10.10.10.56638 > 56.132.112.29.3205: S 74549533:74549533(0) win 5840 <mss 1380,sackOK,timestamp 2566921403 0,nop,wscale7>

56.132.112.29.3205 > 10.10.10.10.56638: S712870551(0) ack 74549534 win 16384 <mss 1380,nop,wscale 0, nop,nop,timestamp 0 0,nop,nop,sackOK>

56.132.112.29.3205 > 10.10.10.10.56638: S712870551(0) ack 74549534 win 16384 <mss 1380,nop,wscale 0, nop,nop,timestamp 0 0,nop,nop,sackOK>

10.10.10.10.56638 > 56.132.112.29.3205: S 74549533:74549533(0) win 5840 <mss 1380,sackOK,timestamp 2566921403 0,nop,wscale7>

然后我决定在下一个防火墙上抓包,发现结果看不懂:

入口:

10.10.10.10.55640 > 56.132.112.29.3205: S 155629610:155629610(0) win 5840 <mss 1380, sackOK, timestamp 2568128672 0, nop, wscale 7>

10.10.10.10.55640 > 56.132.112.29.3205: S 155629610:155629610(0) win 5840 <mss 1380, sackOK, timestamp 2568128672 0, nop, wscale 7>

出口:

10.10.10.10.55640 > 56.132.112.29.3205: S 3671255214:3671255214(0) win 5840 <mss 1460, sackOK, timestamp 2568128672 0, nop, wscale 7>

10.10.10.10.55640 > 56.132.112.29.3205: S 3671255214:3671255214(0) win 5840 <mss 1460, sackOK, timestamp 2568128672 0, nop, wscale 7>

所以当然出口很好,这些是离开我们网络到互联网防火墙的数据包。入口过滤器是什么意思?对我来说,它说一个数据包已经到达我的 internetdmz 并且匹配离开的数据包关于源和目标 IP。这对我来说没有意义。谁能解释这是为什么?

2个回答

理想情况下,这些东西必须匹配才能正确传递 VPN 流量:

  • ACL
  • NAT
  • ISAKMP(或第一阶段)
  • IPSEC(或第 2 阶段)

您所看到的可能是一侧正在正确加密流量,而另一侧则没有。这就是为什么您的 ACK 无法通过防火墙的原因。当防火墙在外部接口上获取数据包时,它不知道如何处理它。通常,如果您的安全关联已形成但流量没有流动,则归结为 ACL 和/或 NAT。

检查阶段 1:

  • crypto isa sa(在这里你应该看到“状态活动”)

要检查第 2 阶段:

  • crypto ips sa(查找数据包接收和发送)

检查你的 nat 和 acl:

  • tcp 中的 packet-tracer 输入YourSRCIP SRCport(补上,无所谓) REMOTEIP REMOTEPORT

在 8.4 ASA 软件中,您拥有真实 IP,这意味着您的所有流量都与机器的 LAN IP 打交道。所以数据包跟踪器会喜欢这个考虑

  • 您的源 IP:10.10.10.10
  • 远程局域网 IP:172.20.10.10

  • tcp 内的数据包跟踪器输入 10.10.10.10 4444 172.20.10.10 80

这将模拟从您的内部接口到 172.20.10.10 的数据包。您应该能够看到每个步骤,从 ACL 检查到 NAT 检查,再到它是否真的命中外部接口上的加密映射以进行封装。

您还可以使用*查看隧道创建调试消息:

  • 调试加密 isa 130
  • 调试加密 ips 130

*小心生产防火墙上的调试消息。

它看起来像什么:

您的防火墙似乎没有从外部接口向内部获取数据包。这在您的顶部代码块中很明显,第 1 行和第 4 行是 tcp 重传,这意味着第 2 行和第 3 行,即对下一个数据包的请求,从未到达您的内部终端设备。同样在某些时候,我希望看到带有内部网络的 src 和 dst ip 的数据包,您帖子中的这些数据包都是 LAN 到 WAN IP。

这可能是因为远程端没有正确封装 vpn 流量,或者因为您的防火墙没有正确处理接收到的流量。

我怀疑您的客户终端设备是否正确接收了所有内容,但它的回复并未在回程中加密。这将导致返回流量与您的 NAT 语句不匹配。这基本上是一种 VPN 通信方式。

Cisco KB 有关于这些问题的更多信息:

http://www.cisco.com/c/en/us/support/docs/security/asa-5500-x-series-next-generation-firewalls/81824-common-ipsec-trouble.html

可能是策略不匹配,我想查看两个端点的配置,包括策略(阅读:有趣的流量访问列表)。

另外我会检查数据包是否在两端被封装和解封装:

# show crypto ipsec sa peer 1.2.3.4

和/或:

# show crypto ipsec sa peer 1.2.3.4 | inc pkts

您还可以查看数据包跟踪器告诉您的内容(ASA 内置命令行工具):

# packet-tracer input INSIDE tcp 10.10.10.10 55640 56.132.112.29 3205

但请注意,在对 VPN 进行故障排除时,只有当 VPN 隧道处于开启状态时,数据包跟踪器才会生成可靠的结果。如果在使用数据包跟踪器时隧道功能不全或配置不正确,您可能会得到不真实的结果。