跳至主要内容

Captive Portal 架构:安全性、重定向与最佳实践

企业级 Captive Portal 架构的权威技术参考。本指南为部署安全、数据丰富的访客 WiFi 网络的 IT 决策者深入剖析网络隔离、DNS 重定向、RADIUS 身份验证以及安全合规性。

📖 5 分钟阅读📝 304 🔧 2 应用实例3 练习题📚 8 关键定义

收听本指南

查看播客转录
请用英国英语发言,语气要自信、权威且具有口语感 - 就像一位资深网络顾问在喝咖啡时向客户做简报。节奏沉稳,吐字清晰,不急不躁。偶尔自然停顿以示强调。专业而不呆板: 欢迎来到 Purple 技术简报。我是您的主持人。今天我们将深入探讨 captive portal 架构 - 特别是安全模型、重定向机制,以及决定部署是合规、工程设计良好,还是会在凌晨三点给您带来麻烦的设计决策。 [中等停顿] 让我们设想一下场景。您在连锁酒店、零售物业或体育场运营着访客 WiFi。每天有数以千计的设备连接。其中一些设备携带恶意软件。一些用户会尝试访问不该访问的内容。而您的法律团队希望书面确认,在您存储哪怕一个字节的个人数据之前,您已经获得了有效的同意。[中等停顿] 这就是 captive portal 架构旨在解决的问题。让我们来拆解它实际上是如何工作的。 [中等停顿] 第一部分。重定向链。 当访客设备连接到您的 WiFi SSID 时,它会从专用访客 VLAN(我们称之为 VLAN 20)上的 DHCP 地址池获取一个 IP 地址。您的企业设备在 VLAN 10 上。这两个 VLAN 绝不能相互路由。从 PCI-DSS 的角度来看,坦率地说,从基本安全角度来看,这是不可妥协的。 现在,设备已连接,但尚未进行身份验证。控制器将其置于我们所说的预身份验证状态。该设备只能访问一个很小的白名单域名 - 即 walled garden(围墙花园)。其他所有访问都会被拦截。 巧妙的地方在这里。当设备尝试加载网页时 - 或者当操作系统执行其 captive portal 检测检查时(iOS 会通过访问 captive.apple.com 自动执行此操作) - 网关上的 DNS 解析器会返回 captive portal 服务器的 IP 地址,而不是真实的 county 目的地。浏览器遵循该重定向并降落在您的 splash page(欢迎页面)上。 [中等停顿] 这是第 3 层和第 7 层协同工作。VLAN 处理网络隔离。DNS 拦截处理重定向。而 captive portal 处理身份和同意层。三个不同的机制,全部按顺序工作。 [中等停顿] 第二部分。身份验证和 RADIUS。 一旦访客与 splash page(欢迎页面)进行交互 - 无论是接受条款和条件、输入电子邮件地址、通过社交登录进行身份验证,还是验证短信验证码 - 该平台就需要通知网络控制器为该特定设备打开防火墙。 这就是 RADIUS 发挥作用的地方。RADIUS 代表远程用户拨号认证系统。它是 RFC 2865 中定义的一种协议,也是在策略服务器和网络接入设备之间传递身份验证决策的行业标准。 Purple 作为一个云端托管的 RADIUS 服务器运行。当访客完成 Captive Portal 流程时,Purple 会向本地 WiFi 控制器(无论是 Cisco Meraki、HPE Aruba 控制器、Ruckus SmartZone 还是 Juniper Mist 接入点)发送一个 RADIUS Access-Accept 消息。控制器接收该消息并将访客设备从预认证状态转换为已授权状态,从而打开防火墙规则并授予互联网访问权限。 [medium pause] 关于 RADIUS,您需要了解一个重要的扩展:授权变更(即 CoA)。CoA 允许 RADIUS 服务器向控制器发送会话中消息,以撤销或修改已处于活动状态的会话。Purple 使用 CoA 来执行会话超时、断开因违反策略而被标记的设备,并支持 GDPR 下的即时擦除工作流 - 当用户请求删除其数据时,Purple 可以立即撤销其活动会话。 [medium pause] 第三部分。围墙花园(Walled Garden)。 围墙花园是一个 IP 地址和域名白名单,未经验证的设备在完成 Captive Portal 流程之前可以访问这些地址和域名。如果配置错误,您的展示页面将无法加载。如果出现严重错误,您将造成安全漏洞。 您的围墙花园至少需要包括 Captive Portal URL 本身、托管该 Portal 资源的任何 CDN 端点,以及您正在使用的任何社交登录提供商(Google、Facebook、Microsoft)的身份验证端点。如果您使用的是短信验证,则需要将短信网关的 API 端点加入白名单。 让大多数部署方案踩坑的是动态 IP 地址。云服务并不总是拥有静态 IP。如果您将 IP 而不是域名加入白名单,并且该 IP 发生了变化,您的 Portal 就会失效。在控制器支持的情况下,请使用基于域名的白名单,并在每次更改后进行测试。 [medium pause] 第四部分。安全设计。 让我们更详细地讨论一下安全架构,因为这是大多数部署出现漏洞的地方。 第一:客户端隔离。请启用它。这是接入点上的一项设置,用于阻止访客设备在无线介质上直接相互通信。如果不启用,您的访客网络上被入侵的设备就可以探测并攻击其他访客设备。这是一个只需勾选一个复选框即可解决的方案,能够消除一整类对等网络(Peer-to-Peer)攻击。 第二:DHCP 租约时间。在人员流动性强的场所 - 如交通枢纽、体育场、繁忙的零售店 - 您需要较短的租约时间。30 到 60 分钟。如果您将默认值保持在 24 小时,且在比赛日有 1 万台设备连接,那么在半场结束前您的 IP 地址池就会耗尽。新设备将无法连接,您的运营团队也会收到投诉。请保持较短的租约时间。 第三:加密。您的 Captive Portal 必须通过带有有效 TLS 证书的 HTTPS 进行服务。如果是通过 HTTP 进行服务,现代浏览器会将其标记为不安全,用户会产生不信任感,并且您正在传输明文凭据。至少使用 TLS 1.2;首选 TLS 1.3。WiFi 传输层应使用 WPA2-AES 或 WPA3 - 绝不使用 WEP,绝不使用 TKIP。 第四:VLAN 隔离。您的访客 VLAN 必须与任何接触付款卡数据的网络段完全隔离。PCI-DSS 4.0 版本对此有明确规定。如果您的访客网络可以路由到包含销售点系统的子网,那么您的整个 POS 网络都将纳入 PCI 审计范围。这是一项重大的合规负担。从第一天起就正确进行隔离。 [中顿] 第五部分。GDPR 和数据合规性。 每个收集个人数据的 Captive Portal - 在 GDPR 规定下,电子邮件地址、电话号码和社交媒体登录都算作个人数据 - 都必须满足特定的要求。 您需要有合法的处理依据。对于访客 WiFi,这通常是同意。同意必须是自由给出的、具体的、知情的且明确的。预先勾选的框不算数。将 WiFi 同意与营销同意捆绑在一起也不算数。Purple 的有意识选择加入模型将网络访问同意与营销同意分开,因此访客可以在不被强迫接受营销电子邮件的情况下上网。 您需要记录收集哪些数据、收集的原因、存储的位置以及保留的时间。Purple 已通过 ISO 27001 认证、符合 GDPR 合规、符合 CCPA 合规,并已通过 Cyber Essentials 认证。该平台将数据存储在符合合规要求且具有书面保留政策的数据中心中。 您还需要一个“被遗忘权”(删除权)工作流程。如果访客请求删除其数据,您必须能够在三十天内执行。Purple 平台原生支持此功能,我之前提到的 RADIUS CoA 机制意味着您可以同时撤销活动会话。 [中顿] 现在,让我们转向实施建议和我们最常遇到的陷阱。 [中顿] 陷阱一:配置错误的围墙花园(Walled Gardens)。展示页面已加载,但社交登录按钮不起作用。或者页面已加载,但徽标没有出现,因为 CDN 域名未列入白名单。在上线前,请在没有缓存 DNS 的全新设备上测试您的围墙花园。 陷阱二:共享 PSK。一些场所仍在使用写在黑板上的单个 WiFi 密码。这不是 Captive Portal - 这是一个任何人都可以拍照并分享的共享密钥。它无法为您提供身份数据、同意记录,也无法撤销单个访问权限。请用托管的 Captive Portal 取代它。 陷阱三:DHCP 地址池大小不足。我虽已讲过这一点,但仍值得重申。根据并发连接峰值而非平均连接数来规划您的 DHCP 地址池大小。在一个拥有四万名球迷的体育场内,您可能会有两万台设备尝试同时连接。请做好相应规划。 陷阱四:未设置会话超时。如果没有会话超时设置,一台在六个月前连接且再未返回的设备仍会在您的控制器中保持已授权的会话状态。这是一个浪费资源并产生审计干扰的陈旧记录。请务必设置会话超时。30分钟的非活动时间是一个合理的默认值。 [medium pause] 快速问答环节。 问题:Captive Portal是否适用于所有设备? 回答:现代操作系统 - iOS、Android、Windows、macOS - 都内置了Captive Portal检测功能。它们会检测到重定向并自动呈现门户。较旧的设备可能需要用户手动打开浏览器。Purple 的平台可以同时处理这两种流程。 问题:我们能否将Captive Portal与 802.1X 结合使用? 回答:可以。许多企业部署对员工设备使用 802.1X - 通过证书或凭据进行自动身份验证 - 而在独立的 SSID 上为访客设备使用Captive Portal。Purple 可与同时支持这两种流程的 RADIUS 基础设施集成。 问题:OpenRoaming 怎么样? 回答:OpenRoaming 是一种标准,允许设备使用基于证书的身份验证自动连接到 WiFi,从而完全绕过Captive Portal。在 Connect 许可下,Purple 可作为免费的 OpenRoaming 身份提供商。这是实现无缝访客连接的未来趋势,但Captive Portal目前仍然是数据采集和同意管理的主流标准。 [medium pause] 总结一下。 一个架构良好的Captive Portal部署依赖于五大支柱。VLAN 隔离以保护您的企业网络。DNS 拦截和 HTTPS 重定向以呈现展示页面。RADIUS 身份验证以在获得同意后打开防火墙。正确配置的围墙花园(walled garden)以确保门户可靠加载。以及符合 GDPR 的数据处理,以保护您的访客和您的组织。 Purple 的平台在 80,000 个活跃场馆中处理了所有这五个层面的工作,在 2024 年处理了 4.4 亿次登录,并实现了 99.999% 的在线率。它与 Cisco Meraki、HPE Aruba、Ruckus、Juniper Mist、Ubiquiti UniFi、Cambium、Extreme 和 Fortinet 进行原生集成 - 因此,无论您运行的是何种硬件,都可以在不进行彻底更换的情况下进行部署。 如果您想深入了解其中的任何主题 - SSID 设计、RADIUS 配置或 GDPR 合规工作流 - 请访问 purple.ai 获取完整的技术指南库。 感谢收听。

