在 Raspberry Pi 上使用工作 VPN:先问清这些问题
门户 URL 和 Linux 这个词都不是客户端合同。在安装任何东西之前,先拿到关于协议、架构、认证和策略的答案。
雇主给出的四个答案决定了一台 Pi 能否加入工作 VPN:它使用哪种网关协议、支持哪些操作系统和架构、认证必须如何进行,以及是否允许使用官方客户端以外的客户端。门户 URL 和 Linux 这个词一个都定不了。下载任何东西之前先问清楚,因为答案会改变你安装哪个软件包,以及无界面方案是否根本可行。
把这四个答案写下来。其余内容就是每个答案会改变什么。
网关协议决定客户端
网关使用一种或多种协议,客户端必须实现你所在组织实际运行的那一种。OpenConnect 是一个独立实现,最初兼容 Cisco AnyConnect,如今覆盖多种其他企业网关;它不是厂商的品牌客户端,协议兼容也不保证支持每一项网关功能、终端状态检查或设备策略。请与网络团队确认协议,而不是从门户 URL 推断。然后再确认雇主接受该客户端用于这次部署。
兼容性证据必须来自雇主的文档,或来自在同一机型上做过此事的同事,而不是仓库里存在某个软件包。
架构不是细节
记录 Pi 的操作系统版本和用户空间架构、你打算使用的客户端版本,以及该软件包的来源。文件名变了,x86 安装包并不会因此适用于其他架构,而且只提供 x86 构建的厂商客户端根本无法在 Pi 上运行。仅这一条事实就可能在讨论认证之前解决整个问题。与其从论坛帖子里安装来路不明的二进制文件,不如检查软件包来源的维护情况。
64 位内核上的 64 位用户空间是简单情形;64 位板子上的 32 位用户空间才是人们装错软件包的地方。dpkg --print-architecture 和 uname -m 各用一行回答这两半。
认证决定工作流程
密码、MFA 和浏览器登录各自强加一套流程。存放在硬件令牌上的证书可能需要 Pi 没有的驱动,而 SSO 流程可能打开无界面会话无法显示的浏览器窗口。有些网关正是为这种情况提供设备码或手动复制路径,有些则不提供。询问组织对无界面 Linux 主机支持哪种方式,然后在依赖它之前先测试。
前端集成是与认证分开的选择。NetworkManager 插件可以安排连接并保存其机密,但无法让不受支持的认证方式变得兼容。把这两个问题分开。
保持雇主的边界完整
如果组织要求使用其官方客户端、受管设备或受支持的发行版,就遵守该要求或申请获批的替代方案。关闭证书检查、伪造终端状态结果,或关掉端点控制让另一个客户端看起来被接受,会把兼容性问题变成策略违规。把密码、会话 cookie 和私钥挡在 shell 历史和聊天记录之外。能用的质询-响应并不等于获准公开会话材料。
获批注册之后,从 Pi 本机确认私有 DNS、预期资源、被拒绝的资源以及重新连接。已登录的隧道仍可能路由错误或缺少授权。
交付物是一份有具名负责人的可支持协议:用哪个客户端、哪个版本、哪条注册路径。这比装上贴近厂商的客户端、再指望其余要求恰好可选要好。