跳至主要内容

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

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

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

收听本指南

查看播客转录
以自信、权威且口语化的英式英语语气发言——就像高级网络顾问在喝咖啡时向客户做简报一样。节奏沉稳,吐字清晰,不急不躁。偶尔自然停顿以示强调。专业而不呆板: 欢迎来到 Purple 技术简报。我是主持人,今天我们将深入探讨 Captive Portal 架构——特别是安全模型、重定向机制,以及区分合规且设计良好的部署与那些会在凌晨三点给你带来麻烦的部署的设计决策。 [medium pause] 让我们设想一下场景。您正在连锁酒店、零售物业或体育场运营访客 WiFi。每天有数以千计的设备连接。其中一些设备携带恶意软件。一些用户会尝试访问他们不应该访问的内容。而您的法务团队希望书面确认,在您存储任何一个字节的个人数据之前,您已经获得了有效的同意。[medium pause] 这正是 Captive Portal 架构旨在解决的问题。让我们来拆解一下它是如何实际运作的。 [medium pause] 第一部分。重定向链。 当访客设备连接到您的 WiFi SSID 时,它会从专用访客 VLAN(我们称之为 VLAN 20)上的 DHCP 地址池中获取 IP 地址。您的公司设备位于 VLAN 10 上。这两个 VLAN 之间绝对不能进行路由。从 PCI DSS 的角度来看,这是不可妥协的,坦率地说,从基本安全角度来看也是如此。 现在,设备已连接,但尚未通过身份验证。控制器将其置于我们所说的预身份验证状态。设备只能访问一小部分白名单域名——即围墙花园。其他所有访问都会被拦截。 巧妙之处就在这里。当设备尝试加载网页时——或者当操作系统执行其 Captive Portal 检测检查时(iOS 会通过自动访问 captive.apple.com 来执行此操作)——网关上的 DNS 解析器会返回 Captive Portal 服务器的 IP 地址,而不是真实的实际目的地。浏览器会跟随该重定向并跳转到您的展示页面(splash page)。 [medium pause] 这是第 3 层和第 7 层协同工作的结果。VLAN 处理网络隔离。DNS 拦截处理重定向。而 Captive Portal 则处理身份和同意层。三种不同的机制,按顺序协同工作。 [medium pause] 第二部分。身份验证和 RADIUS。 一旦访客与展示页面进行交互——无论是接受条款和条件、输入电子邮件地址、通过社交账号登录进行身份验证,还是验证短信验证码——平台都需要通知网络控制器为该特定设备打开防火墙。 这就是 RADIUS 发挥作用的地方。RADIUS 代表远程用户拨号认证服务(Remote Authentication Dial-In User Service)。它是 RFC 2865 中定义的协议,也是策略服务器与网络接入设备之间传递身份验证决策的行业标准。 Purple 作为云端托管的 RADIUS 服务器运行。当访客完成 captive portal 流程时,Purple 会向本地 WiFi 控制器发送 RADIUS Access-Accept 消息——无论该控制器是 Cisco Meraki、HPE Aruba 控制器、Ruckus SmartZone 还是 Juniper Mist 接入点。控制器接收到该消息,并将访客设备从预认证状态转换为已授权状态,从而打开防火墙规则并授予互联网访问权限。 [medium pause] 您需要了解 RADIUS 的一个重要扩展:授权更改(Change of Authorisation,简称 CoA)。CoA 允许 RADIUS 服务器向控制器发送会话中期消息,以撤销或修改已处于活动状态的会话。Purple 使用 CoA 来强制执行会话超时、断开因违反策略而被标记的设备,并支持 GDPR 下的被遗忘权(right-to-erasure)工作流——即当用户请求删除其数据时,Purple 可以立即撤销其活动会话。 [medium pause] 第三部分。Walled garden(围墙花园)。 Walled garden 是一个 IP 地址和域名白名单,未经身份验证的设备在完成 captive portal 流程之前可以访问这些地址。如果设置错误,您的展示页面(splash page)将无法加载。如果错得太离谱,就会造成安全漏洞。 您的 walled garden 至少需要包含 captive portal URL 本身、托管门户资源的任何 CDN 端点,以及您正在使用的任何社交登录提供商(如 Google、Facebook、Microsoft)的身份验证端点。如果您使用的是短信验证,则需要将短信网关的 API 端点加入白名单。 大多数部署中常遇到的陷阱是动态 IP 地址。云服务并不总是拥有静态 IP。如果您将 IP 而不是域名加入白名单,并且该 IP 发生了变化,您的门户页面就会失效。在控制器支持的情况下,请使用基于域名的白名单,并在每次更改后进行测试。 [medium pause] 第四部分。安全设计。 让我们更详细地讨论一下安全架构,因为这是大多数部署存在漏洞的地方。 第一:客户端隔离。请启用它。这是接入点上的一项设置,可防止访客设备在无线介质上直接相互通信。 如果没有它,访客网络中被入侵的设备就可以探测并攻击其他访客设备。这是一个只需勾选一次即可消除整类对等网络(peer-to-peer)攻击的修复方法。 第二:DHCP 租期。在人流量大的场所——如交通枢纽、体育场、繁忙的零售店——您需要较短的租期。30 到 60 分钟。如果您保留默认的 24 小时,而在比赛日有一万台设备连接,那么在半场结束前,您的 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)系统的子网,您的整个 POS 网络都将纳入 PCI 审计范围。这将带来巨大的合规负担。从第一天起就进行正确的隔离。 [medium pause] 第五部分。GDPR 与数据合规。 每一个收集个人数据的 Captive Portal(在 GDPR 规定下,电子邮件地址、电话号码和社交媒体登录都属于个人数据)都必须满足特定要求。 您需要合法的处理依据。对于访客 WiFi,这通常是“同意”。该同意必须是自由给予的、具体的、知情的且毫不含糊的。预先勾选的框不符合要求。将 WiFi 同意与营销同意捆绑在一起也不符合要求。Purple 的 conscious-choice 选择性加入模型将网络访问同意与营销同意分离开来,因此访客可以在不被强制接受营销邮件的情况下连接上网。 您需要记录收集了哪些数据、收集的原因、存储位置以及保留时间。Purple 已通过 ISO 27001 认证、符合 GDPR 合规要求、符合 CCPA 合规要求,并获得了 Cyber Essentials 认证。该平台将数据存储在符合合规要求的数据库中心,并拥有记录在案的数据保留政策。 此外,您还需要一个“被遗忘权”(数据擦除)工作流程。如果访客请求删除其数据,您必须在 30 天内执行该操作。Purple 的平台原生支持此功能,我之前提到的 RADIUS CoA 机制意味着您可以同时撤销活动会话。 [medium pause] 现在我们来看看实施建议以及我们最常遇到的陷阱。 [medium pause] 陷阱一:围墙花园(Walled Garden)配置错误。引导页面加载了,但社交媒体登录按钮无法工作。或者页面加载了,但标志没有显示,因为 CDN 域名没有加入白名单。在上线之前,请在没有缓存 DNS 的全新设备上测试您的围墙花园。 陷阱二:共享 PSK。一些场所仍在使用写在黑板上的单个 WiFi 密码。这不叫 Captive Portal —— 这是一个任何人都可以拍照和分享的共享密钥。它无法为您提供身份数据、同意记录,也无法撤销单个用户的访问权限。请使用托管的 Captive Portal 取代它。 陷阱三:DHCP 地址池大小配置不足。我已经提到过这一点,但还是值得重复一遍。根据高峰期的并发连接数来确定您的 DHCP 地址池大小,而不是根据平均连接数。在一个拥有 4 万名球迷的体育场内,您可能会有 2 万台设备尝试同时连接。请做好相应规划。 陷阱四:没有会话超时。如果没有会话超时,一个在六个月前连接且再未返回的设备仍会在您的控制器中保留已授权的会话状态。这是一个浪费资源并产生审计噪音的陈旧记录。请设置会话超时。无活动状态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以获取完整的技术指南库。 感谢您的收听。

