跳至主要内容

使用外部 Port 门服务器设置 FortiGate Captive Portal

您将能够配置 FortiGate 以强制实施由 Purple 托管的外部 Captive Portal,并具备 RADIUS 认证与计费、有效的豁免列表以及受信任的证书。您还可以在内置 Portal 和外部 Portal 之间进行选择,在真实设备上进行测试,并修复最常阻碍访客登录的故障。

作者:Tom Hackett发布于
📖 15 分钟阅读1,004 字3 应用实例12 关键定义

核心系列的一部分:Captive Portal 指南 →

使用外部 Port 门服务器设置 FortiGate Captive Portal

在 FortiGate 上,外部 Captive Portal 需要具备四个条件。将 SSID 或接口安全模式设置为带外部 portal URL 的 Captive Portal。将认证和计费指向 RADIUS 服务器。将 portal 和社交登录域名排除在认证之外,并安装可信证书,以便 HTTPS 回传不会触发浏览器警告。

FortiGate 外部 Captive Portal 究竟有什么作用?

Captive Portal 是访客在网络允许其流量外出之前必须完成的网页。在外部设置中,由 FortiGate 执行 portal 策略,并由独立的服务器托管该页面。使用 Purple 时,该服务器就是我们的 Guest WiFi 平台。

登录过程分为五个阶段:

  1. 访客加入由 FortiAP 广播的开放 SSID(网络名称),或者加入 FortiGate 接口后面的网络。他们会获取一个 IP 地址。
  2. 设备发起首次 Web 请求。FortiGate 会拦截该请求并将浏览器重定向到外部 portal URL。它会附加标识会话、客户端 MAC 地址以及 FortiGate 自身登录地址的参数。
  3. 访客完成 Purple 展示页面:填写表单、社交登录或接受条款。
  4. Portal 将凭据回传给 FortiGate 的认证监听程序。默认情况下,它在 TCP 1000 上监听 HTTP,在 TCP 1003 上监听 HTTPS。
  5. FortiGate 向 Purple 发送 RADIUS Access-Request。收到 Access-Accept 后,它会将设备标记为已认证并应用访客防火墙策略。随后计费消息会报告会话开始、过渡使用情况和停止。

RADIUS(远程身份验证拨入用户服务)是 FortiGate 用于询问“该设备是否可以上网?”的协议。它在 RFC 2865 中定义,计费功能在 RFC 2866 中定义。

工作分工是关键所在。FortiGate 负责执行层面:防火墙策略、NAT 和会话状态。Purple 负责处理身份、同意和访客数据。您可以在 Purple 中更改所有星点的展示页面,而无需修改 FortiOS。

内置 portal 还是外部 portal?

FortiOS 自带内置的 Captive Portal。它可以使用,对于包含免责声明页面的单个站点来说可能已经足够。下表展示了这两种方式的区别。

FortiGate 内置 portal 结合 Purple 的外部 portal
页面托管位置 每台 FortiGate 上的替换消息 HTML 由 Purple 托管,所有站点统一一套设计
登录选项 认证、免责声明和电子邮件收集 portal 类型 表单、社交登录和条款接受
如何授予访问权限 本地或远程防火墙用户组 通过 UDP 1812 使用 RADIUS 连接至 Purple
同意处理 仅收集电子邮件;知情同意记录需自行建立 记录每位访客的自主选择知情同意
在 40 个站点之间更改页面 编辑每台 FortiGate 或通过 FortiManager 推送 在 Purple 中进行一次修改
报告 FortiGate 日志和 FortiAnalyzer 按场馆划分的 WiFi Analytics 仪表板
混合厂商设备环境 仅限 Fortinet 硬件 在 Cisco Meraki、HPE Aruba、Ruckus、Juniper Mist、Ubiquiti UniFi、Cambium、Extreme 和 Fortinet 上使用相同的 Portal
最佳适用场景 单一场所,仅免责声明接入 希望获取第一方数据的多场所设施

在开始 FortiGate Captive Portal 设置之前需要准备什么?

