为了远程访问企业内联网,我们必须使用 Cisco AnyConnect VPN 客户端。我们可以在任何个人机器上安装它,它们为 Windows、Mac 和 Linux 提供下载和说明。除了它们提供的路由表配置外,它运行良好。
它们通过 VPN 路由除 10.0.0.0/8 和 172.0.0.0/8(这不是拼写错误)子网之外的所有内容。这已嵌入到客户端中,我找不到更改它的方法。我真正需要的是通过 VPN 隧道路由的小型 C 类子网的端口 80、443 和 22。
有没有办法更改路由表配置?除此之外,是否可以设置一个带有 HTTP/S 代理和 SSH 的 Linux VM,通过 VPN 隧道进行路由?
答案1
除此之外,是否可以设置一个带有 HTTP/S 代理和 SSH 的 Linux VM 来通过 VPN 隧道进行路由?
我只能回答这个问题的第一部分,“是否可以设置一个 Linux VM ... 通过 VPN 隧道进行路由”。是的,可以。
如果你使用备用客户端,打开连接,拆分隧道相当简单。您还需要vpnc 脚本以使设置路线的过程更容易一些(尽管您随时可以手动返回并使用这些ip route
命令)。
然后你按照这个 github gist。 本质上,
sudo openconnect <corporate-vpn-endpoint> \
-m 1290 \
-u <your-vpn-user> \
--servercert sha256:<0446a7EXAMPLE8901278394> \
-s 'vpn-slice <10.10.0.0/14>'
10.10.0.0/14
您希望通过 VPN 的子网应该在哪里。
执行此命令后的路线最终将看起来像
# ip route
default via 10.1.1.1 dev wlp4s0 proto static metric 600
10.1.1.0/24 dev wlp4s0 proto kernel scope link src 10.1.1.50 metric 600
10.10.0.0/14 dev tun0 scope link
10.10.0.0/14 dev tun0 scope link metric 6
180.10.34.165 dev tun0 scope link
180.10.34.165 dev tun0 scope link metric 6
请注意,大多数流量都通过默认路由,而命令(10.10.0.0/14
)中指定的子网则通过隧道。
答案2
它不允许拆分隧道。这是 VPN 软件的安全功能。允许拆分隧道会使企业网络面临风险,因为这可用于绕过防火墙。该软件会主动监控主机路由更改,并将撤消对主机路由所做的更改。