跳至主要内容

OpenWrt 自定义固件与 Purple WiFi 的集成

本指南提供了将 OpenWrt 自定义固件与 Purple WiFi 进行部署集成的完整方案。它涵盖了 CoovaChilli Captive Portal 配置、iptables walled garden 管理、利用 hostapd 实现的 802.1X 安全员工 WiFi,以及具有动态 VLAN 分配的多租户 PPSK 细分——为 IT 团队在任何支持 OpenWrt 的硬件上构建基于身份的网络提供了所需的精确配置步骤。

📖 9 分钟阅读📝 2,146 🔧 2 应用实例4 练习题📚 10 关键定义

收听本指南

查看播客转录
[0:00 - 1:00] 介绍与背景 欢迎收看 Purple 技术简报。我是您的主持人。在接下来的十分钟里,我们将深入分析 OpenWrt 定制固件与 Purple WiFi 的集成。如果您是正在酒店、零售或公共部门环境中部署定制固件的 IT 经理、网络架构师或 CTO,那么本次简报正是为您量身打造的。我们将抛开理论,为您提供配置 CoovaChilli、使用 802.1X 保护员工网络安全以及使用专用预共享密钥(PPSK)隔离多租户环境的具体操作指南。 为什么这很重要?因为部署像 OpenWrt 这样的定制固件能为您带来极高的灵活性和硬件独立性。但如果缺乏结构化的、基于身份的访问控制层,这种灵活性就会变成安全隐患。您需要安全地获取第一方数据、强制执行 GDPR 合规性,并可靠地隔离流量。让我们开始深入探讨技术细节。 [1:00 - 6:00] 技术深挖 OpenWrt 集成的核心依赖于 CoovaChilli。CoovaChilli 是一款开源访问控制器,用于拦截未认证的客户端流量,并将其重定向到 Purple Captive Portal。当访客连接到您的开放 SSID 时,CoovaChilli 会充当看门人的角色。它通过在 tun0 接口上运行的内部 DHCP 服务器分配 IP 地址,并阻止除您在围墙花园(Walled Garden)中明确允许的流量之外的所有流量。 当访客尝试浏览网页时,CoovaChilli 会拦截 HTTP 请求并重定向到 Purple 登录页面(Splash Page)。此时围墙花园的配置至关重要。在您的 chilli.conf 文件中,必须定义 HS_UAMDOMAINS 参数。这是一个以逗号分隔的域名列表,访客在进行认证前可以访问这些域名。您必须包含 splash.purple.ai、api.purple.ai(API)以及我们用于分发 Portal 资源的各种 CDN 域名。如果遗漏了某个域名,Portal 将无法加载,或者社交登录按钮将失效。就这么简单。 一旦访客在 Purple Portal 上通过认证,Purple 的云端 RADIUS 服务器就会向 UDP 端口 1812 上的 CoovaChilli 发回一条 Access-Accept 消息。随后,CoovaChilli 会对 MAC 地址进行授权,打开该会话的防火墙规则,并开始在 UDP 端口 1813 上发送计费(Accounting)数据。计费功能是必选项。Purple 正是通过它来跟踪会话时长和数据使用量,以便在您的分析仪表板中进行展示。 现在,让我们谈谈员工 WiFi。您不应该为员工网络使用 CoovaChilli。对于员工网络,您需要使用支持 WPA2-Enterprise 或 WPA3-Enterprise 的 hostapd。这是标准的 802.1X 认证。接入点(AP)充当认证器,将 EAP 消息转发到您的 RADIUS 服务器。对于企业设备,您应该部署使用数字证书而非密码的 EAP-TLS。这可以彻底消除凭据窃取风险。您可以通过配置 hostapd.conf 指向您的 RADIUS 服务器,然后由 RADIUS 服务器决定该特定用户的 VLAN 分配。 这引出了现代 OpenWrt 部署中最强大的功能之一:私有预共享密钥(PPSK)。在多租户环境中(例如,长租公寓或联合办公空间),您不希望广播五十个不同的 SSIDs。这会破坏您的空口效率。相反,您只需广播一个 SSID。当设备连接时,hostapd 会将 MAC 地址发送到 RADIUS 服务器。RADIUS 服务器则通过 Tunnel-Password 属性,返回该设备专属的特定密码和特定 VLAN ID。 这意味着 A 商店的零售员工会被分配到 VLAN 10,而大厅里的活动参与者则会被分配到 VLAN 30,且他们连接的是完全相同的 SSID。这种方案优雅、易于扩展,并在网络边缘强制执行最小特权访问。 [6:00 - 8:00] 部署建议与常见误区 让我们讨论一下部署。在使用 Purple 部署 OpenWrt 时,您的第一步始终是从 Purple 门户网站获取您的 RADIUS 凭据。您需要主、备 RADIUS IP 地址、共享密钥以及门户网站的 URL。 在您的 OpenWrt 配置中,您将定义访客网络接口(通常为 eth1 或 wlan0),并将 CoovaChilli 绑定到该接口。确保 chilli.conf 中的 HS_RADSECRET 与 Purple 门户网站中的完全一致。单个字符不匹配都会导致无提示的认证失败。 我们遇到的最大误区是认证前的 DNS 解析。CoovaChilli 会拦截 DNS 请求。如果您的上行防火墙阻止了 OpenWrt 路由器解析外部 DNS,则 Captive Portal 重定向将失败。请确保您的 OpenWrt 路由器对 Google 或 OpenDNS 等公共解析服务器拥有无限制的 DNS 访问权限。 另一个常见问题是 iOS 和 Android 内置的 Captive Portal 检测机制。Apple 设备会访问 captive.apple.com 来检查互联网连接。如果您在围墙花园(Walled Garden)中将 captive.apple.com 设为白名单,设备就会认为它已经连接到互联网,从而不会弹出 Captive Portal 助理。如果您希望自动弹出,请不要将 Apple 的域名加入围墙花园。 [8:00 - 9:00] 快速问答 让我们进行一次快速问答。 问题一:我可以在同一个 OpenWrt 接入点上运行 CoovaChilli 和 hostapd 802.1X 吗?是的。您可以将 CoovaChilli 绑定到您的访客 SSID 接口,并在您的员工 SSID 接口上配置带有 802.1X 的 hostapd。它们彼此独立运行。 问题二:Purple 是否支持使用 OpenWrt 进行动态 VLAN 分配?是的。Purple 的 RADIUS 服务器可以返回标准的 RADIUS 属性,包括 Tunnel-Type、Tunnel-Medium-Type 和 Tunnel-Private-Group-ID,从而指示 OpenWrt 将已通过身份验证的用户分配到特定的 VLAN 中。 问题三:如果 OpenWrt 路由器与 Purple RADIUS 服务器失去连接会发生什么?CoovaChilli 将无法对新会话进行身份验证。现有的已授权会话将保持活动状态,直到其会话超时失效。请务必配置备用 Purple RADIUS 服务器以确保高可用性。 [9:00 - 10:00] 总结与后续步骤 总结:OpenWrt 为企业 WiFi 提供了一个强大且与硬件无关的平台。通过集成用于访客接入的 CoovaChilli 以及用于安全员工和多租户 PPSK 的 hostapd,您可以构建一个基于身份的网络(Identity-Based Network)。Purple 简化了 RADIUS 基础设施的复杂性,提供了一个云端管理门户,用于获取第一方数据并确保合规性。 您的下一步是审计您当前自定义固件的部署情况。确保您的围墙花园(walled gardens)已完整配置,验证您的 RADIUS 计费周期,并开始规划从共享 PSK 向动态 PPSK 分段的迁移。 感谢您收听 Purple 技术简报。欲了解更多关于 Purple 如何保护您的访客 WiFi 并实现变现的信息,请访问 purple.ai。我们下期再见。