📚 核心系列的一部分:Captive Portal Guide

header_image.png

执行摘要

对于企业级场所,访客 WiFi 是关键的基础设施,需要严格的架构规范。要弥合开放式公共访问与安全企业网络之间的差距,需要对 VLAN 隔离、DNS 拦截和身份管理进行精确配置。本指南剖析了企业级 Captive Portal 架构的机制,剥离了营销术语,从数据包级别准确解释其工作原理。我们涵盖了核心技术组件:VLAN 细分、DHCP 池管理、HTTP 重定向、RADIUS 身份验证和带宽整形。

无论您是为 酒店/住宿 连锁店部署新网络,还是升级 医疗保健 领域的传统基础设施,了解这些机制对于降低风险、确保 PCI-DSS 和 GDPR 合规性以及通过我们的 WiFi 营销分析 平台获取可操作的第一方数据都至关重要。

收听技术简报播客:

技术深潜:Captive Portal 的工作原理

从根本上说,企业级访客 WiFi 网络通过适度欺骗客户端设备以拦截其流量、强制进行身份验证,然后将其安全地路由到互联网,而完全不触及企业 LAN。

1. 通过 VLAN 进行逻辑隔离

任何安全 访客 WiFi 网络的基础都是逻辑隔离。当场所用户连接到访客 SSID 时,接入点会用特定的虚拟局域网(VLAN)ID(例如 VLAN 20)标记其流量,而企业流量则在独立的 VLAN(例如 VLAN 10)上运行。

