绕过 Cisco AnyConnect VPN 路由表的方法

绕过 Cisco AnyConnect VPN 路由表的方法

为了远程访问企业内联网,我们必须使用 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 软件的安全功能。允许拆分隧道会使企业网络面临风险,因为这可用于绕过防火墙。该软件会主动监控主机路由更改,并将撤消对主机路由所做的更改。

答案3

由于路由必须允许 TCP 数据包到达 VPN 服务器,因此您可以使用巧妙的 NAT 规则和软件,例如固态激光切割在这个设计漏洞上多路复用额外的流(比如带隧道的 SSH)。

详情请见此处了解分步说明以及如何/为何这样做

相关内容