header_image.png

कार्यकारी सारांश (Executive summary)

OpenWrt हे अशा IT टीम्ससाठी पसंतीचे फर्मवेअर आहे ज्यांना एंटरप्राइझ-ग्रेड नियंत्रण न गमावता हार्डवेअर स्वातंत्र्याची आवश्यकता असते. हॉस्पिटॅलिटी, रिटेल आणि सार्वजनिक क्षेत्रातील ठिकाणांवर तैनात केलेले, हे पूर्णपणे कॉन्फिगर करण्यायोग्य Linux-आधारित नेटवर्क स्टॅक प्रदान करते. परंतु डीफॉल्ट स्वरूपात, OpenWrt एक कोरा कॅनव्हास आहे. संरचित ओळख स्तराशिवाय (identity layer), अतिथी नेटवर्क्स व्यवस्थापित करणे कठीण होते, कर्मचारी नेटवर्क्स असुरक्षित राहतात आणि मल्टी-टेनंट वातावरण एकाच सपाट नेटवर्कमध्ये संकुचित होते.

हे मार्गदर्शक OpenWrt ला Purple च्या क्लाउड RADIUS आणि Captive Portal प्लॅटफॉर्मशी जोडण्यासाठी निश्चित एकत्रीकरण प्लेबुक प्रदान करते. आम्ही चार वेगवेगळ्या उपयोजन परिस्थिती कव्हर करतो: CoovaChilli वापरून अतिथी Captive Portal पुनर्निर्देशन (redirection), iptables वॉल्ड गार्डन कॉन्फिगरेशन, hostapd आणि IEEE 802.1X वापरून सुरक्षित कर्मचारी WiFi, आणि डायनॅमिक VLAN असाइनमेंटसह प्रायव्हेट प्री-शेअर्ड की (PPSK) वापरून मल्टी-टेनंट सेगमेंटेशन. शेवटी, तुमच्याकडे कोणत्याही OpenWrt-सक्षम हार्डवेअरवर उत्पादन-तयार, GDPR-सुसंगत, ओळख-चालित नेटवर्क तैनात करण्यासाठी अचूक कॉन्फिगरेशन पॅरामीटर्स, सामान्य त्रुटींचे प्रकार आणि निर्णय घेण्याची फ्रेमवर्क असेल.

Purple हे ८०,०००+ हून अधिक लाइव्ह ठिकाणी कार्यरत आहे आणि २०२४ मध्ये ४४० दशलक्ष लॉगिन प्रक्रियेतून गेले आहेत (Purple अंतर्गत डेटा, २०२४). येथे वर्णन केलेले आर्किटेक्चर हेच हॉस्पिटॅलिटी चेन्स, रिटेल इस्टेट्स आणि ट्रान्सपोर्ट हबमध्ये मोठ्या प्रमाणावर तैनात केलेले आहे.

तांत्रिक सखोल विश्लेषण (Technical deep-dive)

CoovaChilli captive portal आर्किटेक्चर

OpenWrt वर Guest WiFi तैनात करताना, CoovaChilli हे उद्योग-मानक ॲक्सेस कंट्रोलर आहे. हे एक Captive Portal डिमन म्हणून कार्य करते जे अनधिकृत क्लायंट ट्रॅफिक अडवते, tun0 व्हर्च्युअल इंटरफेसवरील त्याच्या अंतर्गत DHCP सर्व्हरद्वारे IP पत्ते प्रदान करते, आणि थेट व्यवस्थापित करत असलेल्या iptables नियमांचा वापर करून वॉल्ड गार्डन धोरणे लागू करते.

प्रमाणीकरण (authentication) प्रवाह खालीलप्रमाणे कार्य करतो. अतिथी डिव्हाइस ओपन SSID शी जोडले जाते. CoovaChilli डिव्हाइसला त्याच्या अंतर्गत पूल मधून (सहसा 10.1.0.0/24) एक IP पत्ता नियुक्त करते. जेव्हा डिव्हाइस त्याची पहिली HTTP विनंती पाठवते, तेव्हा CoovaChilli ती अडवते आणि Purple स्प्लॅश पेज URL वर HTTP 302 पुनर्निर्देशन जारी करते. या पूर्व-प्रमाणीकरण (pre-authentication) टप्प्यादरम्यान, डिव्हाइस वेगळे केले जाते - ते केवळ वॉल्ड गार्डनमध्ये स्पष्टपणे सूचीबद्ध केलेल्या डोमेनपर्यंत पोहोचू शकते.

