您好,我是Liberogic的CTO大冢。
“VPN 似乎快到极限了”
如果您在小公司兼任信息系统负责人,想必曾经有过这样的想法吧。
我们公司也正是如此。
零信任、SASE、摆脱VPN……
这些词我们经常看到,但它们似乎只适用于大企业,而且很难分辨该从哪里入手。
在这样的背景下,拥有约10名员工的网页制作公司Liberogic从VPN迁移到了零信任型架构。
本文将结合实际操作经验,记录迁移的原因、发生的变化,以及存在的弱点。
VPN 已是“接近极限”的信号
我们公司长期以来一直使用办公室路由器的 VPN 功能。
这是一种常见的架构:从家中或外出时先接入公司内网,再从内网访问互联网。
不过,近几年我们一直有以下几点顾虑。
- “在外工作时请先连接VPN”这一规定,最终只停留在口头要求
- 咖啡馆、出差地点或客户办公室的 Wi-Fi 有时无法通过 VPN 连接
- 视频会议和云端文件同步全都经过公司线路,速度很慢
- 路由器的职责是转发通信,它不会阻止危险网站。
如果有任何一项符合,或许就是重新审视的好时机。
其中最让我在意的是“无法强制所有人都使用 VPN”这一点。
macOS 自带的 VPN 每次启动都需要手动连接。
忘记连接的设备,其流量会在没有任何防护的情况下,直接通过当前网络出口发送出去。
不可信网络的风险正在上升
另外,也简单介绍一下最近发生的一件事。
2026年10月,印度证书颁发机构 eMudhra 的 8 个中间证书被发现私钥遭到泄露。
据 Cloudflare 的解读,由于密钥本身较弱,任何域名的伪造证书都可以被生成。
顺便一提,这些证书在浏览器和操作系统中都是被广泛信任的。
我之前在连接陌生 Wi-Fi 时的风险评估是:如今通信大多使用 HTTPS 而非 HTTP,因此风险相对较低。但读到这里,我觉得这部分还需要重新考虑。
零信任 / SASE / ZTNA 的区别简述
一开始研究时,这里往往最容易混淆。对于小公司来说,如果只掌握到这种程度,我认为已经足够。
术语 | 简单来说 |
|---|---|
零信任 | 不因“在公司内部就是安全的”而放行,而是每次连接时都进行确认的理念 |
ZTNA | 通过确认人员和设备后,才允许连接公司内部系统和应用的机制。可替代VPN |
SWG | 检查互联网通信并阻止危险网站的机制 |
SASE | 将网络与安全功能统一由云端提供的理念 |
零信任是一种理念的名称,实现它的服务形式包括ZTNA和SWG,而整合后的整体架构则是SASE,三者之间是这样的关系。
与其一开始就想着“必须导入SASE”,不如从你在VPN上具体遇到什么困扰、想解决什么问题出发,我认为这更适合小型公司。
我们公司几乎没有内部业务系统
提到VPN的一般用途,大概就是从公司外部访问内部业务系统或文件服务器吧。
不过,我们公司几乎没有这类内部机制。日常工作使用的工具基本都是云服务。因此,我们并没有“如何替换内部系统入口”这样的烦恼。
拥有内部业务系统的公司,通常会把这一点作为讨论的核心。
在迁移过程中卡住的是“固定 IP”。
对于开发公司而言,客户服务器的管理界面和 SSH 上往往设置了“只允许从特定 IP 地址访问”的限制。这是出于安全考虑,也是非常正确的运维做法。
而且,我们多年来一直请众多客户“请允许我们的固定 IP 访问”。这项设置可以说是我们长期积累的资产。
零信任类服务也具备从固定 IP 发出通信的功能。
Cloudflare 也提供“专用 egress IP”功能,但它是 Enterprise 套餐的附加功能,前提是签订面向大企业的合同。
对我们这样的小公司来说,很难使用。
此外,一旦出口 IP 发生变化,就需要请所有客户重新修改设置。
这并不现实。
也就是说,我们想要的是以下三点。
- 无论身在何处,都不遗漏连接,保护所有人
- 普通通信不想特意经过公司中转
- 但对于需要的目标地址,仍希望像以前一样从公司固定 IP 发出
我们的选择:防护交给云端,只有出口保留现有固定IP
我们选择的是Cloudflare One。
- 在每台电脑上安装名为 WARP 的软件:启动后即会自动连接,不易出现忘记连接的情况
- Gateway 阻止访问危险网站:根据全公司统一的规则,拦截与恶意软件、钓鱼网站相关的连接
- 普通流量直接从 Cloudflare 出站:不经过公司线路
- 仅客户服务器的流量通过公司固定IP出站:在公司内部放置一台小型设备,通过名为 Cloudflare Tunnel 的通道与公司连接
最关键的一点是,我们可以按目标地址指定“仅这些地址的流量经由公司网络出站”。
对客户而言,访问来源与之前的固定IP完全相同,因此对方无需更改任何设置。
此外,公司内部设备只会主动连接 Cloudflare,无需开放路由器端口,因此不会增加从外部进入公司网络的入口。
当然,像中间证书问题这类情况发生时,无需单纯依赖人工注意,这也是一个重要优势。
在 eMudhra 的问题上,Cloudflare 也表示,只要使用 Gateway 和最新客户端,即可自动获得保护。
有哪些变化
以往 | 现在 | |
|---|---|---|
在外部工作 | 连接VPN后再工作 | 只需打开PC |
忘记连接 | 容易发生 | 不易发生 |
危险网站 | 依赖各台PC的安全软件 | 由公司统一规则拦截 |
Web会议和云服务 | 全部流量都经过公司网络 | 不经过公司网络 |
客户的服务器 | 来自公司的固定IP | 来自公司的固定IP(无变更) |
WARP 会在 Mac 开机时同步启动并自动连接。员工无需记住 VPN 的连接步骤,也不必在意各种细节设置。 安全加固往往会增加现场的工作量,而这次反而减少了工作量。 导入之后,我最惊讶的正是这种 UX 的便捷性。
还可以搭建只能通过 WARP 访问的内部应用
Cloudflare One 提供 Access 功能,可以限制访问 Web 应用的用户和设备。利用该功能,可以搭建只能通过 WARP 连接到公司 Cloudflare One 的设备才能访问的应用。
例如,只有同时满足以下两个条件时才允许访问。
- 已使用公司邮箱登录
- 通过 WARP 连接到公司的 Cloudflare One
即使 URL 被他人获知,不满足条件的设备也无法打开。这与将内部系统“放在 VPN 内侧”的做法十分接近,却无需使用 VPN 即可实现。
运行在公司服务器上的应用,只要通过 Cloudflare Tunnel 连接,也无需开放端口即可同样得到保护。
接下来介绍的管理应用也采用了这种方式进行保护。
本着 DIY 精神,我们还开发了一款小型管理应用
但仍有一个问题尚未解决。每当客户的服务器增加时,都需要登记“此目标通过固定 IP 发出”的设置;而 Cloudflare 的管理界面术语较多,一旦设置出错,就会影响所有人的通信。同时,也不能将管理员权限交给所有人。
因此,我们开发了一款公司内部应用,工作人员只需选择用途即可完成登记。
- 记录谁、出于什么目的进行了注册
- 无法注册面向全公司使用的服务或范围过大的设置
- 注册后可以立即确认设置是否已正确生效
Cloudflare 可以通过 API 进行配置操作,因此也能开发这类内部工具。我们平时就在开发 Web 应用,这方面是我们的擅长领域。
关于费用
Cloudflare One 提供最多 50 名用户的免费额度。
这与用于内部工具登录管理的 Cloudflare Access 使用相同的用户额度,因此如果贵公司已经在使用 Access,我想您可以更轻松地试用。
超过 50 名用户时将转为付费方案,公开价格为每位用户每月 7 美元。
固定 IP 线路沿用现有的线路。
另外只需要在公司内放置一台常时开机的设备。
我们准备了一台专用的小型 PC。
坦白说,它并非万能
只写优点也不妥,因此在此也列出需要注意的地方。
- 如果�隧道中断,将无法通过固定 IP 对外连接:一旦公司内的小型 PC 或线路停止,就无法访问客户的服务器。普通网页仍可访问,但必须设置能够及时发现中断的通知。
- 对 Cloudflare 的依赖会增加:认证和网络路径都会集中到一家公司。这是便利性的代价。
- 每台电脑都需要安装:WARP 和证书的设置每台设备需进行一次。智能手机需要更多手动操作。
- 与客户指定的 VPN 并用时需要确认:根据路由和 DNS 设置,Gateway 的防护可能无法生效。我们在连接手册中说明了具体操作步骤。
- 并不会检查通信内容:我们不进行 TLS 解密。如果希望对所有通信进行细致检查,则需要另行考虑。
- 免费套餐的支持并不完善:问题基本上需要自行查找解决。免费套餐下日志的最长保存期限也仅为 24 小时。
适合与不适合的公司
我认为以下这类公司比较适合。
- 员工数为几人到几十人,且有在外部或远程工作的人员
- 无法放弃基于固定 IP 的访问限制
- 以云服务为主,内部服务器较少
- 至少有一位熟悉的人在旁边,可以边查资料边尝试
相反,如果遇到以下情况,建议考虑其他产品或咨询专业公司。
- 行业规范要求长期保存日志,或需要详细检查通信内容
- 公司无法管理的设备较多,无法安装软件
- 隧道中断时,无人能够应对
总结
此前只是请 Mac 安装杀毒软件,并未具体指定详细设置。这次在导入 Cloudflare One 的同时,我们在公司内部统一配置了 macOS 的各项设置以及杀毒软件的设置。
然而,针对开发者和创作者的攻击日益激烈,需要守护的并不只有这些。Liberogic 还在以下方面持续努力。
依赖包管理
鉴于针对开发者的供应链攻击日益增多,我们不再以“先升级到最新版本”为由随意添加或更新包,而是重新审视引入方式和确认流程。
机密信息管理
API 密钥和 SSH 密钥依据 1Password 的规则进行管理,并尽可能避免在开发环境中以明文形式保存。
最小化权限与定期清查
客户环境及各项服务的账户、密钥和权限仅限于必要范围,并确保项目结束后不再保留这些权限。
经验共享
我们以实际公开的安全事件作为内部学习会的素材,结合“如果是我们,会受到什么影响”,把它们对照到自身环境中思考。
避免发生重大安全事故自然是我们的首要目标,但鉴于公司规模,我们与大型客户的交易较多,必须始终保持稳定的安全标准。
这些工作都不起眼,但我们正在扎实地一步步积累我们能做的事。
如果这些经验能为同样面临类似困扰的公司提供一些参考,我们将深感欣慰。
Liberogic技术部门的中坚力量。每当听到“要是有这样的东西就好了,要是能有就方便了”这样的想法,便凭借与生俱来的智慧加以延伸,转眼间就将其实现。沟通能力出众,深受客户喜爱,是本公司的宝贝,同时也是十足的爱猫人士。
大塚 翔
董事 CTO / 首席工程师 / 合同会社猫穴 代表 / 外表不必要地显年轻