在打开 FortiGate GUI 之前,请收集以下内容。大多数部署失败都可以追溯到此列表中遗漏的项目。

  • 运行受支持 FortiOS 版本的 FortiGate。 可以由 FortiGate 作为无线控制器管理 FortiAP,也可以由其接口之一为访客网络提供服务。接口模式支持第三方接入点和有线访客端口。
  • 访客网络网段。 将访客置于其独立的 VLAN(虚拟局域网,一个独立的第 2 层广播域)或专用 SSID 接口上。切勿与员工或支付设备共享子网;PCI-DSS 要求将持卡人系统与不可信网络进行隔离。
  • 您的 Purple 账户参数。 您需要外部 Portal URL、RADIUS 服务器地址和共享密钥。这些信息来自 Purple 的 FortiGate 支持文章和您的 Purple 仪表板。它们针对您的账户定制,切勿从论坛帖子中复制。
  • 出站可达性。 FortiGate 必须能够通过 UDP 1812(用于认证)和 UDP 1813(用于计费)连接到 Purple 的 RADIUS 服务器。
  • 受公信力信任的证书。 它必须包含解析为 FortiGate 访客接口地址的主机名。下面的证书部分会解释具体原因。
  • 免认证清单(Walled Garden)清单。 确定您将提供哪些登录方式,因为每种方式都会将域名添加到您的免认证清单中。
  • 可靠的网络覆盖。 Portal 无法修复弱信号。如果访客抱怨掉线,请先进行现场勘测;我们的 WiFi 现场勘测 指南涵盖了此方法。

不同 FortiOS 版本之间有什么变化?

Fortinet 会在主要 FortiOS 版本之间移动和重命名 Captive Portal 设置。在某些版本上,免认证清单或认证证书等选项在 CLI 中更容易设置或仅在 CLI 中可用。桥接模式和隧道模式 SSID 的行为也可能有所不同,具体取决于固件版本。

三个好习惯可以保护您的系统:

  • 请查阅 Fortinet 文档库中专门针对您的 FortiOS 版本的《管理指南》,而不是最新的指南。
  • 在每次升级前,请检查发布说明中关于 Captive Portal 和 RADIUS 的更改。
  • 在每次固件升级后,重跑完整的测试用例,切勿让访客替您发现问题。

如何使用外部 Portal 服务器在 FortiGate 上设置 Captive Portal?

以下步骤同样适用于 FortiAP SSID 和 FortiGate 接口。Purple 的 FortiGate 支持文章包含每个步骤的具体数值和截图。请结合本摘要使用。

第 1 步:将 Purple 添加为 RADIUS 服务器

在 FortiGate 上创建一个 RADIUS 服务器对象。输入 Purple 服务器地址和您账户中的共享密钥。启用记账(accounting),以便 FortiGate 向 Purple 发送会话起始、中间及停止记录。

如果 FortiGate 拥有多个 WAN 链路,请显式设置 RADIUS 源地址。RADIUS 请求应始终从 Purple 预期的地址发出;否则故障转移会在无感知的情况下中断登录。在继续之前,请使用 RADIUS 对象上的内置连接测试。

第 2 步:创建防火墙用户组

创建一个防火墙类型的用户组,并将 Purple RADIUS 服务器添加为远程服务器。Captive Portal 将针对此组对访客进行身份验证。每个身份验证源保持一个组,以确保故障排查清晰明了。

第 3 步:将安全模式设置为 Captive Portal

对于 FortiAP,编辑访客 SSID。对于有线或第三方接入点,编辑访客接口。然后:

  • 将安全模式设置为 Captive Portal。
  • 选择身份验证 Portal 类型并选择外部 Portal 选项。
  • 粘贴来自 Purple 的外部 Portal URL。
  • 选择第 2 步中的用户组。
  • 选择登录后的重定向:访客的原始 URL 或您指定的新页面。

在 FortiAP 上,将 SSID 分配给您的接入点所使用的 FortiAP 配置文件。Fortinet 的文档使用隧道模式作为 Captive Portal SSID 的参考。如果您使用本地桥接,请确认您的固件在该模式下支持 Captive Portal。

第 4 步:构建豁免列表

为访客在身份验证前必须访问的所有目的地创建防火墙地址对象。将它们作为安全豁免列表附加到 SSID 或接口。下一节将列出哪些内容属于这里,哪些内容必须排除在外。

第 5 步:编写访客防火墙策略

创建一条从访客 SSID 或接口到 WAN 的策略,并启用 NAT。应用您的合理使用策略所需的 Web 过滤和应用控制配置文件。确保访客在身份验证之前可以解析 DNS,否则重定向将永远无法触发。

第 6 步:安装证书并使用 HTTPS 进行 Post-Back