header_image.png

执行摘要

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

无论您是为 酒店 连锁店部署新网络,还是升级 医疗保健 机构的传统基础设施,了解这些机制对于降低风险、确保 PCI DSS 和 GDPR 合规性,以及通过我们的 WiFi Analytics 平台捕获可付诸行动的第一方数据都至关重要。

收听技术简报播客:

技术深度剖析:Captive Portal 的工作原理

在最基本的层面上,企业宾客 WiFi 网络通过对客户端设备进行恰到好处的欺骗来拦截其流量,强制进行身份验证,然后将其安全地路由到互联网,而完全不触及企业局域网(LAN)。

1. 通过 VLAN 实现逻辑隔离

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

这种标记确保了在交换机和防火墙层级上,宾客流量在物理上无法路由到包含销售点(POS)系统或患者记录的内部子网。防火墙配置了针对跨 VLAN 路由的明确拒绝规则,从而强制宾客流量直接通过 WAN 接口流出。

architecture_overview.png

2. DHCP 与 IP 地址池

连接后,客户端设备会广播一个 DHCP Discover 数据包。网络通过从专用访客子网分配一个 IP 地址来进行响应。这里一个关键的技术区别是租约时间。虽然企业设备可能会保留 IP 八天,但访客网络必须使用激进的租约时间(30 到 60 分钟),以防止在 Transport 枢纽等高周转环境中出现 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、徽标的 CDN 资产以及社交登录(例如 Microsoft Entra ID、Okta、Google Workspace)的认证终端节点。如果围墙花园配置错误,展示页面将无法加载,从而导致用户陷入死胡同。

