如果我只能通过 s2s VPN 连接进行单向连接,则哪个子系统负责?

如果我只能通过 s2s VPN 连接进行单向连接,则哪个子系统负责?

我已经配置了以下 s2s VPN(在 pfSense 中)连接,该连接正常工作。

在此输入图像描述

不幸的是,我只能从客户端连接(ping、netcat、ssh)到服务器,但不能返回。

如果我可以正常ssh,那么说明防火墙不是问题,对吗?既然包裹是双向运输的?

如何通过命令行工具的手段来诊断问题?


我犯了一个错误,我无法向后进行 netcat。但当从服务器 ping 客户端时,我可以通过数据包捕获在客户端上看到 ping 流量。

另外,我确实添加了显式路线

route add -net 192.168.31.0/24 192.168.27.2 

在服务器上。


这是我在从服务器 ping 客户端 (.31.1) 或其网络对应项 (.31.155) 时在客户端上转储数据包时看到的内容

$ tcpdump -n -i ovpnc2 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ovpnc2, link-type NULL (BSD loopback), capture size 262144 bytes
20:04:44.123925 IP 192.168.27.1 > 192.168.31.1: ICMP echo request, id 14862, seq 0, length 64
20:04:45.133435 IP 192.168.27.1 > 192.168.31.1: ICMP echo request, id 14862, seq 1, length 64
20:04:46.146100 IP 192.168.27.1 > 192.168.31.1: ICMP echo request, id 14862, seq 2, length 64
20:04:49.664935 IP 192.168.27.1 > 192.168.31.155: ICMP echo request, id 1295, seq 0, length 64
20:04:50.663422 IP 192.168.27.1 > 192.168.31.155: ICMP echo request, id 1295, seq 1, length 64
20:04:51.679393 IP 192.168.27.1 > 192.168.31.155: ICMP echo request, id 1295, seq 2, length 64
20:04:52.688367 IP 192.168.27.1 > 192.168.31.155: ICMP echo request, id 1295, seq 3, length 64

显然,客户端看到了 ping 数据包,但没有响应,对吗?

答案1

防火墙当然可以通过仅以一种方式传递设置了 SYN 标志但未设置 ACK 标志的 TCP 数据包来控制建立 TCP 连接的方向。

您可以正常使用 SSH 的事实仅表明数据包根本没有 SYN 标志或者同时设置了 SYN 和 ACK 标志两个方向都允许。要建立 TCP 连接,系统必须发送设置了 TCP SYN 标志且未设置 ACK 标志的数据包,防火墙可以轻松地将这些数据包与其他数据包区分开。

Ping 是 ICMP 数据包,而不是 TCP 数据包,因此防火墙可以轻松地为它们设置不同的规则。此外,防火墙可以轻松地为“ping 请求”设置一条规则,为“ping 响应”设置另一条规则。

相关内容