导入您的公信证书,并设置 FortiGate 使用它进行身份验证。将 Portal 的 Post-Back 指向 HTTPS 监听器,使用该证书上的主机名。这可以消除访客在提交表单时原本会看到的警告。

第 7 步:对齐超时设置

FortiGate 的身份验证超时决定了已验证设备在列表中保持的时间。Purple 的会话设置则决定了再次访问的访客看到的内容。如果您的固件支持 RADIUS Session-Timeout 属性 (RFC 2865),即可让 Purple 从一个地方统一设置会话时长。

FortiGate 豁免列表应包含哪些内容?

豁免列表是 FortiGate 的围墙花园:设备在通过身份验证之前可以访问的目的地。设置太短,Portal 就会中断。设置太长,访客无需登录即可浏览网络。

类别 示例条目 原因 豁免?
Purple 门户和资源 Purple 的 FortiGate 支持文章中列出的主机名 加载 Splash 页面、图像和脚本 是
社交登录提供商 Facebook、Google、Apple 和 Microsoft 的登录域名,作为通配符 FQDN 对象 OAuth 登录必须在身份验证之前完成 是,仅限您启用的提供商
您自己的信息页面 医院的患者信息网站、体育场的比赛日页面 访客无需登录即可获取重要信息 可选
操作系统 Captive Network 检测 captive.apple.com、connectivitycheck.gstatic.com、www.msftconnecttest.com 探测必须失败,以便设备打开登录页面 否,绝不
通用浏览 新闻、搜索和流媒体网站 绕过 portal 否

两条规则可防止大多数 Walled Garden 故障。

使用 FQDN 对象,而不是 IP 地址。 社交登录提供商通过内容分发网络提供登录页面,这些网络地址会不断变化。静态 IP 列表会在几周内失效。

确保 FortiGate 和访客在 DNS 上保持一致。 FortiGate 本身可以解析 FQDN 地址对象。通配符 FQDN 对象是根据通过 FortiGate 的 DNS 响应填充的。如果 DHCP 向访客分发公共解析器,访客和 FortiGate 可能会接收到不同的 CDN 地址,从而导致豁免条目匹配失败。请将 FortiGate 或其使用的解析器作为访客 DNS 服务器分发。

对于 医疗保健 站点,豁免患者信息页面允许访客无需登录即可查询病房开放时间。请将此类条目保持在简短的命名列表中,并每季度进行审查。

为什么 FortiGate Captive Portal 会显示证书错误?

有两种不同时刻会产生证书警告。它们的原因和解决方法各不相同。

警告 1:访客在登录前打开了 HTTPS 网站

大多数浏览行为都是 HTTPS。为了进行重定向,FortiGate 必须自己响应 TLS 握手,为其不拥有的网站提供自己的证书。浏览器会检测到名称不匹配并发出警告。没有任何证书可以解决这个问题,因为没有证书对所有网站都有效。

HSTS 预加载列表(HTTP 严格传输安全,告知浏览器拒绝不安全的连接)上的网站完全无法通过点击绕过。银行和电子邮件网站通常属于这一类。

解决方法是依赖操作系统的 Captive Network 检测。iOS、Android、Windows 和 macOS 在加入网络时都会探测一个纯 HTTP URL。FortiGate 会重定向该探测,设备会在访客打开浏览器之前打开登录页面。这就是为什么决不能将检测域名放入豁免列表的原因。

警告 2:访客提交 Portal 表单

访客完成 Purple 页面后,浏览器会提交至 FortiGate 的身份验证侦听器。如果该侦听器使用出厂证书,由于该证书是自签名的,浏览器将发出警告。

如果 Portal 重定向投递至 HTTP 监听器,Chrome 会警告该表单不安全。页面虽然是 HTTPS,但表单却通过 HTTP 提交。

解决办法是步骤 6:在解析至 FortiGate 访客接口的主机名上部署一个受公众信任的证书,并通过 HTTPS 进行回传投递。请务必在到期前续订。过期的身份验证证书会导致该 FortiGate 上所有 SSID 的每一次登录同时失效。

对您的具体配置有疑问吗?

我们的团队与 80,000 多个场所的运营方、IT 经理和网络工程师保持合作。预约 20 分钟的通话,我们将为您展示同行是如何解决类似问题的。

如何检查 FortiGate 访客 Portal 是否正常工作?

