配置 Cisco VPN Anyconnect 以同时使用 VPN 和本地网络

配置 Cisco VPN Anyconnect 以同时使用 VPN 和本地网络

我想同时使用 VPN 和 LAN 访问(使用本地打印机、SMB 共享等)从理论上讲,这项任务应该很容易:

  1. 所有本地 IP 的目标(192.*)都应直接转到 eth0,其余的则转到虚拟设备。由于我从 VPN 获得静态“全局”IP,因此不会出现歧义,路由也不会很复杂。

  2. 必须有 2 个 DNS 服务器:一个本地服务器和一个通过 vpn 提供的服务器。

当未连接到 VPN 时,我有 3 条路由 (dest、router、iface):

  • 192.*,*,eth0
  • 本地链路,*,eth0
  • 默认,natrouter.local,eth0

当连接到 VPN 时我有 5 条路由:

  • asa-1.vpn.,(ipofnatrouter),eth0
  • 141.,*,cscotun0
  • 192.*,*,eth0
  • 本地链路,*,eth0
  • 默认,211.vpn.,cscotun0

因此应该可以访问 LAN,但是当 ping 本地 IP(即使以 root 身份)时,我得到了

ping: sendmsg: Operation not permitted

我如何才能使它与 (X)Ubuntu 10.10 和 Cisco Anyconnect VPN 一起工作?

请注意,由于 Michał Šrajer 给出了解决方法,我现在正在寻找故意的解决方案(使用配置 xml)。即使在编辑时,它/opt/cisco/vpn/profile/AnyConnect-TargetVPN-Default.xml也会被每个已建立的 VPN 连接覆盖。我尝试了,<LocalLanAccess>正如<PPPExclusion>文档 (PDF) 没有任何值得一提的成功。

使用适当的 lan 和 vpn 配置覆盖/etc/resolv.conf可让 vpanagentd 消耗所有 CPU。由于 vpn 客户端在启动时会更改该文件,因此有必要“实时”修改它。作为一种解决方法,我使用修改后的文件/etc/hosts

答案1

它有点丑陋,但对我有用:

iptables-save | grep -v DROP | iptables-restore
iptables -P INPUT ACCEPT; iptables -P OUTPUT ACCEPT

答案2

我厌倦了 Ubuntu 的 32 位客户端功能有限,于是尝试了可以​​与 Anyconnect VPN 服务器互操作的 openconnect。由于 openconnect 集成到网络管理器中,因此设置默认路由非常容易。它还允许您从 NM 界面本身设置自定义搜索域和服务器 IP。如果您可以让它毫无问题地连接到您的 VPN 网关,我建议用 OpenConnect 完全替换 Anyconnnect 客户端...

相关内容