एकदा अतिथीने Purple पोर्टलवर प्रमाणीकरण पूर्ण केले की, Purple चे क्लाउड RADIUS सर्व्हर UDP पोर्ट 1812 वर CoovaChilli ला Access-Accept संदेश पाठवते. त्यानंतर CoovaChilli त्या विशिष्ट MAC पत्त्यासाठी इंटरनेट प्रवेशाची परवानगी देण्यासाठी त्याचे iptables नियम अद्यतनित करते आणि UDP पोर्ट 1813 वर Purple RADIUS अकाउंटिंग सर्व्हरकडे अकाउंटिंग डेटा (सत्र कालावधी, हस्तांतरित केलेले बाईट्स) पाठवू लागते. अकाउंटिंग पर्यायी नाही - हे असे माध्यम आहे ज्याद्वारे Purple तुमच्या WiFi Analytics डॅशबोर्डमध्ये सत्राच्या डेटासह माहिती भरते.

architecture_overview.png

वॉल्ड गार्डन (Walled garden): iptables आणि डोमेन परवानगी सूची

कोणत्याही Captive Portal उपयोजनामध्ये वॉल्ड गार्डन हा सर्वात महत्त्वपूर्ण ऑपरेशनल कॉन्फिगरेशन घटक आहे. CoovaChilli दोन माध्यमांद्वारे वॉल्ड गार्डन व्यवस्थापित करते: वैयक्तिक IP पत्त्यांसाठी uamallowed पॅरामीटर आणि DNS तपासणीसह डोमेन-आधारित परवानगी सूचीसाठी uamdomains पॅरामीटर.

Purple इंटिग्रेशनसाठी, किमान आवश्यक वॉल्ड गार्डन नोंदी खालीलप्रमाणे आहेत:

डोमेन उद्देश
*.purple.ai पोर्टल मालमत्ता, API, आणि प्रमाणीकरण एंडपॉइंट्स
*.googleapis.com Google Fonts आणि Google Sign-In
*.gstatic.com Google कनेक्टिव्हिटी तपासणी आणि स्थिर मालमत्ता
*.facebook.com Facebook Login API
*.fbcdn.net लॉगिन मालमत्तेसाठी Facebook CDN
captive.apple.com Apple CNA शोध (खालील टीप पहा)
connectivitycheck.gstatic.com Android Captive Portal शोध

Apple CNA व्यवस्थापनावर टीप: जर तुम्ही वॉल्ड गार्डनमध्ये captive.apple.com समाविष्ट केले, तर iOS डिव्हाइसेस प्रमाणीकरणापूर्वी इंटरनेट कनेक्टिव्हिटी शोधतील आणि Captive Network Assistant पॉप-अप दाबून टाकतील (दाखवणार नाहीत). बहुतांश आदरातिथ्य (hospitality) उपयोजने मुद्दाम हे डोमेन वगळतात जेणेकरून स्वयंचलित पोर्टल प्रॉम्प्ट सुरू होईल. योग्य पर्याय तुमच्या अतिथी अनुभवाच्या रचनेवर अवलंबून असतो.

सुरक्षित कर्मचारी WiFi: hostapd आणि IEEE 802.1X

अतिथी नेटवर्कसाठी अडथळा नसलेल्या ऑनबोर्डिंगची आवश्यकता असते. कर्मचारी नेटवर्कसाठी पूर्ण सुरक्षिततेची आवश्यकता असते. अंतर्गत वापरकर्त्यांसाठी, OpenWrt IEEE 802.1X प्रमाणीकरण सुलभ करण्यासाठी hostapd चा वापर करते. या आर्किटेक्चरमध्ये, OpenWrt ॲक्सेस पॉइंट Authenticator म्हणून काम करतो, जे क्लायंट डिव्हाइस (Supplicant) आणि Purple RADIUS सर्व्हर दरम्यान Extensible Authentication Protocol (EAP) संदेश फॉरवर्ड करते.

कॉर्पोरेट डिव्हाइसेससाठी, EAP-TLS हा अनिवार्य मानक आहे. हे परस्पर प्रमाणपत्र प्रमाणीकरणावर अवलंबून असते - सर्व्हर आणि क्लायंट डिव्हाइस दोन्ही डिजिटल प्रमाणपत्रे सादर करतात - ज्यामुळे पासवर्ड आणि संबंधित क्रेडेंशियल चोरी किंवा फिशिंगचे धोके पूर्णपणे नष्ट होतात. संपूर्ण पब्लिक की इन्फ्रास्ट्रक्चर (PKI) साठी अद्याप तयार नसलेल्या वातावरणासाठी, PEAP-MSCHAPv2 वापरकर्ता नाव आणि पासवर्ड क्रेडेंशियलचे संरक्षण करण्यासाठी एनक्रिप्टेड टनेलचा वापर करून एक चांगला अंतरिम पर्याय प्रदान करतो.

जेव्हा एखादा कर्मचारी यशस्वीरित्या ऑथेंटिकेट करतो, तेव्हा RADIUS सर्व्हर ऑथरायझेशन ॲट्रिब्युट्स परत करतो. नेटवर्क सेगमेंटेशनसाठी मुख्य ॲट्रिब्युट Tunnel-Private-Group-ID आहे, जे OpenWrt ला युझरला योग्य VLAN मध्ये डायनॅमिकली असाइन करण्याचे निर्देश देते. आयडेंटिटी-बेस्ड नेटवर्क्स (Identity-Based Networks) मागची हीच यंत्रणा आहे: युझरची ओळख (identity), त्यांचे भौतिक स्थान नाही, त्यांचे नेटवर्क ॲक्सेस ठरवते.

मल्टी-टेनंट सेगमेंटेशन: OpenWrt PPSK कॉन्फिगरेशन