请在真实设备上进行测试,而不仅仅是笔记本电脑。建立一个包含 iOS、Android、Windows 和 macOS 的测试矩阵,并在每个平台上运行各项检查。

  1. 连接 SSID。 登录页面应在几秒钟内自动打开。如果没有打开,请检查豁免列表中是否包含检测域名。
  2. 完成每种登录方式。 测试表单、您启用的每个社交提供商以及条款接受选项。
  3. 留意警告信息。 在整个流程中不应出现任何证书警告。
  4. 在 FortiGate 上确认身份验证。 已验证的防火墙用户监视器应将该设备列入访客组中。
  5. 通过 CLI 确认 RADIUS。 diagnose test authserver radius 可直接测试服务器对象。在启用 debug 的情况下,diagnose debug application fnbamd -1 会实时显示每个 Access-Request 和响应。
  6. 在 Purple 中确认计费。 会话中应显示一条开始记录、随后的定时更新以及访客离开时的停止记录。
  7. 测试再次访问。 在超时后重新连接,检查访客是否能看到您预期的页面。

FortiGate Captive Portal 常见故障及解决方法?

症状 可能的原因 解决方法
登录页面从未出现;设备显示“已连接” 豁免列表中包含检测域名,或策略允许在身份验证前通过流量 移除 captive.apple.com 及类似条目;检查访客策略是否要求身份验证
展示页面加载为空白或无样式 豁免列表中缺少 Purple 资源主机名 添加 Purple 的 FortiGate 支持文章中列出的每个主机名
登录前浏览网页出现证书警告 FortiGate 正在拦截 HTTPS 网站 正常现象;访客应使用登录页面或打开 HTTP 页面
提交表单时出现证书警告 身份验证监听器上使用的是出厂默认证书 安装受信任的证书并基于 HTTPS 进行回传投递
社交登录一直转圈或失败 提供商域名未豁免,或访客与 FortiGate 之间的 DNS 不匹配 使用通配符 FQDN 对象;将 FortiGate 设置为访客 DNS
Portal 接受了信息,但无法上网 RADIUS 拒绝或超时:共享密钥错误、源地址错误、UDP 1812 被阻塞 运行 authserver 测试;读取 fnbamd 调试输出
访客被要求登录过于频繁 身份验证超时或空闲超时设置过短 将 FortiGate 超时时间与 Purple 会话设置保持一致
报告中缺少会话 计费已被禁用或 UDP 1813 被阻止 在 RADIUS 对象上启用计费;开放 UDP 1813
固件升级后登录失效 新版本中的设置已移动或默认值已更改 根据发布说明重新检查,并重新运行测试矩阵

在真实场景中效果如何?

场景 1:一家拥有 200 间客房的酒店更换先前的访客 WiFi 供应商

情况。 一家拥有 200 间客房的酒店运行了一台 FortiGate,配备 30 台 FortiAP 以及隧道模式的访客 SSID。使用 iPhone 的访客看不到登录弹窗,而是打开了 Safari。而成功访问该页面的访客在提交时则遇到了证书警告。

采取的措施。 工程师在豁免列表中发现了上一家供应商遗留的 captive.apple.com 并将其删除。他们在解析为访客接口的主机名上安装了受公众信任的证书,并将 post-back 更改为 HTTPS。他们添加了 Purple 的 RADIUS 服务器并启用了计费。

结果。 在变更后的测试矩阵中,登录弹窗在所有四个平台上均自动打开。登录流程中未出现任何证书警告。包含启动、过渡和停止条目的会话记录成功传输至 Purple,涵盖了每个测试会话。有关酒店部署的更多信息,请参阅 酒店。

场景 2:由 MSP 管理的 40 家门店零售连锁企业

情况。 一家 MSP 为一家拥有 40 家门店的 零售 连锁企业为每家门店配置了一台 FortiGate。顾客反映使用 Google 和 Apple 登录时偶尔出现故障,但仅限于部分门店。

采取的措施。 受影响门店的 DHCP 为顾客分配了公共 DNS 解析器。FortiGate 将提供商的 CDN 主机名解析为不同的地址,导致豁免条目未命中。MSP 将提供商更改为通配符 FQDN 对象,并将 FortiGate 设置为访客 DNS 服务器。他们在三家门店试点运行了这一变更,随后通过 FortiManager 进行全面推广。