这种标记确保了在交换机和防火墙层面上,访客流量在物理上无法路由到包含销售终端系统或患者记录的内部子网。防火墙配置了针对跨 VLAN 路由的明确拒绝规则,迫使访客流量直接流出 WAN 接口。

architecture_overview.png

2. DHCP 和 IP 地址池

连接后,客户端设备会广播一个 DHCP Discover 数据包。网络通过从专用访客子网分配一个 IP 地址来进行响应。这里一个关键的技术区别是租约时间。虽然企业设备可能会保留 IP 八天,但访客网络必须使用激进的租约时间(30 到 60 分钟),以防止在 交通 枢纽等高流转环境中出现 IP 池耗尽。

3. DNS 拦截与 Captive Portal

这是用户体验开始的地方。当新连接的设备尝试访问网站时(或者当操作系统执行其 Captive Portal 检测检查时,例如 Apple 的 captive.apple.com),网络会拦截 DNS 请求。

网关不会解析所请求网站的实际 IP 地址,而是返回 Captive Portal 的 IP 地址。然后,客户端的浏览器会被 HTTP 重定向到由 Purple 托管的登录页面。

4. 身份验证与 RADIUS

一旦用户与 Captive Portal 进行交互 - 无论是通过接受条款和条件、输入电子邮件,还是使用社交登录 - 平台必须通知本地网络控制器允许该流量。