मल्टी-टेनंट वातावरणात - जसे की कोवर्कर्स स्पेसेस, बिल्ड-टू-रेंट (BTR) प्रॉपर्टीज, एकाधिक विक्रेते असलेले रिटेल सेंटर्स किंवा स्वतंत्र स्पॉन्सर झोन असलेले स्टेडियम्स - एकाधिक SSIDs ब्रॉडकास्ट करणे हे ऑपरेशनली खर्चिक आणि RF-अकार्यक्षम असते. प्रत्येक अतिरिक्त SSID मॅनेजमेंट फ्रेम ओव्हरहेड वाढवतो, ज्यामुळे डेटा ट्रॅफिकसाठी उपलब्ध एअरटाइम कमी होतो.

प्रायव्हेट प्री-शेअर्ड की (PPSK), ज्याला कधीकधी डायनॅमिक PSK देखील म्हटले जाते, यावर उपाय शोधतात. तुम्ही एकच SSID ब्रॉडकास्ट करता. जेव्हा एखादे डिव्हाइस कनेक्ट करण्याचा प्रयत्न करते, तेव्हा hostapd प्रमाणित Access-Request द्वारे डिव्हाइसचा MAC ॲड्रेस RADIUS सर्व्हरकडे पाठवते. RADIUS सर्व्हर त्याच्या डेटाबेसमध्ये MAC ॲड्रेसची पडताळणी करतो आणि दोन महत्त्वपूर्ण ॲट्रिब्युट्स असलेले Access-Accept परत करतो: Tunnel-Password ॲट्रिब्युट (त्या डिव्हाइससाठी युनिक पासफ्रेज) आणि Tunnel-Private-Group-ID ॲट्रिब्युट (VLAN असाइनमेंट). डिव्हाइस त्याच्या युनिक पासफ्रेजचा वापर करून कनेक्ट होते आणि थेट त्याच्या नियुक्त केलेल्या VLAN वर जाते.

याचा अर्थ असा आहे की एखादा रिटेल मॅनेजर आणि इव्हेंटला आलेला व्यक्ती एकाच SSID शी कनेक्ट होऊ शकतात परंतु त्यांच्या युनिक ओळखीच्या आधारावर पूर्णपणे वेगळ्या, आयसोलेटेड नेटवर्क्सवर राउट केले जाऊ शकतात.

ppsk_multitenant_diagram.png

इम्प्लीमेंटेशन गाईड

पायरी १: Purple RADIUS क्रेडेंशियल्स मिळवा

OpenWrt कॉन्फिगरेशनला हात लावण्यापूर्वी, Purple पोर्टल ॲडमिन कन्सोलमधून खालील गोष्टी मिळवा:

  • प्रायमरी RADIUS सर्व्हर IP ॲड्रेस
  • सेकंडरी RADIUS सर्व्हर IP ॲड्रेस (फेलओव्हरसाठी)
  • RADIUS शेअर्ड सिक्रेट (Shared Secret)
  • Captive Portal Splash Page URL
  • पोस्ट-ऑथेंटिकेशन रिडायरेक्ट URL

पायरी २: गेस्ट WiFi साठी CoovaChilli इंस्टॉल आणि कॉन्फिगर करा

opkg द्वारे coova-chilli पॅकेज इंस्टॉल करा:

opkg update && opkg install coova-chilli

मुख्य कॉन्फिगरेशन फाईल /etc/chilli/defaults ही आहे. मुख्य नेटवर्क पॅरामीटर्स परिभाषित करा:

# Network interfaces
HS_WANIF=eth0           # Upstream internet interface
HS_LANIF=wlan0          # The guest WiFi interface (or a VLAN sub-interface)

# Guest subnet
HS_NETWORK=10.10.20.0
HS_NETMASK=255.255.255.0
HS_UAMLISTEN=10.10.20.1 # CoovaChilli's IP on the guest network
HS_UAMPORT=3990

# Purple RADIUS integration
HS_RADIUS=
HS_RADIUS2=
HS_RADSECRET=
HS_NASID=venue-openwrt-01

# Purple splash page
HS_UAMSERVER=

# Walled garden - domain-based allowlisting
HS_UAMDOMAINS=".purple.ai,.googleapis.com,.gstatic.com,.facebook.com,.fbcdn.net"

सर्व्हिस सुरू आणि सक्रिय करा:

/etc/init.d/chilli enable
/etc/init.d/chilli start

पायरी 3: गेस्ट SSID साठी OpenWrt वायरलेस इंटरफेस कॉन्फिगर करा

/etc/config/wireless मध्ये, गेस्ट SSID ला CoovaChilli व्यवस्थापित करत असलेल्या इंटरफेसशी बांधील असलेले ओपन नेटवर्क म्हणून परिभाषित करा:

config wifi-iface 'guest_wifi'
    option device 'radio0'
    option network 'guest'
    option mode 'ap'
    option ssid 'Venue_Guest'
    option encryption 'none'
    option isolate '1'

क्लायंट आयसोलेशन (isolate '1') गेस्ट डिव्हाइसेसना एकमेकांशी संवाद साधण्यापासून रोखते - कोणत्याही सामायिक नेटवर्कसाठी हे एक अनिवार्य सुरक्षा नियंत्रण आहे.

पायरी 4: 802.1X स्टाफ WiFi साठी hostapd कॉन्फिगर करा

स्टाफ SSID साठी, /etc/config/wireless मध्ये WPA2-Enterprise कॉन्फिगर करा:

config wifi-iface 'staff_wifi'
    option device 'radio0'
    option network 'staff_vlan10'
    option mode 'ap'
    option ssid 'Venue_Staff'
    option encryption 'wpa2'
    option server ''
    option port '1812'
    option key ''
    option dynamic_vlan '2'
    option vlan_tagged_interface 'eth0'
    option vlan_bridge 'br-vlan'
    option vlan_naming '0'

dynamic_vlan '2' सेट केल्याने hostapd ला RADIUS सर्व्हरद्वारे परत केलेले VLAN असाइनमेंट लागू करण्याचे आणि कोणतेही VLAN परत न आल्यास प्रमाणीकरण नाकारण्याचे निर्देश मिळतात.