结果。 在每台平台上的每次试点测试中,所有三种社交登录方式均成功完成。MSP 随后将相同的模板应用到了其余的 37 家门店。如果您向此类客户转售访客 WiFi,我们的 白标 Captive Portal 软件 指南涵盖了相关商业核查事项。

场景 3:配有有线访客自助终端的议会图书馆

情况。 一个议会图书馆网络在第三方接入点和四个有线公共自助终端上提供访客 WiFi。两者均通过一台 FortiGate 连接。议会希望统一服务条款页面和审计轨迹。

采取的措施。 工程师在 FortiGate 访客接口而非 SSID 上启用了 Captive Portal。同一个外部 Purple Portal 和 RADIUS 组同时为无线访客和自助终端会话提供服务。

结果。 无线和有线会话均出现在 Purple 的同一个计费日志中,且对应同一个条款接受记录。这使议会在被问及谁在何时使用了网络时,能够提供统一的答案。

它的成本是多少,又能带来什么回报?

成本构成

硬件成本通常为零。Captive Portal 和 RADIUS 客户端是 FortiOS 的一部分,因此您只需配置现有的 FortiGate 和 FortiAP 即可。Purple 兼容任何硬件:同一个 Portal 可以在 Cisco Meraki、HPE Aruba、Ruckus、Juniper Mist、Ubiquiti UniFi、Cambium、Extreme 和 Fortinet 上运行。我们关于 为什么下一次 WiFi 升级不需要新硬件 的博客提供了更广泛的阐述。

软件成本即 Purple 方案:Connect、Capture 或 Engage。根据您计算站点、接入点或访客数量的方式不同,定价也有所差异。我们的 Captive Portal 定价模型 指南对按站点、按接入点和按用户计费的模型进行了对比。

精力成本是每个站点的工程师时间。只需制作一次模板,在试点项目上进行测试,然后通过 FortiManager 推送到整个网络区域中的所有设备。

您获得的回报

  • 获得授权的第一方数据。 Purple 会记录每位访客的主动勾选同意。数据处理符合 GDPR 要求,且 Purple 拥有 ISO 27001、Cyber Essentials 和 B Corp 认证。
  • 覆盖整个网络区域的统一 Portal。 只需修改一次 Dash 页面,无需在每个 FortiGate 上逐个修改,包括采用其他硬件的站点。
  • 可作为行动依据的报告。 计费数据提供给 WiFi Analytics:按场馆统计的访问量、停留时间和回头率。
  • 具备大规模扩展能力的平台。 Purple 运行于 80,000 多个活跃场馆,并在 2024 年处理了 4.4 亿次登录( Purple 自有数据)。对于酒店和餐饮运营商,我们的 餐厅 WiFi 指南涵盖了英国地区的覆盖范围与安全性相关内容。

常见问题

Purple 能否与我现有的 FortiGate 和 FortiAP 硬件配合使用?

可以,Purple 可以在您现有的 FortiGate 和 FortiAP 设备上运行,无需添加新硬件。FortiGate 强制执行 Captive Portal 并向 Purple 发送 RADIUS 身份验证和计费数据,而 Purple 则托管 Dash 页面。相同的方法也适用于 FortiGate 接口后面的第三方接入点。Purple 还支持 Cisco Meraki、HPE Aruba、Ruckus、Juniper Mist、Ubiquiti UniFi、Cambium 和 Extreme,因此混合硬件网络环境可以共享同一个 Portal。

使用外部 Captive Portal 是否需要额外的 Fortinet 许可证?

不需要,Captive Portal 和 RADIUS 客户端是 FortiOS 的标准功能,因此 FortiGate 不需要单独的 Portal 许可证。您只需要受支持的 FortiOS 版本;对于无线网络,需要由 FortiGate 管理的 FortiAP。无论是 Connect、Capture 还是 Engage,Purple 方案都是单独授权的。我们的 Captive Portal 定价模型指南解释了按站点、按接入点和按用户定价的区别。

我能否在不停机的情况下从现有的访客 WiFi 提供商迁移过来?

是的,只要您在切换前并行构建 Purple 配置即可。在现有的 RADIUS 服务器和用户组旁添加 Purple 的 RADIUS 服务器和新用户组,然后使用它们创建一个测试 SSID 或接口。在该测试网络上运行完整的设备测试矩阵。测试通过后,重新指向生产环境的访客 SSID,并移除旧提供商的豁免列表条目,特别是任何 Captive Network 探测域名。