这是通过 RADIUS (Remote Authentication Dial-In User Service) 协议处理的。Purple 充当云端 RADIUS 服务器,将 Access-Accept 消息发送回本地 WiFi 控制器或网关。然后,控制器将用户的状态从“未授权”(仅限围墙花园访问)更改为“已授权”,从而打开防火墙端口以进行标准互联网访问。

实施指南:构建规模化网络

部署访客 WiFi 需要平衡用户摩擦力与安全性以及数据采集需求。我们的云端覆盖网络与 Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme 和 Fortinet 硬件原生集成。

第 1 步:架构网络拓扑

确保您的核心交换机和防火墙支持 802.1Q VLAN 标记。将您的访客 VLAN 配置为终止于防火墙上的 DMZ 接口,从而完全绕过内部路由表。

第 2 步:配置围墙花园(Walled Garden)

围墙花园是未授权用户允许访问的 IP 地址和域名列表。这必须包括加载 Captive Portal 所需的 URL、Logo 的 CDN 资产以及社交登录的身份验证端点(例如 Microsoft Entra ID, Okta, Google Workspace)。如果围墙花园配置错误,登录页面将无法加载,从而导致用户无法访问。

第 3 步:实施客户端隔离

在您的接入点上启用客户端隔离。这可以防止已连接的访客设备通过无线介质直接相互通信,从而有效减轻访客子网内的点对点攻击和恶意软件传播。

第 4 步:集成身份管理

远离共享 PSK。部署托管 Captive Portal,通过有意识的选择加入捕获第一方数据。为了实现无缝、安全的引导,请考虑部署 OpenRoaming。Purple 在 Connect 计划下作为 OpenRoaming 的免费身份提供商,允许设备通过证书进行安全身份验证,而无需传统的欢迎页面。有关设计多网络环境的更多信息,请阅读我们的指南: Three SSIDs to rule them all: the WiFi design for guest, staff, and IoT

最佳实践与合规性

合规性并非可选项。设计合理的 Captive Portal 可保护您的组织免受责任和监管罚款。

security_compliance_checklist.png

GDPR 与数据隐私

Captive Portal 从用户连接的那一刻起就会收集个人数据。为了满足 GDPR 要求,您必须在处理此数据之前获取明确的同意。Purple 的平台可处理 GDPR 合规所需的第 7 层身份和同意要求,确保合法收集数据、安全存储,并可通过自动化工作流根据请求进行擦除。

PCI DSS v4.0 合规性