पॅकेज आवश्यकता: मानक wpad-mini पॅकेज WPA2-Enterprise ला सपोर्ट करत नाही. तुम्ही wpad किंवा wpad-openssl इंस्टॉल करणे आवश्यक आहे:

opkg remove wpad-mini && opkg install wpad-openssl

पायरी 5: मल्टी-टेनंट सेगमेंटेशनसाठी PPSK कॉन्फिगर करा

PPSK ला RADIUS सर्व्हरच्या विरोधात MAC ॲड्रेस प्रमाणीकरण करण्यासाठी hostapd ची आवश्यकता असते, जे नंतर प्रति-डिव्हाइस पासफ्रेज परत करते. /etc/config/wireless मध्ये:

config wifi-iface 'ppsk_ssid'
    option device 'radio0'
    option mode 'ap'
    option ssid 'Venue_Connect'
    option encryption 'psk2'
    option key 'default_fallback_key'
    option macfilter 'radius'
    option server ''
    option port '1812'
    option key ''
    option dynamic_vlan '2'
    option vlan_tagged_interface 'eth0'
    option wpa_psk_radius '2'

wpa_psk_radius '2' पॅरामीटर hostapd ला RADIUS प्रतिसादातून Tunnel-Password विशेषता आवश्यक असल्याचे निर्देश देतो. जर RADIUS सर्व्हरने पासफ्रेज परत केला नाही, तर प्रमाणीकरण नाकारले जाते.

Purple RADIUS बाजूला, तुमच्या FreeRADIUS कॉन्फिगरेशनचा (किंवा समतुल्य) authorize विभाग MAC ॲड्रेसेसना पासफ्रेज आणि VLAN IDs शी मॅप करतो:

# PPSK साठी RADIUS ऑथोराईझ एन्ट्रीचे उदाहरण
AA:BB:CC:DD:EE:FF   Auth-Type := Accept
    Tunnel-Password = "GuestPass2024",
    Tunnel-Type = VLAN,
    Tunnel-Medium-Type = IEEE-802,
    Tunnel-Private-Group-ID = "20"

पायरी 6: डायनॅमिक VLAN असाइनमेंट कॉन्फिगर करा

डायनॅमिक VLAN असाइनमेंट कार्य करण्यासाठी, तुमचे OpenWrt स्विच कोर स्विचशी जोडणाऱ्या ट्रंक पोर्टवर संबंधित VLANs टॅग केलेले ट्रॅफिक म्हणून वाहून नेण्यासाठी कॉन्फिगर केलेले असणे आवश्यक आहे. /etc/config/network मध्ये:

config interface 'vlan10'
    option ifname 'eth0.10'
    option proto 'dhcp'

config interface 'vlan20'
    option ifname 'eth0.20'
    option proto 'dhcp'

config interface 'vlan30'
    option ifname 'eth0.30'
    option proto 'dhcp'

तुमचे कोर स्विच पोर्ट ट्रंक म्हणून कॉन्फिगर केले असल्याची खात्री करा, जे VLANs 10, 20 आणि 30 टॅग केलेले पाठवेल.

सर्वोत्तम पद्धती

पूर्णपणे नेटवर्क अलगाव (Absolute network segregation). गेस्ट इंटरफेसेसना अंतर्गत नेटवर्कशी कधीही ब्रिज करू नका. गेस्ट ट्रॅफिक समर्पित VLAN वर वेगळे केले पाहिजे आणि थेट इंटरनेट फायरवॉलकडे पाठवले पाहिजे. PCI DSS 4.0 चे पालन करण्यासाठी ही एक अनिवार्य आवश्यकता आहे, ज्यामध्ये अशी तरतूद आहे की गेस्ट WiFi नेटवर्क्स कार्डधारक डेटा हाताळणाऱ्या कोणत्याही नेटवर्क सेगमेंटपासून पूर्णपणे वेगळे असावेत.

अचूक वॉल्ड गार्डन (Walled garden precision). अपूर्ण वॉल्ड गार्डन हे Captive Portal अयशस्वी होण्याचे मुख्य कारण आहे. गेस्ट SSID शी कनेक्ट केलेल्या चाचणी डिव्हाइसवर तुमच्या ब्राउझरचे डेव्हलपर टूल्स वापरा, जेणेकरून प्रमाणीकरणापूर्वी कोणते रिक्वेस्ट्स ब्लॉक केले जात आहेत हे ओळखता येईल. प्रत्येक ब्लॉक केलेले डोमेन हे पोर्टल अयशस्वी होण्याचे संभाव्य कारण असू शकते.

RADIUS अकाउंटिंग अंतराळ (RADIUS accounting intervals). CoovaChilli अकाउंटिंग अंतर १२० सेकंदांवर कॉन्फिगर करा. यामुळे अतिरिक्त RADIUS ट्रॅफिक निर्माण न करता Purple ॲनालिटिक्स डॅशबोर्डमध्ये रिअल-टाइमच्या जवळचा सेशन डेटा मिळतो.

दुय्यम RADIUS सर्व्हर. तुमच्या CoovaChilli कॉन्फिगरेशनमध्ये नेहमी HS_RADIUS2 कॉन्फिगर करा. मुख्य Purple RADIUS सर्व्हर अनुपलब्ध असल्यास, CoovaChilli नवीन सेशन्स प्रमाणित करू शकणार नाही. दुय्यम सर्व्हर ॲक्सेस पॉइंटवर कोणत्याही कॉन्फिगरेशन बदलाशिवाय स्वयंचलित फेलओव्हर प्रदान करतो.

पॅकेज निवड. बऱ्याच OpenWrt बिल्ड्ससह येणारे wpad-mini पॅकेज WPA2-Enterprise किंवा डायनॅमिक VLAN असाइनमेंटला सपोर्ट करत नाही. 802.1X किंवा PPSK आवश्यक असणाऱ्या कोणत्याही उपयोजनासाठी (deployment) नेहमी wpad-openssl इंस्टॉल करा.

