在没有防火墙规则的情况下在路由器和防火墙之间丢弃数据包

网络工程 tcp 隧道 加强
2022-02-17 02:30:01

我有一个用户试图在他的家庭网络上访问他的公司网络资源。他能够访问 SMB 共享和其他资源,但无法在其网络中的任何计算机上访问其 AS400,并且无法在其家庭 WiFi 上的任何 iOS 设备上的 iOS 电子邮件应用程序上更新他的 Exchange 电子邮件。他可以通过 Outlook 应用程序访问他的电子邮件。他公司的另一个用户具有完全相同的设置,并且没有这些问题。

设置如下:

Mikrotik Hex(在客户家)-> Mikrotik CHR(用作隧道路由器,托管在我公司的 VM 服务器上)-> Fortigate Firewall(托管在我公司的服务器机架中)-> Mikrotik CCR(在客户的公司办公室)

上面的每个设备都使用 BGP 通过 IP 隧道连接,Fortigate 除外。它与 CHR 和 CCR 共享 Vlan,并使用 BGP。

用户可以毫无问题地从家里 ping 两台设备。

我已经在 Hex、Fortigate 和 CCR 上完成了数据包捕获。

我看到 Hex 获得了大部分必要的流量。对于 AS400,它首先通过端口 449,然后 TCP 连接完成,然后通过端口 8476,并且 TCP 连接永远不会完成。我的研究告诉我,端口 449 是托管 AS400 的 IBM 设备的服务器映射器,端口 8476 是登录验证服务。起初,我认为由于他没有从端口 8476 获得所有必需的 TCP 响应,因此存在验证问题,但我认为他会得到可以证实这一点的东西。对于他邮件应用程序上的 Exchange 电子邮件,我可以看到 iPhone 通过端口 443 进行访问,并确认它应该使用 HTTPS,但他没有得到 TLS 握手的最后一部分。他发送客户端问候,获取服务器问候,发送客户端握手和加密消息,但永远不会收到服务器握手/服务器完成消息。在这两个测试中,都有很多 TCP 重传、TCP Dup Acks 和 TCP Out of Orders。

我的下一个数据包捕获是在 Fortigate 和 CCR 上完成的。从 Fortigate 中,我注意到的第一件事是几乎为零的 TCP 重传、TCP Dup Acks 和 TCP 乱序。我看到与 TCP 连接数据包一样来回发送相同的数据包,但这几乎就像 Fortigate 正在丢弃额外的数据包。

公司办公室 Mikrotik CCR 上的最后一个数据包捕获显示,所有丢失的 Hex 数据包都在发送,并且 TCP 重传、TCP Dup Acks 和 TCP 乱序也在那里。起初,我的想法是有一个防火墙规则阻止了这个流量。因此,我查看了所有防火墙规则,包括在此连接域之外的规则,并且没有任何东西会丢弃此流量。然后我想,即使有防火墙规则丢弃了这个流量,它也应该把流量丢弃给没有这些问题的其他用户。

有没有人知道为什么这个流量没有返回或被防火墙丢弃?

1个回答

在 Fortigate GUI 上,转到Log & Report -> Forward Traffic您可能需要按源或目标(IP 地址)进行过滤。很可能,没有防火墙规则与数据包匹配并且它被丢弃(策略 0,隐式拒绝,结果“拒绝:违反策略”)。

或者,使用IPv4 Policy -> Policy lookup并指定源、目标、端口、协议并检查适用的策略。

如果有问题的数据包没有出现在日志中并且策略很好,您可以使用Network -> Packet Capture进行数据包级别的分析。如果那也没有显示任何内容,则远端没有发送数据包,您需要在那里检查。