有人说他的 Mac 上 Cisco VPN 坏了,而这个说法至少涵盖三种不同的东西。它可能指 macOS 内置的配置描述文件、上一个时代的应用程序,或贵组织今天在部署的客户端。每一种都有各自的失效方式,为一个写的修复通常与另外两个无关。

所以第一件事不是修复。而是确认身份,只要问对细节,这大约花一分钟。

What the user hasWhat actually needs identifying
An entry under System Settings with a Cisco IPsec typeThe native profile's protocol and the authentication settings the administrator supplied
The old Cisco VPN Client applicationWhether that product is supported at all on the installed macOS release
Cisco Secure Client, formerly AnyConnectThe installed release, the managed profile and the gateway service in use

原生标签并不是已安装的 Cisco 驱动

Apple 提供了名为 Cisco IPsec 的 VPN 类型,它很有用,但那是 Apple 对 IPsec 配置的实现,不是旧的第三方应用,也不是你安全团队在别处部署的东西。这个标签只告诉你打开哪个配置面板,与厂商支持毫无关系。

反过来犯错代价更大。以为原生条目可以取代 Secure Client,就会跳过注册、证书处理、态势检查以及网关所期望的策略。组织推送的配置描述文件并不等同于某人手工输入的连接,即使两者最终都建立了 IPsec 隧道。这个差别在设置面板里看不见,在网关自己的日志里却一目了然。

向网关的所有者问三件事:他们支持的 Mac 客户端、配置描述文件的确切名称,以及客户端的最低版本。再加上用户正在运行的 macOS 版本。仅凭一个服务器主机名什么也说明不了,这正是只写主机名的工单常常被打回的原因。

关于内核的旧建议属于它自己的年代

搜索 Mac VPN 问题的结果里满是这样的指示:启动时按住某些键、引导到不同的内核架构,或运行一个比当前系统完整性保护更老的辅助工具。这些步骤来自特定的旧 Mac 硬件与客户端构建组合。现在重复它们并不是迁移,在现行版本上有些根本做不到。

还有一个值得了解的边界,因为它常被引用到错误的语境里。Apple 记载,从 Catalina 10.15 起 32 位应用不再兼容 macOS,所以那么老的客户端根本无法在那里运行,与驱动或权限无关。这是应用兼容性的分界,不是内核模式的问题,把两种解释混在一起只会得出谁也帮不上的建议。

如果只剩下一个过时的客户端,请把它的配置描述文件当作敏感的迁移材料,并索取已批准的替代方案。不要关闭系统保护,不要安装未签名的驱动,也不要抱着现代客户端能导入的希望去改 .pcf 扩展名文件的名字:PCF 属于旧客户端的格式,Secure Client 使用自己的配置文件机制,两者并不因扩展名相同而可互换。

把客户端与网络分开

当受支持的客户端已经安装并且大体可用时,真正有意思的问题就变了。它是到处都失败,还是只在某个接入网络上失败?从家庭网络能连、在酒店却失败的客户端描述的是可达性,不是架构,而重装应用不会改变酒店的过滤。碰安装之前,先在可信网络上测试同一台笔记本。

在改动任何东西之前先记录故障。客户端自己的日志通常会指出失败的阶段:选择配置、认证、建立隧道或策略。把它与同一台机器上从另一个网络成功的尝试相比,因为你测试的变量是网络,而客户端是常量。

把答案写下来,留给下一张工单

一旦你知道面对的是三者中的哪一个,就连同已安装版本和 macOS 发行版一起记进工单。这一行能让下一位工程师不必从头开始,也让向厂商升级无需第二轮提问。

然后检查用户真正需要的那一件事:当前客户端能否访问资源,而不只是 隧道指示灯有没有变绿。对于这些讨论里反复出现的兼容性边界,Apple 关于 macOS Catalina 结束 32 位应用支持 的说明,是值得引用而不是传说的依据。

相关文章