एंटरप्राइझ WiFi सुरक्षा आर्किटेक्चरवरील अधिक मार्गदर्शनासाठी, आमचे Enterprise WiFi Security: A Complete Guide for 2026 पहा.

त्रुटी निवारण आणि जोखीम निवारण

लक्षण संभाव्य कारण उपाय
रिडायरेक्शननंतर पोर्टल लोड होत नाही अपूर्ण वॉल्ड गार्डन गहाळ असलेले CDN/API डोमेन्स HS_UAMDOMAINS मध्ये जोडा
प्रमाणीकरण न सांगता अयशस्वी होते RADIUS सामायिक सिक्रेट विसंगती HS_RADSECRET हे CoovaChilli आणि Purple पोर्टल दोन्हीमध्ये अचूक जुळत असल्याची खात्री करा
Purple ॲनालिटिक्समध्ये डेटा नाही RADIUS अकाउंटिंग ब्लॉक केले आहे आउटबाउंड UDP 1813 ला परवानगी असल्याची खात्री करा; HS_RADIUS2 अकाउंटिंग कॉन्फिगरेशन तपासा
iOS वर पोर्टल पॉप-अप दिसत नाही वॉल्ड गार्डनमध्ये captive.apple.com आहे HS_UAMDOMAINS मधून Apple डिटेक्शन डोमेन्स काढा
PPSK क्लायंट चुकीच्या VLAN वर जातात vlan_tagged_interface चुकीचे कॉन्फिगर केले आहे OpenWrt आणि कोर स्विच दोन्हीवर ट्रंक पोर्ट कॉन्फिगरेशन तपासा
wpad त्रुटीसह 802.1X प्रमाणीकरण अयशस्वी wpad-mini इंस्टॉल केलेले आहे wpad-mini काढा, wpad-openssl इंस्टॉल करा
Dynamic VLAN fails on ath10k Known driver issue in older builds Update to OpenWrt 21.02 or later; use non-CT ath10k firmware

GDPR अनुपालन नोंद: CoovaChilli स्वतः वैयक्तिक डेटा गोळा किंवा स्टोअर करत नाही. सर्व संमती मिळवणे, डेटा प्रक्रिया करणे आणि GDPR अनुपालन यंत्रणा पोर्टल लेयरवर Purple प्लॅटफॉर्मद्वारे हाताळल्या जातात. लाइव्ह जाण्यापूर्वी तुमचे Purple पोर्टल तुमच्या वेन्यूच्या अटी व शर्ती आणि डेटा प्रोसेसिंग नोटीससह कॉन्फिगर केले असल्याची खात्री करा.

संबंधित हार्डवेअर इंटिग्रेशन पॅटर्नसाठी, आमचे EnGenius Cloud Access Points Integration with Purple WiFi आणि DrayTek Vigor Routers and Access Points Integration with Purple WiFi वरील मार्गदर्शक पहा.

ROI आणि व्यावसायिक प्रभाव

बेसिक PSK नेटवर्कवरून Purple-व्यवस्थापित OpenWrt आर्किटेक्चरवर स्थलांतरित केल्याने तीन आयामांमध्ये मोजण्यायोग्य प्रभाव दिसून येतो.

डेटा कॅप्चर आणि मार्केटिंग. Captive Portal ऑथेंटिकेशन लागू करून, वेन्यू WiFi कनेक्शनच्या वेळी सुसंगत, फर्स्ट-पार्टी डेमोग्राफिक डेटा - नावे, ईमेल पत्ते, सोशल प्रोफाइल - कॅप्चर करतात. हा डेटा थेट CRM आणि ईमेल मार्केटिंग प्लॅटफॉर्मवर पाठवला जातो, ज्यामुळे लॉयल्टी प्रोग्राम साइन-अप वाढतात आणि लक्ष्यित मोहिमा सक्षम होतात. Purple ने 2024 मध्ये 440 दशलक्ष लॉगिनवर प्रक्रिया केली आहे (Purple अंतर्गत डेटा), जे नेटवर्क एजवर शक्य असलेल्या फर्स्ट-पार्टी डेटा कॅप्चरचे प्रमाण दर्शवते.

ऑपरेशनल कार्यक्षमता. PPSK लागू केल्याने SSID ओव्हरहेड कमी होतो, ज्यामुळे दाट वातावरणात WiFi कामगिरी सुधारते. 200-लोकेशन असलेल्या रिटेल चेनसाठी, प्रत्येक साइटवर स्थानिक राउटर कॉन्फिगरेशन अपडेट करण्याऐवजी - Purple च्या क्लाउड RADIUS द्वारे मध्यवर्ती पद्धतीने ओळख व्यवस्थापित केल्याने - दरवर्षी शेकडो इंजिनिअरिंग तास वाचतात. एकच RADIUS पॉलिसी बदल सर्व 200 ठिकाणी त्वरित लागू होतो.

सुरक्षा आणि अनुपालन. डायनॅमिक VLAN असाइनमेंट एजवर सर्वात कमी-विशेषाधिकार प्रवेश (least-privilege access) लागू करते. कर्मचारी पाहुण्यांपासून वेगळे केले जातात. IoT डिव्हाइसेस कर्मचाऱ्यांपासून वेगळे केले जातात. POS टर्मिनल्स इतर सर्व ट्रॅफिकपासून वेगळे केले जातात. हे वर्गीकरण PCI DSS 4.0 नेटवर्क आयसोलेशन आवश्यकता पूर्ण करते आणि GDPR अनुपालन पुनरावलोकनांसाठी स्पष्ट, ऑडिट करण्यायोग्य नेटवर्क टोपोलॉजी प्रदान करते.

विशिष्ट क्षेत्रांतील डिप्लॉयमेंट पॅटर्नसाठी, आमचे Retail , Hospitality , Healthcare , आणि Transport वातावरणासाठीचे मार्गदर्शक पहा. वेन्यू डिप्लॉयमेंटमधील पूरक वायरलेस तंत्रज्ञान समजून घेण्यासाठी तुम्हाला आमचे What Is Wireless Display: Protocols & Best Practices 2026 वरील मार्गदर्शक देखील उपयुक्त वाटू शकते.