步骤 3:实现客户端隔离

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

步骤 4:集成身份管理

摆脱共享 PSK 的模式。部署托管的 Captive Portal,通过用户自主选择的加入机制收集第一方数据。如需无缝、安全的接入体验,请考虑部署 OpenRoaming。在 Connect plan 下,Purple 作为免费的 OpenRoaming 身份提供商,允许设备通过证书进行安全认证,而无需传统的展示页面。有关设计多网络环境的更多信息,请阅读我们的指南: 掌控全局的三个 SSID:面向访客、员工和物联网的 WiFi 设计

最佳实践与合规性

合规并非可选。合理设计的 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 通过使用 TLS 1.2 或 TLS 1.3 的 HTTPS 进行服务,以在认证阶段保护用户凭证。

故障排除与风险缓解

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

故障模式:IP 地址耗尽 在繁忙的 零售 环境中,设备会不断探测并连接到开放网络。如果您的 DHCP 租期为 24 小时,那么在您店外路过 5 分钟的顾客就会占用一整天的 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

远程身份验证拨号用户服务。一种提供集中式认证、授权和计费管理的网络协议。

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

Walled Garden

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

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

VLAN

虚拟局域网。一种逻辑子网,将来自不同物理局域网的设备集合进行分组。

用于安全地将访客流量与企业流量隔离,确保符合 PCI DSS 标准。

Client Isolation

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

对于保护访客免受点对点攻击以及防止恶意软件在公共网络上蔓延至关重要。

DHCP Lease Time

IP 地址分配给设备直到其过期并返回到可用池中的持续时间。

在访客网络上必须保持较短的租约时间(30-60分钟),以防止因访客来往而导致 IP 地址耗尽。

RADIUS CoA

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

当用户的时长限制过期,或者用户根据 GDPR 要求擦除数据时,Purple 会使用此功能立即断开用户连接。

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. 客户端隔离:启用 AP 级别的客户端隔离,以防止在密集的体育场环境中因广播风暴和点对点流量导致无线性能下降。
考官评语: 高密度环境需要积极的资源管理。大子网、短租约和严格带宽整形的结合,确保了所有球迷的公平访问,同时保护了核心网络的稳定性。

练习题

Q1. 您正在医院候诊室部署 Captive Portal。Splash Page 在 Android 设备上加载成功,但在 iOS 设备上显示白屏。最可能的架构原因是什么?

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

查看标准答案

Walled Garden(围墙花园)可能配置错误。iOS 设备会尝试访问特定的 Apple 域名(例如 captive.apple.com)以触发 Portal 微型浏览器。如果这些域名或 Splash Page 所需的特定 CDN 资产未在 Walled Garden 中加入白名单,则该页面将无法在 Apple CNA(Captive Network Assistant)中正常渲染。

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

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

查看标准答案

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

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

提示:想一想设备在离开大楼后保留 IP 地址的时间有多长。

查看标准答案

DHCP 租约时间设置得太高(很可能是默认的 12 或 24 小时)。短暂连接后离开的设备仍在占用其 IP 地址,从而阻止了新设备的连接。应将租约时间缩短至 30 到 60 分钟,以便快速循环使用已离场访客的 IP。