Passer au contenu principal

Intégration du firmware personnalisé OpenWrt avec Purple WiFi

Ce guide fournit le guide d'intégration complet pour déployer le firmware personnalisé OpenWrt avec Purple WiFi. Il couvre la configuration du Captive Portal CoovaChilli, la gestion du walled garden via iptables, le WiFi sécurisé pour le personnel en 802.1X avec hostapd, et la segmentation PPSK multi-tenant avec attribution dynamique de VLAN - offrant aux équipes informatiques les étapes de configuration exactes nécessaires pour créer un réseau basé sur l'identité sur n'importe quel matériel compatible OpenWrt.

📖 9 min de lecture📝 2,146 mots🔧 2 exemples concrets4 questions d'entraînement📚 10 définitions clés

Écouter ce guide

Voir la transcription du podcast
[0:00 - 1:00] Introduction & Contexte Bienvenue dans ce point technique de Purple. Je suis votre hôte, et au cours des dix prochaines minutes, nous allons décortiquer l'intégration du firmware personnalisé OpenWrt avec Purple WiFi. Si vous êtes responsable informatique, architecte réseau ou CTO et que vous déployez un firmware personnalisé dans des environnements d'hôtellerie, de vente au détail ou du secteur public, ce point technique est fait pour vous. Nous allons laisser de côté la théorie académique pour vous donner le guide exact pour configurer CoovaChilli, sécuriser les réseaux du personnel avec le 802.1X et segmenter les environnements multi-tenant à l'aide de clés privées pré-partagées (PPSK). Pourquoi est-ce important ? Parce que le déploiement d'un firmware personnalisé comme OpenWrt vous offre une flexibilité incroyable et une indépendance vis-à-vis du matériel. Mais sans une couche de contrôle d'accès structurée et basée sur l'identité, cette flexibilité devient une faille de sécurité. Vous devez capturer des données de première partie de manière sécurisée, appliquer la conformité au GDPR et segmenter votre trafic de manière fiable. Entrons dans les détails techniques. [1:00 - 6:00] Analyse technique approfondie Le cœur de l'intégration d'OpenWrt repose sur CoovaChilli. CoovaChilli est le contrôleur d'accès open-source qui intercepte le trafic des clients non authentifiés et le redirige vers le Captive Portal de Purple. Lorsqu'un invité se connecte à votre SSID ouvert, CoovaChilli joue le rôle de gardien. Il attribue une adresse IP via son propre serveur DHCP interne, s'exécutant sur l'interface tun0, et bloque tout le trafic à l'exception de ce que vous autorisez explicitement dans le walled garden. Lorsque l'invité tente de naviguer, CoovaChilli intercepte la requête HTTP et émet une redirection vers la splash page de Purple. C'est là que la configuration du walled garden est essentielle. Dans votre fichier chilli.conf, vous devez définir le paramètre HS_UAMDOMAINS. Il s'agit d'une liste de domaines séparés par des virgules que les invités peuvent atteindre avant de s'authentifier. Vous devez inclure splash.purple.ai, api.purple.ai et les différents domaines de CDN que nous utilisons pour diffuser les ressources du portail. Si vous oubliez un domaine, le portail ne se chargera pas ou les boutons de connexion sociale ne fonctionneront pas. C'est aussi simple que cela. Une fois que l'invité s'est authentifié sur le portail Purple, le serveur RADIUS cloud de Purple renvoie un message Access-Accept à CoovaChilli sur le port UDP 1812. CoovaChilli autorise alors l'adresse MAC, ouvre les règles de pare-feu pour cette session et commence à envoyer des données de comptabilité sur le port UDP 1813. La comptabilité n'est pas facultative. C'est ainsi que Purple suit la durée de la session et l'utilisation des données pour votre tableau de bord analytique. Parlons maintenant du WiFi du personnel. Vous n'utilisez pas CoovaChilli pour le personnel. Pour les réseaux du personnel, vous utilisez hostapd avec WPA2-Enterprise ou WPA3-Enterprise. Il s'agit de l'authentification 802.1X standard. Le point d'accès agit comme l'authentificateur, transmettant les messages EAP à votre serveur RADIUS. Pour les appareils d'entreprise, vous devriez déployer l'EAP-TLS, qui utilise des certificats numériques au lieu de mots de passe. Cela élimine complètement le vol d'identifiants. Vous configurez hostapd.conf pour pointer vers votre serveur RADIUS, et le serveur RADIUS dicte l'attribution de VLAN pour cet utilisateur spécifique. Cela nous amène à l'une des fonctionnalités les plus puissantes des déploiements OpenWrt modernes : les clés privées pré-partagées, ou PPSK. Dans un environnement multi-tenant - par exemple, un immeuble résidentiel géré ou un espace de coworking - vous ne voulez pas diffuser cinquante SSIDs différents. Cela ruine l'efficacité de votre temps d'antenne. À la place, vous diffusez un seul SSID. Lorsqu'un appareil se connecte, hostapd envoie l'adresse MAC au serveur RADIUS. Le serveur RADIUS répond avec une phrase de passe spécifique et un ID de VLAN spécifique pour cet appareil, en utilisant l'attribut Tunnel-Password. Cela signifie que le membre du personnel de la boutique A est placé sur le VLAN 10, tandis que le participant à l'événement dans le hall principal est placé sur le VLAN 30, tous se connectant exactement au même SSID. C'est élégant, évolutif et cela applique un accès de moindre privilège à la périphérie. [6:00 - 8:00] Recommandations de mise en œuvre et pièges Discutons de la mise en œuvre. Lors du déploiement d'OpenWrt avec Purple, votre première étape consiste toujours à récupérer vos identifiants RADIUS sur le portail Purple. Vous avez besoin des adresses IP RADIUS principale et secondaire, du secret partagé et de l'URL du portail. Dans votre configuration OpenWrt, vous définirez votre interface réseau invité - généralement eth1 ou wlan0 - et y lierez CoovaChilli. Assurez-vous que le HS_RADSECRET dans votre chilli.conf correspond exactement à ce qui se trouve dans le portail Purple. Une simple différence de caractère entraînera des échecs d'authentification silencieux. Le plus grand piège que nous constatons est la résolution DNS avant l'authentification. CoovaChilli intercepte les requêtes DNS. Si votre pare-feu en amont empêche le routeur OpenWrt de résoudre les DNS externes, la redirection vers le Captive Portal échouera. Assurez-vous que votre routeur OpenWrt dispose d'un accès DNS sans restriction aux résolveurs publics comme Google ou OpenDNS. Un autre problème courant concerne les mécanismes de détection de Captive Portal intégrés à iOS et Android. Les appareils Apple contactent captive.apple.com pour vérifier la connectivité internet. Si vous mettez captive.apple.com sur liste blanche dans votre walled garden, l'appareil pense qu'il dispose d'un accès internet et n'affichera pas l'assistant de réseau captif. Si vous souhaitez l'affichage automatique de la fenêtre contextuelle, n'incluez pas les domaines d'Apple dans le walled garden. [8:00 - 9:00] Questions-réponses rapides Passons à une session de questions-réponses rapide. Question un : Puis-je exécuter CoovaChilli et hostapd 802.1X sur le même point d'accès OpenWrt ? Oui. Vous liez CoovaChilli à l'interface de votre SSID invité, et vous configurez hostapd avec le 802.1X sur l'interface de votre SSID du personnel. Ils fonctionnent de manière indépendante. Question deux : Est-ce que Purple prend en charge l'attribution dynamique de VLAN avec OpenWrt ? Oui. Les serveurs RADIUS de Purple peuvent renvoyer des attributs RADIUS standard, notamment Tunnel-Type, Tunnel-Medium-Type et Tunnel-Private-Group-ID, demandant à OpenWrt de placer l'utilisateur authentifié sur un VLAN spécifique. Question trois : Que se passe-t-il si le routeur OpenWrt perd la connexion avec le serveur RADIUS de Purple ? CoovaChilli ne parviendra pas à authentifier les nouvelles sessions. Les sessions autorisées existantes resteront actives jusqu'à l'expiration de leur délai de session. Configurez toujours le serveur RADIUS Purple secondaire pour garantir une haute disponibilité. [9:00 - 10:00] Résumé et prochaines étapes Pour résumer : OpenWrt fournit une plateforme robuste et indépendante du matériel pour le WiFi d'entreprise. En intégrant CoovaChilli pour l'accès des invités et hostapd pour le personnel sécurisé et le PPSK multi-tenant, vous construisez un réseau basé sur l'identité. Purple simplifie la complexité de l'infrastructure RADIUS, en fournissant un portail géré dans le cloud qui capture les données de première partie et garantit la conformité. Votre prochaine étape consiste à auditer vos déploiements actuels de firmwares personnalisés. Assurez-vous que vos walled gardens sont complets, vérifiez vos intervalles de comptabilité RADIUS et commencez à planifier votre migration des clés PSK partagées vers une segmentation PPSK dynamique. Merci d'avoir écouté ce point technique de Purple. Pour en savoir plus sur la façon dont Purple peut sécuriser et monétiser votre WiFi invité, visitez purple.ai. À la prochaine.

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 वरील मार्गदर्शक देखील उपयुक्त वाटू शकते.