关键定义

CoovaChilli

一种开源的软件接入控制器,使用 RADIUS 进行身份验证和计费,为无线网络提供 Captive Portal 和 walled-garden 环境。

IT 团队在 OpenWrt 上部署 CoovaChilli,以拦截宾客的 HTTP 流量并将其重定向到 Purple 展示页面。它管理着用于执行 walled garden 并授予身份验证后互联网访问权限的 iptables 规则。

Walled garden

一个严格的 IP 地址或域名白名单,未经身份验证的用户在完成 Captive Portal 认证之前可以访问这些地址或域名。

这对于允许访客设备加载 Purple 门户图形并访问社交媒体登录 API,同时阻止普通互联网访问至关重要。围墙花园配置不完整是导致 Captive Portal 故障最常见的原因。

PPSK (Private Pre-Shared Key)

一种安全机制,其中单个用户或设备被分配用于相同 WiFi SSID 的唯一密码,RADIUS 会根据每个设备的 MAC 地址返回正确的密码和 VLAN 分配。

用于在不广播多个 SSID 的情况下细分多租户环境。在 OpenWrt 中通过 hostapd 中的 wpa_psk_radius 参数提供支持。

动态 VLAN 分配

RADIUS 服务器使用 Tunnel-Type、Tunnel-Medium-Type 和 Tunnel-Private-Group-ID 等 RADIUS 属性,指示接入点将特定已认证用户划分到特定虚拟 LAN 的过程。

基于身份的网络(Identity-Based Networks)的核心机制。决定网络段和访问权限的是用户的身份,而不是其物理端口。

IEEE 802.1X

基于端口的网络访问控制的 IEEE 标准,定义了企业级 WiFi 认证中的认证系统(接入点)、申请者(客户端设备)和认证服务器(RADIUS)的角色。

OpenWrt 上安全员工 WiFi 的底层协议。需要完整的 wpad 或 wpad-openssl 软件包 - wpad-mini 不支持此协议。

EAP-TLS (Extensible Authentication Protocol - Transport Layer Security)

一种使用双向证书认证的 802.1X 认证方法,要求 RADIUS 服务器和客户端设备都出示有效的数字证书。

企业设备认证的金本位。完全消除了密码,从而杜绝了凭据窃取和网络钓鱼攻击。需要 PKI 基础设施来颁发客户端证书。

Captive Network Assistant (CNA)

当 iOS 和 Android 设备根据探测特定的检测 URL,检测到自身处于 Captive Portal 之后时,自动显示的伪浏览器。

网络工程师必须仔细管理其围墙花园,以控制是否自动触发 CNA。大多数酒店部署都会排除 Apple 和 Google 的检测域名,以强制弹出 CNA 窗口。

RADIUS 计费

AAA(认证、授权、计费)框架的第三大支柱,通过在 UDP 端口 1813 上记录会话开始、临时更新和会话停止事件,来跟踪网络资源消耗。

Purple 需要此功能来使用会话时长和带宽数据填充分析仪表板。在 CoovaChilli 中通过 HS_RADIUS2 和 radiusacctport 参数进行配置。

hostapd

OpenWrt 用于管理无线接口的开源 IEEE 802.11 接入点守护进程,支持 WPA2/WPA3-Enterprise、802.1X 和 PPSK 认证模式。

OpenWrt 上用于员工和 PPSK WiFi 的核心守护进程。wpad-openssl 软件包提供了企业认证所需的全功能 hostapd 构建版本。

Tunnel-Password 属性

在 PPSK 部署中使用的 RADIUS 属性(属性 69),用于在 MAC 认证期间从 RADIUS 服务器向接入点返回每个设备的密码。

Purple 的 RADIUS 服务器通过该机制将唯一的 PSK 交付给 OpenWrt 的 hostapd 守护进程,以进行基于 PPSK 的多租户细分。

应用实例

一家拥有 200 间客房的酒店需要提供分层的 WiFi 接入:为普通宾客提供免费的基础互联网接入,为忠诚度会员提供高速接入,并为员工的 POS 销售终端设备提供安全接入。IT 团队希望将 SSID 开销降至最低,并在 POS 终端与宾客流量之间强制执行 PCI DSS 网络隔离。

部署 OpenWrt 接入点并广播两个 SSID:“Hotel_Guest”(开放式,由 CoovaChilli 管理)和“Hotel_Secure”(通过 hostapd 进行 PPSK 管理)。在“Hotel_Guest”上,CoovaChilli 会将所有未授权的流量重定向到 Purple 的展示页面。宾客通过该 Portal 进行身份验证并接入 VLAN 20(仅限互联网)。在“Hotel_Secure”上,将 hostapd 配置为 wpa_psk_radius=2。当忠诚度会员的设备连接时,RADIUS 服务器会返回其唯一的 PSK 和 VLAN 21(更高带宽层)。当 POS 终端连接时,RADIUS 服务器会返回 POS 设备的 PSK 和 VLAN 10(内部网络访问,禁止连接互联网)。这种 VLAN 细分在接入点层级强制执行了持卡人数据(VLAN 10)与宾客流量(VLAN 20 和 21)之间的 PCI DSS 隔离。

考官评语: 此架构使用两个 SSID 而不是一个,旨在将 Captive Portal 流程(宾客)与 PPSK 流程(员工和忠诚度会员)分开。这是正确的方法,因为 CoovaChilli 和 hostapd PPSK 服务于根本不同的身份验证模型。将它们合并到单个 SSID 上需要配置 RADIUS 代理,这会增加不必要的复杂性。双 SSID 模型更简单、更可靠,且更易于进行 PCI DSS 合规性审计。

一家连锁零售店正在向 50 个网点部署 OpenWrt 路由器。在第一个站点的用户验收测试(UAT)期间,Purple 展示页面在重定向后可以正常加载,但点击 Facebook 登录按钮却导致连接超时。Google 登录按钮则工作正常。

