我如何通过 SSH 定位 VPN 隧道

我如何通过 SSH 定位 VPN 隧道

我正在尝试与我的 VPN 服务器建立 SSH 连接。

我正在像这样使用 openConnect 连接 VPN

echo PASS | sudo openconnect --juniper https://example/ -u user --passwd-on-stdin

这将根据我的route -n结果

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 tun0
0.0.0.0         192.168.1.254   0.0.0.0         UG    100    0        0 enp3s0
151.151.91.171  0.0.0.0         255.255.255.255 UH    0      0        0 tun0
151.151.91.9    192.168.1.254   255.255.255.255 UGH   0      0        0 enp3s0
161.251.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 enp3s0
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 enp3s0

我可以 ssh 到我的目标,在我的例子中

ssh [email protected] -p 22

有用!

但,

因为我需要将流量更改为 enp3s0,所以我将使用此命令(我正在添加 vpn-slice)

echo PASS | sudo openconnect --juniper https://example/ -u user --passwd-on-stdin -s 'vpn-slice 192.168.1.92'

但是现在我无法 ssh 到我的目的地,它只会挂起

我的路线也改为这样

 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 enp3s0
0.0.0.0         192.168.1.254   0.0.0.0         UG    100    0        0 enp3s0
151.151.0.4     0.0.0.0         255.255.255.255 UH    0      0        0 tun0
151.151.0.4     0.0.0.0         255.255.255.255 UH    1      0        0 tun0
151.151.0.5     0.0.0.0         255.255.255.255 UH    0      0        0 tun0
151.151.0.5     0.0.0.0         255.255.255.255 UH    1      0        0 tun0
151.151.91.9    192.168.1.254   255.255.255.255 UGH   0      0        0 enp3s0
161.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 enp3s0
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 enp3s0
192.168.1.92    0.0.0.0         255.255.255.255 UH    0      0        0 tun0

我尝试使用-bssh 选项,例如, 但没有结果ssh -b 151.151.91.179(local IP4) [email protected](destination) -p 22

问题

当我通过 SSH 连接到目的地时,如何选择 tun0 路由

答案1

没有vpn-slice中,你写道,你的目标主机有一个 IP 地址151.151.91.91

但是当你调用 openconnect 时vpn-slice, 你没有将流量路由到该主机通过VPN:

echo PASS | sudo openconnect --juniper \
  https://example/ -u user --passwd-on-stdin -s 'vpn-slice 192.168.1.92'

作为你展示了,你的路由表不含151.151.91.91一个通过 VPN向目标 () 发送流量的条目...因此,当您尝试使用 连接到它时ssh,该流量将通过您的常规网络适配器,并且不会到达任何地方。

如果您想vpn-slice通过 VPN 发送此主机的流量(且仅此主机),那么您需要告诉它:

echo PASS | sudo openconnect --juniper \
  https://example/ -u user --passwd-on-stdin -s 'vpn-slice 151.151.91.91'

我建议添加-vand/or--dump标志,以便vpn-slice更好地了解其工作原理。如果您认为文档中应该改进或澄清某些具体内容,请在 Github 上提交问题或 PR。

(我写VPN 切片

相关内容