我已经配置了以下正常工作的 s2s VPN(在 pfSense 中)连接。
不幸的是,我只能从客户端连接(ping、netcat、ssh)到服务器,但不能返回。
如果能正常ssh,就说明不是防火墙的问题吧?因为包裹是双向的?
如何通过命令行工具的方式诊断问题?
我犯了一个错误,我不能 netcat 向后。但是当从服务器固定它时,我可以在客户端上看到带有数据包捕获的 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 数据包,但没有响应,对吗?
防火墙当然可以通过仅以一种方式传递设置了 SYN 标志但未设置 ACK 标志的 TCP 数据包来控制可以建立 TCP 连接的方向。
您可以正常使用 SSH 的事实仅表明完全没有 SYN 标志或同时设置了 SYN 和 ACK 标志的数据包在两个方向上都是允许的。要建立 TCP 连接,系统必须发送一个设置了 TCP SYN 标志且未设置 ACK 标志的数据包,防火墙可以轻松地将这些数据包与其他数据包区分开来。
Ping 是 ICMP 数据包,而不是 TCP 数据包,因此防火墙很容易为它们设置不同的规则。此外,防火墙可以很容易地拥有一个“ping 请求”规则和一个不同的“ping 响应”规则。