几天前思科任意连接在 App Store 上架。 一些博客提到了这一点,但他们似乎并没有注意到它的相关性。 AnyConnect 是思科公司的一项企业 ssr路由器 技术,因此乍一看可能与很多人并不相关。
不过,要想实现 VPN 客户端,为其他应用程序提供 VPN 连接,你需要连接到操作系统的网络堆栈。 在 iOS App Store 上,每个人都知道苹果公司对开发者的权限有相当严格的规定--他们不提供 API(因此也不允许)挂钩操作系统内核并为其他应用程序提供网络功能。
none
![ssr路由器 - www.sarlperennes.com ssr路由器]()
Cisco AnyConnect Secure Mobility Client 可扩展设备的虚拟专用网络 (VPN) 功能。 您是否要启用该软件? 不允许/确定
输入 VPN 服务器名称等信息后,我切换到 "设置 "应用程序,发现新创建的 ssr路由器 显示为全系统范围的 VPN(不过,如果你试图从那里编辑它,它只会说你应该使用 AnyConnect 应用程序)。
![ssr路由器 - www.sarlperennes.com ssr路由器]()
要配置 ..... 的设置,请使用 Cisco 提供的应用程序。
奇怪的是,如果一个应用程序不能在 App Store 指导方针允许的范围内深入 iOS,它怎么能做这些事情呢?
继续深入研究 .ipa 捆绑软件:
有效载荷包括AnyConnectDataAgent.vpnplugin除了AnyConnect.app:
![ssr路由器 - www.sarlperennes.com ssr路由器]()
AnyConnectDataAgent.vpnplugin
AnyConnect.app的none包含一个名为com.apple.networking.vpn.configuration:
![ssr路由器 - www.sarlperennes.com ssr路由器]()
com.apple.networking.vpn.configuration
vpnplugin 捆绑程序和 com.apple.networking.vpn.configuration 权限都没有在任何地方记录(至少无法通过谷歌找到)。 由于这似乎是苹果专门为思科创建的特殊 iOS API,问题是它是否也对其他开发者开放。 我发现唯一使用它的其他应用程序是瞻博网络 Junos Pulsenone
none
2011 年更新:德国计算机杂志nonenone
2012 年更新:none瞻博网络 Junos Pulse(2010 年 9 月发布,需要 iOS 4.1)、思科任意连接(2010 年 9 月发布,需要 iOS 4.1)、F5 BIG-IP(2010 年 12 月发布,需要 iOS 4.2)、SonicWall 移动连接(2011 年 12 月发布,需要 iOS 4.2)、阿鲁巴 VIA(2011 年 12 月发布,需要 iOS 4.3)和CheckPoint 移动 VPNnone
2012 年更新: 现在,谷歌搜索 VPN 权限,不仅能找到我的博文,还能找到苹果公司的配置源代码:首先在OS X 10.7 资源以及后来在OS X 10.8 资源(但在 iOS 4 所基于的 OS X 10.6 中却没有)。 在旧版本中,在检查 iPhone OS 的 ifdef 中声明了一个名为 kSCVPNFilterEntitlementName 的常量,其中包含该权限,但该常量从未被使用。 在 OS X 10.8 中,该常量不再针对 iPhone OS 进行 ifdeff,而是用于允许对全局 preferences.plist 进行有限访问。
2012 年更新: 例如,Mac OS X 的 "回到我的 Mac "功能就使用了 utun:Mac OS X 10.8.2 中的内核实现可在 XNU 源代码中找到,网址是bsd/net/if_utun.c. 详情请见Levin, Jonathan. Mac OS X 和 iOS 内部: 苹果的核心 第 17 章,第二层,案例研究:Utun。 Wiley, 2012.
我又收到了几份试图访问 VPN API 的失败报告。 显然,尽管苹果现在提供了一个通用的 utun 接口,但它仍然对此非常严格。 迄今为止,iOS 上仍然没有 OpenVPN 客户端。
2013 年更新: OpenVPN连接今天发布。 它支持 tun-style OpenVPN 连接。 万岁,我们终于可以在 iOS 上使用 OpenVPN 了! 显然,它甚至可以使用 iPhone 配置工具中的 "自定义 SSL "选项进行管理。