我想同时使用 VPN 和 LAN 访问(使用本地打印机、SMB 共享等)从理论上讲,这项任务应该很容易:
所有本地 IP 的目标(192.*)都应直接转到 eth0,其余的则转到虚拟设备。由于我从 VPN 获得静态“全局”IP,因此不会出现歧义,路由也不会很复杂。
必须有 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 客户端...