![IPSec VPN 适用于 PING,但不适用于 SSH](https://linux22.com/image/753164/IPSec%20VPN%20%E9%80%82%E7%94%A8%E4%BA%8E%20PING%EF%BC%8C%E4%BD%86%E4%B8%8D%E9%80%82%E7%94%A8%E4%BA%8E%20SSH.png)
我已经使用虚拟机和 Openswan 在两个“站点”之间创建了 IPSec VPN 作为 IPSec 隧道。
我的配置:我创建了 3 个仅主机网络,每个“站点”一个,第三个用于连接 openswan 服务器(模拟通过 Internet 的连接)。Centos 7。
因此,就网络而言,我有: vboxnet0:192.168.56.0/24 - 第一个站点的网络 vboxnet1:192.168.57.0/24 - 第二个站点的网络 vboxnet2:192.168.58.0/24 - “互联网”
我有以下虚拟机: Openswan1:连接到 vboxnet0(IP 192.168.56.106)和 vboxnet2(IP 192.168.58.3) Openswan2:连接到 vboxnet1(IP 192.168.57.8)和 vboxnet2(IP 192.168.58.4) Server1:仅连接到 vboxnet0(IP 192.168.56.107)(这是第一个“站点”中的服务器) Server2:仅连接到 vboxnet1(IP 192.168.57.9)(这是第二个“站点”中的服务器)
我启用了 IPSec VPN Openswan,然后我就可以从 server1 ping server2,从 server2 ping server1,正如预期的那样。
为了更好地理解,当我尝试从 server1 转到 server2 时创建的路径是:server1 ==(vboxnet0)==> openswan1 ==(vboxnet2, IPSec)==> openswan2 ==(vboxnet1)==> server2
隧道的 PING 功能运行正常:
[root@server1 ~]# ping 192.168.57.9 PING 192.168.57.9 (192.168.57.9) 56(84) 字节数据。 来自 192.168.57.9 的 64 字节:icmp_seq=16 ttl=62 time=1.26 毫秒 来自 192.168.57.9 的 64 字节:icmp_seq=17 ttl=62 time=0.860 毫秒 来自 192.168.57.9 的 64 字节:icmp_seq=18 ttl=62 time=0.980 毫秒
问题是,当我尝试从 server1 通过 SSH 连接到 server2 或反之亦然时,出现“没有到主机的路由”错误。
[root@server1 ~]# ssh[电子邮件保护] ssh:连接到主机 192.168.57.9 端口 22:没有到主机的路由
openswan1 中的 Tcpdump 显示以下消息:
11:34:37.083444 IP 192.168.56.107.47014 > 192.168.57.9.ssh:标志 [S],seq 2476842671,win 29200,选项 [mss 1460,sackOK,TS val 3436092 ecr 0,nop,wscale 7],长度 0 11:34:37.083506 IP openswan1.localdomain > 192.168.56.107:ICMP 主机 192.168.57.9 无法访问 - 管理员禁止,长度 68 11:34:42.085686 ARP,请求 who-has 192.168.56.107 告诉 openswan1.localdomain,长度 28 11:34:42.086162 ARP,回复 192.168.56.107 is-at 08:00:27:26:bc:c8(oui 未知),长度 46
因此,总而言之,PING 在 IPSec VPN Tunner 下可以工作,但 SSH 则不行。
对于其中缺失或错误之处,您有什么想法吗?