通过 FortiGate Portal 收集的访客数据符合 GDPR 要求吗?

是的,当 Portal 在 Purple 上运行时,同意和数据处理均符合 GDPR 规定。Purple 会记录每位访客的主动选择同意信息,因此营销同意与网络接入是完全独立的。Purple 已通过 ISO 27001 和 Cyber Essentials 认证。FortiGate 会将客户端 MAC 地址等会话详细信息传递给 Portal,但访客记录存储在 Purple 中。您仍然是数据控制者,可自行设置数据保留期和隐私声明。

我应该使用 FortiGate 内置 Portal 还是外部 Portal?

如果单场地仅需要免责声明页面,请使用内置 Portal。如果您运营多个场地、需要社交登录或第一方数据,或者管理混合硬件,请使用外部 Portal。内置页面保存在各个 FortiGate 上,必须按场地逐个编辑。而外部 Purple Portal 只需在一个地方进行修改,就能记录所有场馆的同意授权和会话分析数据。

部署 FortiGate 需要多少工程精力?

单个场地只是配置更改,而不是硬件项目。您需要创建一个 RADIUS 服务器对象、一个用户组、一个 SSID 或接口更改、一个豁免列表、一条策略和一个证书。大部分精力都集中在 iOS、Android、Windows 和 macOS 的测试上。对于大型资产,可先在 FortiManager 中构建一次配置模版,在少数场地进行试点,然后推广到所有地方。

MSP 能否在多个客户的 FortiGate 上运行 Purple?

是的,MSP 可以通过一个账户结构在多个客户的 FortiGate 上运行 Purple。每个客户场地都使用相同的配置模式,因此您可以在 FortiManager 中建立模板并分批部署。Purple 的硬件无关设计意味着使用 Cisco Meraki、HPE Aruba 或 Ruckus 的客户可以使用相同的 Portal。签约前请参阅我们的白标 Captive Portal 软件指南中的商业条款。

外部 Portal 是否适用于有线访客网络?

是的,FortiGate 既可以在 FortiAP SSID 上实施 Captive Portal,也可以在接口上实施。在服务于有线访客 VLAN 的接口上启用 Captive Portal,选择外部 Portal 并将其指向同一个 Purple RADIUS 组。这样,自助终端、会议室接口和第三方无线接入点即可与无线访客共享同一个 Dashboard 页面、条款接受记录和记账日志。

关键定义

Captive portal

设备在网络转发其流量之前必须完成填写的网页。FortiGate 会拦截第一个 HTTP 请求并将其重定向至外部 Portal URL,同时附加标识会话、客户端 MAC 地址和 FortiGate 登录地址的参数。

在设置 SSID 或接口安全模式时会遇到它。选择外部选项会将页面、同意书和访客数据迁移至 Purple,而 FortiGate 继续负责策略实施。

RADIUS

远程认证拨号用户服务,在 RFC 2865 中定义。客户端发送 Access-Request,服务器回复 Access-Accept 或 Access-Reject。认证通常运行在 UDP 1812 上。

FortiGate 使用指向 Purple 的 RADIUS 服务器对象来判断访客是否通过认证。错误的共享密钥、源地址或被阻断的 UDP 1812 会导致 Portal 能够接收信息但无法提供互联网访问能力。

RADIUS 计费

在 RFC 2866 中规范。客户端发送 Accounting-Request 消息来标记会话开始、中间更新和停止,通常运行在 UDP 1813 上。

计费功能将会话记录传输至 Purple 报表中。如果禁用该功能或 UDP 1813 被阻断,报表中将缺失会话数据。

共享密钥

RFC 2865 中定义的密钥,RADIUS 客户端和服务器使用它来相互身份验证并隐藏 Access-Request 数据包中的 User-Password 属性。

该值特定于您的 Purple 账户。请从控制面板和 Purple 的 FortiGate 支持文章中获取,切勿从论坛帖子中获取。

Session-Timeout

RFC 2865 中定义的 RADIUS 属性,服务器在 Access-Accept 中返回该属性,以设置重新身份验证前的最大会话时长。

如果您的 FortiOS 版本支持,Purple 可以集中设置会话时长,而无需依赖每个 FortiGate 的身份验证超时。

豁免列表 (walled garden)

附加到 Captive Portal SSID 或接口的防火墙地址对象集,设备可以在身份验证之前访问这些对象。在 FortiGate 上,这些通常是 FQDN 或通配符 FQDN 地址对象。