如果您的组织处理信用卡,您的网络将受 PCI DSS 约束。与 POS 系统运行在同一网络上的访客 WiFi 网络可能会将访客网络拖入 PCI DSS 范围,从而带来重大的审计负担。必须进行严格的 VLAN 隔离,以确保访客流量绝不接触持卡人数据环境。

网络安全标准

在无线传输层强制执行 WPA3 或 WPA2-AES 加密。确保您的 Captive Portal 通过 HTTPS(使用 TLS 1.2 或 TLS 1.3)提供服务,以在身份验证阶段保护用户凭据。

故障排除与风险缓解

即使是设计良好的网络也会遇到问题。以下是最常见的故障模式以及如何避免它们。

故障模式:IP 地址耗尽 在繁忙的 零售 环境中,设备会不断探测并连接到开放网络。如果您的 DHCP 租约时间是 24 小时,那么在您商店旁走过五分钟的顾客就会占用一整天的 IP 地址。 缓解措施: 将访客 VLAN 上的 DHCP 租约时间缩短至 30 分钟。

故障模式:围墙花园(Walled Garden)拦截 云服务会频繁更改其 IP 地址。如果您的围墙花园使用静态 IP 白名单来限制社交登录端点,当这些 IP 轮换时,身份验证将会中断。 缓解措施: 只要您的硬件控制器支持,就在围墙花园条目中使用基于域名的白名单。

故障模式:陈旧会话 用户在未断开连接的情况下离开场馆,但其会话在控制器上仍保持活动状态,从而消耗资源。 **缓解措施:**实施严格的空闲超时设定(例如 30 分钟),并使用 RADIUS Change of Authorisation (CoA) 在达到时间限制时主动撤销会话。

投资回报率(ROI)与业务影响

安全的 captive portal 将传统的 IT 成本中心转变为创收资产。通过捕获经过验证的第一方数据,场所可以构建详细的访客画像。Purple 在 2024 年跨越 80,000 多个活跃场所处理了 4.4 亿次登录,证明了该方法的规模和可靠性。

例如,麦当劳利用 captive portal 数据来了解就餐者的逗留时间和到店频率,而曼彻斯特机场集团(Manchester Airports Group)则根据连接分析数据来优化旅客流量。投资回报率的衡量不仅在于营销数据库的增长,还在于从该平台收集的 290 亿个数据点中所获得的运营洞察。

关键定义

Captive Portal

拦截网络流量并在授予完整互联网访问权限之前要求用户进行交互(例如接受条款或登录)的网页。

在访客网络上收集第一方数据和执行使用条款的主要机制。

RADIUS

远程身份验证拨入用户服务(Remote Authentication Dial-In User Service)。一种提供集中式身份验证、授权和计费管理的网络协议。

Purple 用于告知您的本地 WiFi 硬件允许访客访问互联网的协议。

Walled Garden

用户在通过 Captive Portal 进行身份验证之前可以访问的受限 IP 地址或域名列表。

对于在设备处于预认证状态时允许加载展示页面和社交登录提供商至关重要。

VLAN

虚拟局域网(Virtual Local Area Network)。一个逻辑子网,它将来自不同物理局域网的设备集合进行分组。

用于安全地将访客流量与企业流量进行隔离,从而确保 PCI DSS 合规性。

Client Isolation

一种无线安全设置,用于阻止连接到同一接入点的设备之间进行直接通信。

对于保护访客免受对等网络攻击以及阻止恶意软件在公共网络中传播至关重要。

DHCP 租约时间

IP 地址在过期并返回到可用池之前分配给设备的持续时间。

在访客网络上必须保持较短(30 到 60 分钟),以防止随着访客的来去而耗尽 IP 地址。

RADIUS CoA

授权变更。RADIUS 的扩展,允许服务器更改活动客户端的会话状态。

Purple 用于在用户的时间限制到期或当用户根据 GDPR 要求擦除数据时,立即断开他们的连接。

OpenRoaming

一种漫游联盟服务,允许设备使用证书自动且安全地连接到参与的 WiFi 网络。

下一代无缝连接,在 Connect 计划下,Purple 充当免费的身份提供者。

应用实例

