根据苹果公司iOS 版 VPN 支持文章,只有 Cisco IPSec、Juniper Junos Pulse 和 Cisco AnyConnect 支持 VPN 按需功能。是否有任何开源实现(这里的“免费”更重要),我可以在无需特殊硬件的 Linux 系统上部署这些实现?
更新:我已经有一个 PPTP 解决方案。我对其他两个的按需功能特别感兴趣。
答案1
Cisco IPSec、Juniper Junos Pulse 和 Cisco AnyConnect 可以为某些目标主机/网络按需配置 VPN,因为它们是路由的一部分,并且可以实现首先建立 VPN 连接才能连接到这些主机/网络的需要;
因此,如果您的 PPTP VPN 服务器基于 Linux,只要该服务器不是您的默认路由网关,VPN on Demand 就毫无意义。在此配置中,您的服务器应该是 Linux 上的 Cisco IPSEC 兼容网关,也是您的 iOS 设备的默认路由网关。
对于 Apple iOS 设备,VPN on Demand 允许 iOS 设备与远程企业网络建立透明、安全的连接,无需用户端进行手动配置。
此按需 VPN 功能无法在 iOS 设备上手动配置,需要基于证书的身份验证,目前支持 Cisco IPSec、Juniper Junos Pulse 和 Cisco AnyConnect。
为了在 iOS 设备上激活和配置它,您必须创建一个配置文件,然后配置设备。
按需 VPN 的另一种形式可在 Mac OSX 设备上使用,其中 Safari 决定建立 VPN 连接以连接到您已将其列为按需 VPN 并配置其连接设置配置文件(密码/证书)的某些域/网络(例如 vpn.mycompany.com)。
更多信息:
iOS VPN 按需服务: http://www.0x8847.net/2010/07/iphone-os-vpn-on-demand/ http://manuals.info.apple.com/en_US/Enterprise_Deployment_Guide.pdf
OSX VPN 按需版本: http://docs.info.apple.com/article.html?path=Mac/10.6/en/15575.html
对于 Linux 上的 Cisco IPSec 网关,我建议您使用开源软件包强天鹅为您的 iOS 按需提供 VPN
使用 --enable-cisco-quirks 参数构建 StrongSwan,使其与 Cisco IPSEC 兼容。它是一款基于稳定认证的 Linux IPsec 网关,与 iOS VPN on Demand 要求兼容。
查看以下链接以了解如何在 StrongSwan 上设置 iOS:
http://wiki.strongswan.org/projects/strongswan/wiki/IOS_(苹果)
身份验证使用 XAUTH 和证书 (authby=xauthrsasig)。所描述的设置已经过测试并确认可以在搭载 iOS 4.3.1 的 iPad 2 上运行,但预计也可以在运行最新 iOS 版本的所有其他 iOS 设备(iPhone、iPad、iPod Touch)上运行。
答案2
正如@Reza 的回答中提到的,你基本上只需要一个配置文件就可以完成这项工作。不过,Reza 没有提到的一件事是我认为你问的实际问题。要在 Linux 上实现这一点,你需要某种 IPSec 支持。有几种工具可以做到这一点,如何配置其中几种可以在这里找到:
http://www.ipsec-howto.org/t1.html
我自己也曾使用过 Openswan 来实现这个功能:
一旦 VPN 配置文件开始工作,并正确设置了领域,iOS 设备就会按需建立 IPSec 隧道,所有人都可以免费喝啤酒(您购买!)
答案3
我们在 CentOS 上使用 PPTP Linux 软件包,它在 OSX、Windows 和 iOS 上都运行良好。我知道它在安全性方面有局限性,但对大多数人来说已经足够了。