列表过短会导致展示页面或社交登录中断;列表过长则会导致访客未登录即可直接浏览网络。

通配符 FQDN 地址对象

匹配域名模式的 FortiGate 地址对象。FortiGate 通过经过 FortiGate 的 DNS 响应来填充它,而不是像标准 FQDN 对象那样自行解析。

社交登录提供商通过 IP 经常变化的 CDN 来提供页面。仅当访客使用 FortiGate 或其解析器进行 DNS 解析时,通配符 FQDN 对象才能可靠匹配。

强制网络门户检测

操作系统在加入网络时对纯 HTTP URL 进行的探测,例如 captive.apple.com、connectivitycheck.gstatic.com 和 www.msftconnecttest.com。被重定向的探测会提示设备打开其登录页面。

这些域名绝不能列入豁免名单。如果被豁免,设备将报告已连接且不会弹出登录页面。

HSTS

RFC 6797 中指定的 HTTP 严格传输安全。网站指示浏览器仅通过 HTTPS 连接。当出现证书警告时,无法点击跳过 HSTS 预加载列表中的网站。

解释了为什么访客在登录前打开银行或电子邮件网站会遇到硬性拦截。解决方法是强制网络门户检测,而不是证书。

VLAN

虚拟局域网,一种独立的 2 层广播域,根据 IEEE 802.1Q 在 Trunk 链路上进行标记。

访客应属于他们自己的 VLAN 或 SSID 接口,绝不能属于与员工或支付设备共享的子网。

PCI DSS

PCI Security Standards Council 发布的支付卡行业数据安全标准。它要求处理持卡人数据的系统与不受信任的网络进行隔离。

访客 WiFi 是不受信任的网络,因此将其与支付设备隔离有助于缩小 PCI DSS 的评估范围。

隧道模式 SSID

一种 FortiAP SSID 模式,其中客户端流量被建立隧道传回 FortiGate 无线控制器,而不是在接入点本地桥接。

Fortinet 的文档使用隧道模式作为 Captive Portal SSID 的参考。如果您使用本地桥接,请确认您的固件在该模式下支持 Captive Portal。

应用实例

一家拥有 200 间客房的酒店使用 FortiGate、30 台 FortiAP 和隧道模式的访客 SSID,发现使用 iPhone 的访客看不到登录页面。而那些打开页面的访客在提交时遇到了证书警告。是如何修复的?

工程师在豁免列表中发现了上一家服务商留下的 captive.apple.com 并将其删除。由于检测探针被豁免,iOS 认定网络是开放的,因此从未打开登录页面。接着,他们在解析为访客接口的主机名上安装了公共受信任的证书,并将 post-back 迁移至 HTTPS,从而消除了自签名证书警告。最后,他们添加了启用计费功能的 Purple RADIUS 服务器。在变更后的测试矩阵中,登录页面在所有四个平台上自动打开,且未出现证书警告。每个测试会话都成功传输至 Purple,并包含 start、interim 和 stop 记录。

一家为 40 家连锁门店提供服务的 MSP,每家门店运行台 FortiGate,发现购物者在使用 Google 和 Apple 登录时偶尔会出现失败,但仅发生在部分门店。原因和解决方法是什么?

在受影响的门店中,DHCP 给购物者分配了公共 DNS 解析器。FortiGate 将提供商的 CDN 主机名解析出的地址与购物者接收到的地址不同,导致豁免条目未匹配成功。该 MSP 将提供商切换为通配符 FQDN 对象,并将 FortiGate 指定为访客 DNS 服务器,使 FortiGate 和购物者看到相同的解析结果。他们在三家门店进行了试点变更,所有三种社交登录方式在各个平台上均顺利完成。随后,他们通过 FortiManager 将相同的模板推送到其余 37 家门店。

一家议会图书馆在同一个 FortiGate 后面,通过第三方接入点和四个有线公共自助机提供访客 WiFi。议会希望拥有统一的条款页面和审计日志。这是如何配置的?

工程师在 FortiGate 访客接口上启用了 Captive Portal,而不是在 SSID 上启用。接口模式覆盖了第三方接入点和有线访客端口,因此一个设置即可覆盖两者。同一个外部 Purple Portal 和 RADIUS 用户组同时为无线访客和自助机会话提供服务。随后,无线和有线会话全部显示在 Purple 的同一个计费日志中,对应一份条款接受记录。当被问及谁在何时使用了网络时,这为议会提供了单一标准的解答。