一家拥有 200 间客房的酒店需要在其整个物业中部署访客 WiFi。他们目前使用单一的扁平网络 (192.168.1.0/24) 供前台、后勤办公室使用,并通过共享密码进行访客接入。他们希望收集访客的电子邮件地址用于营销,同时确保前台系统的安全。

  1. 实施网络分段:为前台/办公室创建 VLAN 10,为访客创建 VLAN 20。
  2. 配置防火墙:阻止从 VLAN 20 到 VLAN 10 的所有路由。将 VLAN 20 直接路由到 WAN。
  3. 取消共享密码:部署一个名为 "Hotel_Guest" 的开放 SSID。
  4. 设置 Captive Portal:配置 WiFi 控制器,将未授权的 HTTP 流量重定向到 Purple 的 Captive Portal URL。
  5. 配置 Walled Garden:将 Purple 门户网站域名和 CDN 资产列入白名单,以便加载展示页面。
  6. 配置 RADIUS:将 Purple 的 RADIUS 服务器 IP 地址和共享密钥添加到 WiFi 控制器中。
  7. 调整 DHCP:将 VLAN 20 DHCP 地址池设置为 /22 子网,并设置 60 分钟的租约时间,以应对高设备周转率。
考官评语: 这种方法通过隔离前台系统,解决了眼前的 PCI DSS 合规风险。从共享密码过渡到基于 RADIUS 的 Captive Portal,不仅可以实现所需的数据收集,还能提供单次会话控制和审计追溯。

一个大型体育场预计将迎来 40,000 名观众观看比赛。他们已经部署了 Captive Portal,但担心在 3 小时的活动期间出现网络性能问题和 IP 地址耗尽。

  1. DHCP 规划:为访客 VLAN 部署一个 /16 子网,以提供超过 65,000 个可用 IP 地址。
  2. 租约时间:将 DHCP 租约时间设置为 30 分钟,以便快速回收提前离场球迷的 IP 地址。
  3. 带宽整形:在控制器级别应用每用户 5 Mbps 下行 / 2 Mbps 上行的速率限制,以防止少数用户占用 10 Gbps 互联网管道。
  4. Client Isolation:启用 AP 级别的 Client Isolation,以防止广播风暴和对等流量降低密集体育场环境中的无线性能。
考官评语: 高密度环境需要积极的资源管理。大子网、短租约和严格带宽整形的结合,既能确保所有球迷的公平接入,又能保护核心网络的稳定性。

练习题

Q1. 您正在医院候诊室部署 captive portal。该展示页面在 Android 设备上加载成功,但 iOS 设备显示空白白色屏幕。最可能的架构原因是什么?

提示:考虑不同的操作系统如何检测 captive portal 以及它们需要访问哪些资源。

查看标准答案

围墙花园(walled garden)可能配置错误。iOS 设备会尝试访问特定的 Apple 域名(例如 captive.apple.com)来触发门户微型浏览器。如果围墙花园中未将这些域名或展示页面所需的特定 CDN 资产列入白名单,则页面将无法在 Apple CNA(Captive Network Assistant)中正确呈现。

Q2. 某零售连锁店希望提供免费 WiFi,但要求用户使用其 Microsoft Entra ID 凭据进行登录。在测试期间,用户被重定向到展示页面,点击“使用 Microsoft 登录”按钮,但页面超时。为什么?

提示:思考在 RADIUS 身份验证完成之前防火墙的状态。

查看标准答案

Microsoft Entra ID 身份验证端点尚未添加到围墙花园中。因为用户处于预身份验证状态,所以防火墙会阻止所有指向互联网的流量。要解决此问题,必须将特定的 Microsoft 登录域名和 IP 范围列入白名单,以便设备可以与身份提供者进行通信以完成 OAuth 流程。

Q3. 某场馆每天下午其访客网络上的 IP 地址都会耗尽,尽管其并发用户数少于其 DHCP 池大小。需要进行什么配置更改?

提示:思考设备离开建筑物后保留 IP 地址的时间。

查看标准答案

DHCP 租期设置过长(可能为默认的 12 或 24 小时)。短暂连接并离开的设备仍占用其 IP 地址,从而阻止了新设备的连接。应将租期缩短至 30 到 60 分钟,以便快速回收已离开访客的 IP。

Captive Portal 架构:安全性、重定向与最佳实践 | 技术指南 | Purple