绕过 Cisco AnyConnect VPN 路由表的方法

MyI*_*hin 13 cisco-vpn

为了远程访问企业内网,我们必须使用 Cisco AnyConnect VPN 客户端。我们可以在任何个人机器上安装它,他们提供适用于 Windows、Mac 和 Linux 的下载和说明。除了它们提供的路由表配置外,这很好用。

他们通过 VPN 路由除了 10.0.0.0/8 和 172.0.0.0/8(这不是打字错误)子网之外的所有内容。这已融入客户端,我找不到改变它的方法。我真正需要的是端口 80、443 和 22,用于通过 VPN 隧道路由的小型 C 类子网。

有没有办法更改路由表配置?除此之外,是否可以使用 HTTP/S 代理和 SSH 通过 VPN 隧道设置 Linux VM?

小智 7

除此之外,是否可以设置一个带有 HTTP/S 代理和 SSH 并通过 VPN 隧道路由的 Linux 虚拟机?

我只能解决该问题的第一部分,“是否可以设置一个 Linux 虚拟机……通过 VPN 隧道进行路由”。是的你可以。

如果您使用备用客户端openconnect,则分割隧道相当简单。您还需要vpnc-script以使设置路由的过程更容易一些(尽管您始终可以手动返回并使用命令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>'
Run Code Online (Sandbox Code Playgroud)

其中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
Run Code Online (Sandbox Code Playgroud)

请注意,大多数流量通过默认路由传递,而命令 ( 10.10.0.0/14) 中指定的子网则通过隧道传递。


Ron*_*pin 4

它不允许分割隧道。这是 VPN 软件的一项安全功能。允许分割隧道会使业务网络面临风险,因为这可以用来绕过防火墙。该软件会主动监控主机路由的变化,并会撤销对主机路由所做的更改。

  • 我不同意分裂隧道会让他们面临危险。无论安全移动代理 (VPN) 的状态如何,网络安全代理(本地防火墙)都会默认运行。两者都可以禁用或删除,因为它们安装在非托管计算机上。因此存在机器被入侵然后连接到 VPN 的风险。 (5认同)
  • 看,你问了这个问题,我解释了为什么会这样。我没有设计这个软件,所以不要向我抱怨,向思科抱怨,但不要指望能走得太远。你可能不喜欢它,但它就是这样。 (3认同)
  • 风险在于,您可以使用业务站点防火墙内部的隧道来访问 Internet 上防火墙上的策略和保护所禁止的内容。你是否不同意并不重要,这就是软件如此设计的原因以及它的工作原理。 (2认同)
  • 这相当于允许企业中的一台 PC 单独连接到 Internet。PC 可以配置为允许其他人通过它访问互联网。这使得企业防火墙和互联网政策变得毫无意义。您的异地PC在使用VPN时直接连接到企业网络,就像在企业站点连接一样。当您断开隧道时,您的路由将恢复正常。思科为企业而不是最终用户设计软件。 (2认同)
  • 这些不是等价物。VPN 用户应被视为敌对用户,并被降级到网络上的子网中,且内联网上的路由有限。Cisco VPN 支持此功能,并且实际上允许帐户级别限制。此外,客户端路由不是由思科定义的,而是由部署产品的网络管理员定义的。VPN 客户端还附带一个单独的防火墙解决方案,该解决方案需要在 VPN 客户端运行时运行,但可以在禁用 VPN 客户端时禁用。 (2认同)