Définitions clés

CoovaChilli

Un contrôleur d'accès logiciel open-source qui fournit un Captive Portal et un environnement de walled garden pour les réseaux sans fil, utilisant RADIUS pour l'authentification et la comptabilité.

Les équipes informatiques déploient CoovaChilli sur OpenWrt pour intercepter le trafic HTTP des invités et le rediriger vers la splash page de Purple. Il gère les règles iptables qui appliquent le walled garden et accordent l'accès à internet après l'authentification.

Walled garden

Une liste d'autorisation stricte d'adresses IP ou de domaines auxquels un utilisateur non authentifié peut accéder avant de terminer l'authentification sur le Captive Portal.

Essentiel pour permettre aux appareils des invités de charger les graphiques du portail Purple et d'accéder aux API de connexion des réseaux sociaux tout en bloquant l'accès général à internet. Un walled garden incomplet est la cause la plus fréquente d'échec du Captive Portal.

PPSK (Private Pre-Shared Key)

Un mécanisme de sécurité dans lequel des phrases de passe uniques sont attribuées à des utilisateurs ou appareils individuels pour le même SSID WiFi, RADIUS renvoyant la phrase de passe correcte et l'attribution de VLAN par adresse MAC d'appareil.

Utilisé pour segmenter les environnements multi-tenant sans diffuser plusieurs SSIDs. Pris en charge dans OpenWrt via le paramètre wpa_psk_radius=2 dans hostapd.