该问题是由于 CoovaChilli walled garden 配置不完整导致的。Facebook 的身份验证流程需要访问多个域名:facebook.com、connect.facebook.net 和 fbcdn.net(Facebook 用于登录资源的 CDN)。Google 登录之所以能够正常工作,是因为 googleapis.com 和 gstatic.com 已经存在于 walled garden 中。更新 /etc/chilli/defaults 中的 HS_UAMDOMAINS 参数,添加 '.facebook.com,.connect.facebook.net,.fbcdn.net'。使用 '/etc/init.d/chilli restart' 重新加载 chilli 守护进程并重新测试。为了系统地诊断未来的 walled garden 问题,可将测试设备连接到宾客 SSID,并使用浏览器开发者工具(Network 标签页)来识别在身份验证之前哪些请求返回了连接错误。

考官评语: 现代社交登录流程会从多个 CDN 和 API 域名加载资源。仅 Facebook SDK 就至少引用了三个不同的域名。在调试 walled garden 时,采用系统的方法——利用浏览器开发者工具来识别被拦截的预验证请求——比凭空猜测域名列表要可靠得多。在全部 50 个站点正式上线之前,工程师应当测试每一种配置好的身份验证方法(Facebook、Google、电子邮件、短信)并验证每一项均能成功完成。

练习题

Q1. 您在 Premier Inn 酒店部署了带有 CoovaChilli 的 OpenWrt。宾客反映,当他们连接到宾客 WiFi 时,他们的 iPhone 不会自动提示登录。他们必须手动打开 Safari 并访问一个 HTTP 网站才能触发门户。是什么配置变化导致了这个问题,您该如何解决?

提示:考虑 iOS 在关联时如何确定网络是否具有完整的互联网访问权限。

查看标准答案

该工程师通过 HS_UAMDOMAINS 将 Apple 的 Captive Portal 检测域名(captive.apple.com)添加到了 CoovaChilli 的围墙花园(walled garden)中。当 iPhone 连接时,iOS 会向 captive.apple.com 发送探测请求。由于该域名在围墙花园内,探测在身份验证前就会成功,iOS 因而判定其拥有完整的互联网访问权限,从而阻止了 Captive Network Assistant 弹窗。要解决此问题,请从 HS_UAMDOMAINS 中移除 captive.apple.com 并重启 chilli 守护进程。这样,iOS 设备将收到探测失败的响应,从而正确识别 Captive Portal 并自动显示登录提示。

Q2. 联合办公空间运营商希望在其园区内部署 IoT 智能温控器。他们已经广播了“Cowork_Guest” SSID (CoovaChilli) 和“Cowork_Staff” SSID (802.1X)。这些温控器不支持 WPA2-Enterprise。如何在不增加第三个 SSID 的情况下安全地接入它们?

提示:IoT 设备通常仅支持 WPA2-PSK。考虑可以扩展哪个现有的 SSID 来支持单设备密钥(per-device passphrases)。

查看标准答案

通过在 hostapd 配置中启用 wpa_psk_radius=2,在“Cowork_Staff” SSID 上配置 PPSK。在 Purple RADIUS 服务器中注册每个温控器的 MAC 地址,配置唯一的密钥,并将 VLAN 40 (IoT VLAN) 作为 Tunnel-Private-Group-ID。当温控器连接时,hostapd 会使用设备 MAC 查询 RADIUS 服务器,接收唯一的 PSK 和 VLAN 分配,并将温控器放入 VLAN 40 中——这与 VLAN 10 上的员工流量完全隔离。此方法避免了第三个 SSID,保持了射频效率,并在不需要 802.1X 证书基础设施的情况下对 IoT 设备实施了最小权限访问。

Q3. 在零售场所部署了带有 CoovaChilli 的 OpenWrt 后,尽管访客成功连接并浏览互联网,但 Purple 分析仪表板显示活跃会话为零且无带宽数据。最可能的原因是什么?诊断此问题的两个步骤是什么?

提示:认证(端口 1812)和计费(端口 1813)是独立的 RADIUS 功能。

查看标准答案

RADIUS 计费(accounting)配置丢失或被拦截。步骤 1:验证 CoovaChilli 配置。检查 /etc/chilli/defaults 中是否正确设置了 HS_RADIUS 和 HS_RADIUS2,并确认 radiusacctport 已设置为 1813。如果未配置 HS_RADIUS2,则未定义计费服务器。步骤 2:验证防火墙规则。确认该场所的出口防火墙允许从 OpenWrt 路由器到 Purple RADIUS 服务器 IP 地址的出站 UDP 1813 端口流量。在 OpenWrt 设备上使用 “tcpdump -i eth0 udp port 1813” 来确认是否正在发送计费数据包。如果 tcpdump 中出现了数据包,但仪表板仍然为空,则问题在于防火墙拦截了路由器与 Purple 云端 RADIUS 服务器之间的流量。

Q4. 体育场部署的 OpenWrt 使用通过 RADIUS 动态分配 VLAN 来细分球迷 WiFi(VLAN 30)、媒体(VLAN 40)和运营(VLAN 50)。将接入点升级到运行带有 ath10k 驱动程序的 OpenWrt 19.07 的新硬件后,VLAN 分配停止工作。无论 RADIUS 属性如何,通过身份验证的用户都会进入默认 VLAN。已知的起因是什么?

提示:考虑 ath10k 中对 AP/VLAN 模式的驱动级支持。

查看标准答案

这是 OpenWrt 19.07 中包含的 ath10k-ct (Candela Technologies) 固件中一个已知的回退问题(regression)。此版本中的 ath10k-ct 驱动程序存在一个 Bug,会破坏 AP/VLAN 模式,导致动态 VLAN 分配无法正常工作。解决方法是升级到 OpenWrt 21.02 或更高版本,该版本中更新了 ath10k-ct 驱动程序以恢复 AP/VLAN 功能。或者,在 19.07 构建版本上用标准 ath10k 固件(非 CT 变体)替换 ath10k-ct 固件。此问题不影响基于 ath9k 的硬件,这类硬件在所有 OpenWrt 版本中都能正确处理 AP/VLAN 模式。