零信任访问之旅:Yelp基于WireGuard与Netbird的现代安全架构实践

本文详细介绍了Yelp从传统VPN迁移到零信任架构的技术实践,包括WireGuard协议选型、Netbird平台集成、身份认证优化和故障容错机制,为企业远程安全访问提供了完整解决方案。

零信任访问之旅

词汇表

  • ZTA:零信任架构
  • SAML:安全断言标记语言(单点登录协议)
  • Devbox:用于软件开发远程服务器

零信任访问

远程办公的未来

Yelp现已完全实现远程办公,员工分布全球各地,这使得从任何地方安全访问资源成为关键业务功能。Yelp历史上使用Ivanti Pulse Secure作为员工VPN,但由于需要更可靠的解决方案,显然必须进行变更以确保内部资源的安全稳定访问。

企业系统和客户端平台工程团队于2023年底开始寻找替代Pulse的连接方案。在早期讨论中,我们提出了VPN在Yelp应扮演什么角色的问题。我们知道大量日常VPN用户不需要完整的网络访问,只需特定Web应用程序即可完成工作职责。我们已经在将敏感性较低的应用程序转移到基于MTLS的边缘网关等替代访问方法,但这并非适用于所有员工的即时解决方案,且广泛实施需要大量工作。这使我们认识到需要一个能够支持所有Yelpers的解决方案,目标是未来将其使用缩减到更细粒度的用例。

我们还认识到难以从VPN迁移的绝大多数用例都是工程导向的。无论是SSH访问开发箱还是从内部服务器下载文件,这些活动都涉及复杂多样的访问模式。此外,它们将受益于吞吐量的提升——这是当前Pulse解决方案严重受限的方面。同时,我们理解零信任架构(ZTA)是未来趋势。ZTA不仅成为行业趋势,而且与我们减少VPN使用、未来创建更细粒度访问控制结构的长期目标一致,而不是在大型子网和网段上实施宽泛的二元策略。实施安全、现代的高可用性解决方案对于维持员工生产力至关重要。

WireGuard和Netbird

WireGuard于2015年首次亮相,此后迅速成为安全网络访问的首选协议。在评估Ivanti替代方案时,我们发现自己倾向于基于WireGuard的解决方案。至少可以说,选择很多。为缩小选择范围,我们开始编制必备功能清单,将其量化为优秀用户体验的支柱。

我们确定为满足运营和用户需求的解决方案所必需的核心支柱如下。Netbird最终表现出色,支持全部5个支柱,使其成为我们的首选解决方案:

  • 支持Okta作为身份和认证提供商
  • 简单直观的用户界面
  • 开源且可扩展
  • 支持高吞吐量和低延迟
  • 容错能力强

让我们详细展开这个功能愿望清单中的一些项目,以及Yelp工程如何使用Netbird和Wireguard实现这些目标。

在Yelp,Okta被用来实施零信任认证模型,作为我们整体零信任访问策略的一部分。我们之前的解决方案最初使用LDAP进行认证,缺乏高级用户和设备信任验证。后来我们过渡到SAML,但由于在会话认证中浏览器到VPN客户端交接繁琐,Ivanti产品中的实现导致用户体验不佳。为解决这些问题,我们寻找支持OpenID Connect(OIDC)的解决方案,特别是与Okta集成。这种方法使我们能够强制执行策略,确保只有使用受管设备且具有安全状态的用户才能获得访问权限。在当今环境中,仅验证用户身份是不够的。

虽然直观认证本身不是我们的唯一目标,但OIDC是确保良好用户体验的第一步。Yelp自豪地雇佣了具有不同技术专业知识和能力水平的多元化员工队伍。因此,我们需要一个简单直观的应用程序。Netbird的客户端实现很大程度上实现了这一目标,但我们发现支持非技术用户时简单性至关重要。我们开始根据特定需求定制客户端体验,从UI中删除一些更高级的选项。此外,我们添加了元素,使用户能够快速轻松地自行修复、访问用户友好文档,并向我们优秀的帮助台团队请求协助。但我们并未止步于此。我们个性化图标并为连接过程的每个特定阶段添加反馈。如果没有可接近、周到考虑和开源的代码库,所有这些修改都不可能实现。

此外,开源产品使我们能够通过跟踪项目的提交和问题历史来了解项目动态。更重要的是,如果出现关键安全问题,我们不会仅依赖维护者——如果需要,我们可以自己提供修复。开源也意味着Yelp有机会回馈社区,增强软件以造福所有人。迄今为止,Yelpers已将多个更改推送到Netbird的主分支,以解决我们遇到、调试并最终解决的问题。

虽然大多数用户不需要高吞吐量和低延迟来完成日常业务功能,但改善这些方面是我们希望通过新解决方案实现的明显生活质量提升。没有什么比以蜗牛速度下载大型日志、克隆大型Git仓库并看着提交缓慢增加,或连接到终端或远程桌面并感觉像在慢动作中移动更令人沮丧的了。乐观地说,Pulse对大多数用户的峰值下载速度在每秒几十兆比特的低位。Netbird接入10千兆骨干网并得到Wireguard极快加密技术支持,测试显示用户可实现高达每秒1千兆比特的速度——主要受家庭互联网速度限制。延迟也接近线路的纯成本,通过WireGuard协议封装数据包仅增加个位数毫秒的开销。简而言之,它很快,这正是我们想要的。

最后,当系统完全无法工作时会出现最差的用户体验。我们需要一个健壮且容错的解决方案。依赖用户连接到其最佳端点是不必要的复杂性。此外,无论何种原因导致的中断都不应要求用户干预来缓解,理想情况下应对最终用户体验完全透明。WireGuard的网状拓扑旨在通过创建用户可以采取并同时连接的多个路径来增加这种冗余。Netbird中的这些路径或端点中的每一个都被称为路由器对等点。网状网络的所有成员都是对等点,但路由器对等点扮演特殊角色,能够接受和出口来自其他对等点的流量。客户端本质上与允许使用的路由器对等点具有一对多关系。这允许在一个路由器对等点上进行维护或服务中断,而不会导致用户重新连接到网络或经历明显性能下降。我们对Netbird的测试表明,正在为给定对等点处理流量的路由器对等点可能突然停止运行,客户端将经历不到2秒的连接中断,同时其流量被重新路由到另一个主机。这解决了我们用户体验愿望中的最后一个支柱,因为我们可以轻松自信地响应事件、安全、运营或其他问题,确保Yelpers可以继续工作而不受干扰。

实施与展望

总之,我们从传统VPN解决方案的先前挑战中学习的愿望导致了企业连接性的戏剧性转变。我们的目标是为Yelpers提供安全一致的内部资源访问,最终增强那些不懈努力连接人们与优秀本地企业的Yelpers的日常体验。

尽管在提供这种下一代连接性的道路上遇到了障碍和颠簸,但产出表明付出的努力非常值得。我们期待在下一篇文章中讨论Yelp部署Netbird的实施、挑战和初始架构。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计