Dynamic VLAN assignment

Le processus par lequel un serveur RADIUS demande au point d'accès de placer un utilisateur authentifié spécifique sur un réseau local virtuel (VLAN) spécifique, en utilisant les attributs RADIUS Tunnel-Type, Tunnel-Medium-Type et Tunnel-Private-Group-ID.

Le mécanisme central des réseaux basés sur l'identité. L'identité de l'utilisateur, et non son port physique, détermine son segment de réseau et ses droits d'accès.

IEEE 802.1X

La norme IEEE pour le contrôle d'accès réseau basé sur les ports, définissant les rôles d'authentificateur (point d'accès), de demandeur (appareil client) et de serveur d'authentification (RADIUS) dans l'authentification WiFi d'entreprise.

Le protocole sous-jacent pour le WiFi sécurisé du personnel sur OpenWrt. Nécessite le package complet wpad ou wpad-openssl - wpad-mini ne le prend pas en charge.

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

Une méthode d'authentification 802.1X qui utilise une authentification mutuelle basée sur des certificats, exigeant que le serveur RADIUS et l'appareil client présentent tous deux des certificats numériques valides.

La référence absolue pour l'authentification des appareils d'entreprise. Élimine complètement les mots de passe, neutralisant le vol d'identifiants et les attaques de phishing. Nécessite une infrastructure PKI pour émettre des certificats clients.

Captive Network Assistant (CNA)

Le pseudo-navigateur que les appareils iOS et Android affichent automatiquement lorsqu'ils détectent qu'ils se trouvent derrière un Captive Portal, sur la base de requêtes vers des URL de détection spécifiques.

Les ingénieurs réseau doivent gérer soigneusement leurs walled gardens pour contrôler si le CNA se déclenche automatiquement. La plupart des déploiements dans le secteur de l'hôtellerie excluent les domaines de détection d'Apple et de Google pour forcer l'apparition de la fenêtre contextuelle du CNA.

RADIUS accounting

Le troisième pilier du framework AAA (Authentification, Autorisation, Comptabilité), suivant la consommation des ressources réseau en enregistrant les événements de début de session, de mises à jour intermédiaires et de fin de session sur le port UDP 1813.

Requis par Purple pour alimenter le tableau de bord analytique avec la durée des sessions et les données de bande passante. Configuré dans CoovaChilli via HS_RADIUS2 et le paramètre radiusacctport.

hostapd

Le démon de point d'accès open-source IEEE 802.11 utilisé par OpenWrt pour gérer les interfaces sans fil, prenant en charge les modes d'authentification WPA2/WPA3-Enterprise, 802.1X et PPSK.

Le démon central pour le WiFi du personnel et PPSK sur OpenWrt. Le package wpad-openssl fournit la version complète de hostapd requise pour l'authentification d'entreprise.

Tunnel-Password attribute

Un attribut RADIUS (attribut 69) utilisé dans les déploiements PPSK pour renvoyer une phrase de passe par appareil depuis le serveur RADIUS vers le point d'accès lors de l'authentification MAC.

Le mécanisme par lequel le serveur RADIUS de Purple fournit des clés PSK uniques au démon hostapd d'OpenWrt pour la segmentation multi-tenant basée sur PPSK.

Exemples concrets

Un hôtel de 200 chambres doit fournir un accès WiFi à plusieurs niveaux : un accès internet de base gratuit pour les clients, un accès haut débit pour les membres du programme de fidélité, et un accès sécurisé pour les terminaux de point de vente du personnel. L'équipe informatique souhaite minimiser la surcharge de SSID et imposer une isolation réseau PCI DSS entre les terminaux de point de vente et le trafic des clients.

Déployez des points d'accès OpenWrt diffusant deux SSIDs : 'Hotel_Guest' (ouvert, géré par CoovaChilli) et 'Hotel_Secure' (géré par PPSK via hostapd). Sur 'Hotel_Guest', CoovaChilli redirige tout le trafic non authentifié vers la splash page de Purple. Les clients s'authentifient via le portail et arrivent sur le VLAN 20 (internet uniquement). Sur 'Hotel_Secure', configurez hostapd avec wpa_psk_radius=2. Lorsqu'un appareil de membre de fidélité se connecte, le serveur RADIUS renvoie sa clé PSK unique et le VLAN 21 (niveau de bande passante supérieur). Lorsqu'un terminal de point de vente se connecte, le serveur RADIUS renvoie la clé PSK de l'appareil de point de vente et le VLAN 10 (accès au réseau interne, internet bloqué). La segmentation VLAN impose l'isolation PCI DSS entre les données des titulaires de carte (VLAN 10) et le trafic des clients (VLANs 20 et 21) au niveau du point d'accès.

Commentaire de l'examinateur : Cette architecture utilise deux SSIDs plutôt qu'un seul pour séparer le flux du Captive Portal (clients) du flux PPSK (personnel et fidélité). C'est la bonne approche car CoovaChilli et le PPSK de hostapd reposent sur des modèles d'authentification fondamentalement différents. Les combiner sur un seul SSID nécessite une configuration de proxy RADIUS qui ajoute une complexité inutile. Le modèle à deux SSIDs est plus simple, plus fiable et plus facile à auditer pour la conformité PCI DSS.

Une chaîne de vente au détail déploie des routeurs OpenWrt sur 50 sites. Lors de l'UAT sur le premier site, la splash page de Purple se charge correctement après la redirection, mais un clic sur le bouton de connexion Facebook entraîne une expiration de la connexion. Le bouton de connexion Google fonctionne correctement.

Le problème provient d'un walled garden CoovaChilli incomplet. Le flux d'authentification de Facebook nécessite l'accès à plusieurs domaines : facebook.com, connect.facebook.net et fbcdn.net (le CDN de Facebook pour les éléments de connexion). La connexion Google fonctionne car googleapis.com et gstatic.com sont déjà dans le walled garden. Mettez à jour le paramètre HS_UAMDOMAINS dans /etc/chilli/defaults pour ajouter '.facebook.com,.connect.facebook.net,.fbcdn.net'. Rechargez le démon chilli avec '/etc/init.d/chilli restart' et testez à nouveau. Pour diagnostiquer systématiquement les futurs problèmes de walled garden, connectez un appareil de test au SSID invité et utilisez les outils de développement du navigateur (onglet Réseau) pour identifier les requêtes qui renvoient des erreurs de connexion avant l'authentification.

Commentaire de l'examinateur : Les flux de connexion sociale modernes chargent des ressources à partir de plusieurs domaines CDN et API. Le SDK Facebook à lui seul fait référence à au moins trois domaines distincts. Une approche systématique du débogage du walled garden - utilisant les outils de développement du navigateur pour identifier les requêtes pré-authentification bloquées - est bien plus fiable que de deviner des listes de domaines. Avant la mise en service sur les 50 sites, l'ingénieur doit tester chaque méthode d'authentification configurée (Facebook, Google, e-mail, SMS) et vérifier que chacune d'elles aboutit.

Questions d'entraînement

Q1. Vous avez déployé OpenWrt avec CoovaChilli dans un établissement Premier Inn. Les clients signalent que leurs iPhones ne les invitent pas automatiquement à se connecter lorsqu'ils se connectent au WiFi invité. Ils doivent ouvrir manuellement Safari et naviguer vers un site HTTP pour déclencher le portail. Quel changement de configuration provoque cela, et comment le résolvez-vous ?

Conseil : Considérez comment iOS détermine si un réseau dispose d'un accès internet complet lors de l'association.

Voir la réponse type

L'ingénieur a inclus le domaine de détection de Captive Portal d'Apple (captive.apple.com) dans le walled garden de CoovaChilli via HS_UAMDOMAINS. Lorsqu'un iPhone se connecte, iOS envoie une requête de test à captive.apple.com. Comme ce domaine se trouve dans le walled garden, le test réussit avant l'authentification, et iOS en conclut qu'il dispose d'un accès internet complet, ce qui supprime l'apparition de la fenêtre contextuelle du Captive Network Assistant. Pour résoudre ce problème, supprimez captive.apple.com de HS_UAMDOMAINS et redémarrez le démon chilli. Les appareils iOS recevront alors une réponse d'échec au test, identifieront correctement le Captive Portal et afficheront automatiquement l'invite de connexion.

Q2. Un opérateur d'espace de coworking souhaite déployer des thermostats intelligents IoT sur l'ensemble de son parc. Il diffuse déjà un SSID 'Cowork_Guest' (CoovaChilli) et un SSID 'Cowork_Staff' (802.1X). Les thermostats ne prennent pas en charge le WPA2-Enterprise. Comment les intégrer de manière sécurisée sans ajouter de troisième SSID ?

Conseil : Les appareils IoT ne prennent généralement en charge que le WPA2-PSK. Considérez quel SSID existant peut être étendu pour prendre en charge des phrases de passe par appareil.

Voir la réponse type

Configurez PPSK sur le SSID 'Cowork_Staff' en activant wpa_psk_radius=2 dans la configuration de hostapd. Enregistrez l'adresse MAC de chaque thermostat dans le serveur RADIUS de Purple avec une phrase de passe unique et le VLAN 40 (VLAN IoT) comme Tunnel-Private-Group-ID. Lorsqu'un thermostat se connecte, hostapd interroge le serveur RADIUS avec le MAC de l'appareil, reçoit la clé PSK unique et l'attribution de VLAN, et place le thermostat sur le VLAN 40 - complètement isolé du trafic du personnel sur le VLAN 10. Cette approche évite un troisième SSID, maintient l'efficacité spectrale (RF) et applique un accès de moindre privilège pour les appareils IoT sans nécessiter d'infrastructure de certificats 802.1X.

Q3. Après avoir déployé OpenWrt avec CoovaChilli sur un site de vente au détail, le tableau de bord analytique de Purple affiche zéro session active et aucune donnée de bande passante, bien que les invités se connectent et naviguent correctement sur internet. Quelle est la cause la plus probable, et quelles sont les deux étapes pour la diagnostiquer ?

Conseil : L'authentification (port 1812) et la comptabilité (port 1813) sont des fonctions RADIUS distinctes.

Voir la réponse type

La configuration de la comptabilité (accounting) RADIUS est manquante ou bloquée. Étape 1 : Vérifiez la configuration de CoovaChilli. Assurez-vous que HS_RADIUS et HS_RADIUS2 sont correctement définis dans /etc/chilli/defaults, et confirmez que le radiusacctport est défini sur 1813. Si HS_RADIUS2 n'est pas configuré, aucun serveur de comptabilité n'est défini. Étape 2 : Vérifiez les règles du pare-feu. Confirmez que le trafic sortant du port UDP 1813 depuis le routeur OpenWrt vers les adresses IP du serveur RADIUS de Purple est autorisé par le pare-feu périphérique du site. Utilisez 'tcpdump -i eth0 udp port 1813' sur l'appareil OpenWrt pour confirmer si des paquets de comptabilité sont envoyés. Si des paquets apparaissent dans tcpdump mais que le tableau de bord reste vide, le problème provient d'un pare-feu qui bloque le trafic entre le routeur et les serveurs RADIUS cloud de Purple.

Q4. Un déploiement OpenWrt dans un stade utilise l'attribution dynamique de VLAN via RADIUS pour segmenter le WiFi des supporters (VLAN 30), des médias (VLAN 40) et des opérations (VLAN 50). Après avoir mis à niveau les points d'accès vers un nouveau matériel exécutant OpenWrt 19.07 avec des pilotes ath10k, l'attribution de VLAN ne fonctionne plus. Les utilisateurs authentifiés se retrouvent tous sur le VLAN par défaut, quels que soient les attributs RADIUS. Quelle est la cause connue ?

Conseil : Considérez la prise en charge au niveau du pilote pour le mode AP/VLAN dans ath10k.

Voir la réponse type

Il s'agit d'une régression connue dans le firmware ath10k-ct (Candela Technologies) inclus dans OpenWrt 19.07. Le pilote ath10k-ct de cette version présente un bug qui casse le mode AP/VLAN, empêchant le fonctionnement de l'attribution dynamique de VLAN. La solution consiste à passer à OpenWrt 21.02 ou version ultérieure, où le pilote ath10k-ct a été mis à jour pour restaurer la fonctionnalité AP/VLAN. Alternativement, remplacez le firmware ath10k-ct par le firmware ath10k standard (variante non-CT) sur la version 19.07. Ce problème n'affecte pas le matériel basé sur ath9k, qui gère correctement le mode AP/VLAN sur toutes les versions d'OpenWrt.