跳至主要內容

OpenWrt 客製化韌體與 Purple WiFi 整合

本指南提供部署 OpenWrt 客製化韌體與 Purple WiFi 整合的完整指南。內容涵蓋 CoovaChilli Captive Portal 設定、iptables 圍牆花園(walled garden)管理、使用 hostapd 的 802.1X 安全員工 WiFi,以及具備動態 VLAN 分配的多租戶 PPSK 區隔,為 IT 團隊提供在任何支援 OpenWrt 的硬體上建構身分辨識網路(Identity-Based Network)所需的確切設定步驟。

📖 9 分鐘閱讀📝 2,146 字數🔧 2 範例4 練習題📚 10 關鍵定義

收聽此指南

查看播客逐字稿
[0:00 - 1:00] 導言與背景 歡迎收聽 Purple 技術簡報。我是您的主持人,在接下來的十分鐘內,我們將剖析 OpenWrt 客製化韌體與 Purple WiFi 的整合。如果您是 IT 經理、網路架構師或 CTO,且正在旅宿業、零售業或公共部門環境中部署客製化韌體,那麼這場簡報就是為您準備的。我們將拋開學術理論,為您提供設定 CoovaChilli、使用 802.1X 保護員工網路,以及使用專屬預先共用金鑰(Private Pre-Shared Keys)區隔多租戶環境的確切指南。 為什麼這很重要?因為部署像 OpenWrt 這樣的客製化韌體可以為您帶來極佳的彈性和硬體獨立性。但如果沒有結構化、身分驅動的存取控制層,這種彈性就會變成安全隱患。您需要安全地收集第一方數據、強制執行 GDPR 合規性,並可靠地區隔您的流量。讓我們進入技術深挖。 [1:00 - 6:00] 技術深挖 OpenWrt 整合的核心依賴於 CoovaChilli。CoovaChilli 是一款開源存取控制器,可攔截未經驗證的用戶端流量,並將其重導向至 Purple Captive Portal。當房客連線到您的開放式 SSID 時,CoovaChilli 就會充當守門人。它會透過在 tun0 介面上執行的內部 DHCP 伺服器分配 IP 地址,並封鎖除您在圍牆花園中明確允許的流量之外的所有流量。 當房客嘗試瀏覽網頁時,CoovaChilli 會攔截 HTTP 請求,並向 Purple 登入頁面發送重導向。這就是圍牆花園設定至關重要的地方。在您的 chilli.conf 檔案中,您必須定義 HS_UAMDOMAINS 參數。這是以逗號分隔的網域清單,房客在驗證之前可以存取這些網域。您必須納入 splash.purple.ai、api.purple.ai 以及我們用來提供入口網站資源的各種 CDN 網域。如果您遺漏了某個網域,入口網站將無法載入,或者社群登入按鈕將會失效。就是這麼簡單。 一旦房客在 Purple 入口網站上通過驗證,Purple 的雲端 RADIUS 伺服器就會在 UDP 連接埠 1812 上向 CoovaChilli 傳回 Access-Accept 訊息。接著,CoovaChilli 會授權該 MAC 地址,開啟該工作階段的防火牆規則,並開始在 UDP 連接埠 1813 上傳送計費數據。計費並非選配。這是 Purple 為您的分析儀表板追蹤工作階段持續時間和數據使用量的方式。 現在,我們來談談員工 WiFi。您不會將 CoovaChilli 用於員工。對於員工網路,您會使用帶有 WPA2-Enterprise 或 WPA3-Enterprise 的 hostapd。這是標準的 802.1X 驗證。基地台充當驗證器,將 EAP 訊息轉發到您的 RADIUS 伺服器。對於企業裝置,您應該部署 EAP-TLS,它使用數位憑證而不是密碼。這完全杜絕了憑證遭竊。您需要設定 hostapd.conf 以指向您的 RADIUS 伺服器,並由 RADIUS 伺服器決定該特定使用者的 VLAN 分配。 這帶領我們來到現代 OpenWrt 部署中最強大的功能之一:專屬預先共用金鑰(Private Pre-Shared Keys),或稱 PPSK。在多租戶環境中(例如租賃住宅或共享辦公空間),您不會希望廣播五十個不同的 SSID。這會破壞您的空口時間(airtime)效率。相反地,您只需廣播一個 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 以檢查網際網路連線能力。如果您在圍牆花園中將 captive.apple.com 列入白名單,裝置會認為它已連上網際網路,且不會彈出 Captive Network Assistant。如果您希望自動彈出,請將 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 基礎架構的複雜性,提供了一個雲端管理的入口網站,可收集第一方數據並確保合規性。 您的下一步是稽核您目前的客製化韌體部署。確保您的圍牆花園已完整配置,驗證您的 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

一個開源軟體存取控制器,為無線網路提供 Captive Portal 和圍牆花園環境,並使用 RADIUS 進行驗證和計費。