常见问题

Purple 可以配合我现有的 FortiGate 和 FortiAP 硬件使用吗?

是的,Purple 可以运行在您现有的 FortiGate 和 FortiAP 设备上,无需添加新硬件。FortiGate 强制执行 Captive Portal 并将 RADIUS 认证和计费发送到 Purple,而 Purple 托管 Splash Page。同样的方法也适用于位于 FortiGate 接口后面的第三方接入点。Purple 还支持 Cisco Meraki、HPE Aruba、Ruckus、Juniper Mist、Ubiquiti UniFi、Cambium 和 Extreme Networks,因此混合设备可以共享同一个 Portal。

对于外部 Captive Portal,我需要额外的 Fortinet 许可证吗?

不需要,Captive Portal 和 RADIUS 客户端是标准的 FortiOS 功能,因此 FortiGate 不需要单独的 Portal 许可证。您需要支持的 FortiOS 版本,对于无线网络,需要由 FortiGate 管理的 FortiAP。Purple 计划(无论是 Connect、Capture 还是 Engage)都是单独授权的。我们的 Captive Portal 定价模式指南解释了按站点、按接入点和按用户定价的区别。

我可以在不中断业务的情况下从当前的访客 WiFi 提供商迁移过来吗?

可以,只要您在切换前并行构建 Purple 配置。在现有的 RADIUS 服务器和用户组旁边添加 Purple 的 RADIUS 服务器和新的用户组,然后使用它们创建一个测试 SSID 或接口。在该测试网络上运行完整的设备测试矩阵。通过测试后,重新指向生产访客 SSID 并删除旧提供商的豁免列表条目,特别是任何 Captive Network 探测域名。

通过 FortiGate Portal 收集的访客数据符合 GDPR 要求吗?

是的,当 Portal 在 Purple 上运行时,同意和数据处理都符合 GDPR。Purple 记录每个访客的明确选择同意,因此营销同意与网络访问是分开的。Purple 获得了 ISO 27001 和 Cyber Essentials 认证。FortiGate 会将会话详细信息(例如客户端 MAC 地址)传递给 Portal,但访客记录保存在 Purple 中。您仍然是数据控制者,并设置自己的保留期和隐私声明。

我应该使用 FortiGate 内置 Portal 还是外部 Portal?

如果单个站点只需要免责声明页面,请使用内置 Portal。当您运营多个站点、需要社交登录或第一方数据,或者管理混合硬件时,请使用外部 Portal。内置页面保存在每个 FortiGate 上,必须按站点逐个编辑。外部 Purple Portal 可以集中更改,并记录每个场所的同意和会话分析。

FortiGate 部署需要多少工程精力?

单个站点只是配置更改,而不是硬件项目。您需要创建一个 RADIUS 服务器对象、一个用户组、一个 SSID 或接口更改、一个豁免列表、一个策略和一个证书。大部分精力集中在 iOS、Android、Windows 和 macOS 上的测试。对于多站点网络,可以在 FortiManager 中建立一次配置模板,在少数几个站点试点,然后推广到所有位置。

MSP 是否可以在多个客户的 FortiGate 上运行 Purple?

是的,MSP 可以通过一个账户结构在多个客户的 FortiGate 上运行 Purple。每个客户站点使用相同的配置模式,因此您可以在 FortiManager 中制作模板并批量部署。Purple 与硬件无关的设计意味着使用 Cisco Meraki、HPE Aruba 或 Ruckus 的客户可以使用相同的 Portal。在签约前,请查看我们白标 Captive Portal 软件指南中的商业条款。

外部 Portal 适用于有线访客网络吗?

是的,FortiGate 可以在接口以及 FortiAP SSID 上强制执行 Captive Portal。在服务于有线访客 VLAN 的接口上启用 Captive Portal,选择外部 Portal 并将其指向同一个 Purple RADIUS 组。这样自助服务终端、会议室端口和第三方接入点就能与您的无线访客共享同一个 Splash Page、条款接受记录和计费日志。

对您的具体配置有疑问吗?

我们的团队与 80,000 多个场所的运营方、IT 经理和网络工程师保持合作。预约 20 分钟的通话,我们将为您展示同行是如何解决类似问题的。