IT 團隊在 OpenWrt 上部署 CoovaChilli,以攔截房客的 HTTP 流量並將其重導向至 Purple 登入頁面。它負責管理強制執行圍牆花園並在驗證後授予網際網路存取權限的 iptables 規則。

Walled garden

未經驗證的使用者在完成 Captive Portal 驗證之前可以存取的 IP 地址或網域的嚴格允許清單。

這對於允許房客裝置載入 Purple 入口網站圖片並存取社群媒體登入 API,同時封鎖一般網際網路存取至關重要。不完整的圍牆花園是導致 Captive Portal 失敗最常見的原因。

PPSK (Private Pre-Shared Key)

一種安全機制,為同一個 WiFi SSID 的個別使用者或裝置分配專屬的密碼,並由 RADIUS 根據裝置的 MAC 地址傳回正確的密碼和 VLAN 分配。

用於在不廣播多個 SSID 的情況下區隔多租戶環境。在 OpenWrt 中透過 hostapd 中的 wpa_psk_radius 參數支援。

Dynamic VLAN assignment

RADIUS 伺服器使用 Tunnel-Type、Tunnel-Medium-Type 和 Tunnel-Private-Group-ID 等 RADIUS 屬性,指示基地台將特定的已驗證使用者分配到特定虛擬區域網路(VLAN)的過程。

身分辨識網路(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 accounting

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 attribute

在 PPSK 部署中使用的 RADIUS 屬性(屬性 69),用於在 MAC 驗證期間將每個裝置的密碼從 RADIUS 伺服器傳回至基地台。

Purple 的 RADIUS 伺服器藉此機制將專屬的 PSK 傳送至 OpenWrt 的 hostapd 精靈,以進行基於 PPSK 的多租戶區隔。

範例

一家擁有 200 間客房的飯店需要提供分級的 WiFi 存取:為房客提供免費的基本網路、為會員提供高速網路,以及為員工的 POS 裝置提供安全存取。IT 團隊希望將 SSID 開銷降至最低,並在 POS 終端機與房客流量之間強制執行 PCI DSS 網路隔離。

部署廣播兩個 SSID 的 OpenWrt 基地台:「Hotel_Guest」(開放式,由 CoovaChilli 管理)和「Hotel_Secure」(透過 hostapd 進行 PPSK 管理)。在「Hotel_Guest」上,CoovaChilli 會將所有未經驗證的流量重導向至 Purple 登入頁面。房客透過入口網站進行驗證,並進入 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 圍牆花園設定不完整所致。Facebook 的驗證流程需要存取多個網域:facebook.com、connect.facebook.net 和 fbcdn.net(Facebook 用於登入資源的 CDN)。Google 登入可以運作,是因為 googleapis.com 和 gstatic.com 已在圍牆花園中。請更新 /etc/chilli/defaults 中的 HS_UAMDOMAINS 參數,加入「.facebook.com,.connect.facebook.net,.fbcdn.net」。使用「/etc/init.d/chilli restart」重新載入 chilli 精靈並重新測試。若要系統化地診斷未來的圍牆花園問題,請將測試裝置連線至房客 SSID,並使用瀏覽器開發者工具(網路分頁)來識別哪些請求在驗證前傳回連線錯誤。

考官評語: 現代社群登入流程會從多個 CDN 和 API 網域載入資源。光是 Facebook SDK 就至少引用了三個不同的網域。使用瀏覽器開發者工具來識別被封鎖的預先驗證(pre-auth)請求,這種系統化的圍牆花園除錯方法,遠比猜測網域清單可靠得多。在所有 50 個據點上線之前,工程師應測試每種已設定的驗證方式(Facebook、Google、電子郵件、簡訊),並驗證每種方式皆能成功完成。

練習題

Q1. 您已在 Premier Inn 飯店部署了帶有 CoovaChilli 的 OpenWrt。房客反映,當他們的 iPhone 連線至房客 WiFi 時,系統不會自動提示他們登入。他們必須手動開啟 Safari 並瀏覽某個 HTTP 網站才能觸發入口網站。是什麼設定變更導致了此情況?您該如何解決?

提示:思考 iOS 在建立關聯時如何判斷網路是否具有完整的網際網路存取權限。

查看標準答案

工程師已透過 HS_UAMDOMAINS 將 Apple 的 Captive Portal 偵測網域(captive.apple.com)納入 CoovaChilli 圍牆花園中。當 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 來支援每個裝置專屬的密碼。

查看標準答案

透過在 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,維持了射頻(RF)效率,並在不需要 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 驅動程式存在一個錯誤,會破壞 AP/VLAN 模式,導致動態 VLAN 分配無法運作。解決方案是升級到 OpenWrt 21.02 或更新版本,其中的 ath10k-ct 驅動程式已更新以恢復 AP/VLAN 功能。或者,在 19.07 版本上將 ath10k-ct 韌體替換為標準的 ath10k 韌體(非 CT 變體)。此問題不會影響基於 ath9k 的硬體,該硬體在所有 OpenWrt 版本中都能正確處理 AP/VLAN 模式。