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

Résumé exécutif

OpenWrt est le firmware de choix pour les équipes informatiques qui ont besoin d'une indépendance matérielle sans sacrifier le contrôle de niveau entreprise. Déployé dans les secteurs de l'hôtellerie, de la vente au détail et du secteur public, il fournit une pile réseau basée sur Linux entièrement configurable. Mais par défaut, OpenWrt est une page blanche. Sans couche d'identité structurée, les réseaux invités deviennent ingérables, les réseaux du personnel restent non sécurisés et les environnements multi-tenant s'effondrent en un seul réseau plat.

Ce guide fournit le guide d'intégration définitif pour connecter OpenWrt à la plateforme de Captive Portal et de RADIUS cloud de Purple. Nous couvrons quatre scénarios de déploiement distincts : la redirection vers le Captive Portal invité à l'aide de CoovaChilli, la configuration du walled garden via iptables, le WiFi sécurisé pour le personnel à l'aide de hostapd avec IEEE 802.1X, et la segmentation multi-tenant à l'aide de clés privées pré-partagées (PPSK) avec attribution dynamique de VLAN. À la fin, vous disposerez des paramètres de configuration exacts, des modes de défaillance courants et des cadres de décision nécessaires pour déployer un réseau basé sur l'identité, prêt pour la production et conforme au GDPR, sur n'importe quel matériel compatible OpenWrt.

Purple est présent dans plus de 80 000 sites actifs et a traité 440 millions de connexions en 2024 (données internes de Purple, 2024). L'architecture décrite ici est la même que celle déployée à grande échelle dans les chaînes hôtelières, les parcs de vente au détail et les hubs de transport.

Analyse technique approfondie

L'architecture du Captive Portal CoovaChilli

Lors du déploiement du WiFi invité sur OpenWrt, CoovaChilli est le contrôleur d'accès standard de l'industrie. Il fonctionne comme un démon de Captive Portal qui intercepte le trafic des clients non authentifiés, attribue des adresses IP via son serveur DHCP interne sur l'interface virtuelle tun0, et applique les politiques de walled garden à l'aide de règles iptables qu'il gère directement.

Le flux d'authentification fonctionne comme suit. Un appareil invité s'associe au SSID ouvert. CoovaChilli lui attribue une adresse IP à partir de son pool interne (généralement 10.1.0.0/24). Lorsque l'appareil envoie sa première requête HTTP, CoovaChilli l'intercepte et émet une redirection HTTP 302 vers l'URL de la splash page de Purple. Pendant cette phase de pré-authentification, l'appareil est isolé - il ne peut atteindre que les domaines explicitement répertoriés dans le walled garden.

Une fois que l'invité s'est authentifié sur le portail Purple, le serveur RADIUS cloud de Purple envoie un message Access-Accept à CoovaChilli sur le port UDP 1812. CoovaChilli met ensuite à jour ses règles iptables pour autoriser l'accès à internet pour cette adresse MAC spécifique et commence à transmettre les données de comptabilité (durée de la session, octets transférés) au serveur de comptabilité RADIUS de Purple sur le port UDP 1813. La comptabilité n'est pas facultative - c'est le mécanisme par lequel Purple alimente votre tableau de bord d' Analyses WiFi avec les données de session.

architecture_overview.png

Walled garden : iptables et listes d'autorisation de domaines

Le walled garden est l'élément de configuration le plus critique sur le plan opérationnel dans tout déploiement de Captive Portal. CoovaChilli gère le walled garden via deux mécanismes : le paramètre uamallowed pour les adresses IP individuelles et le paramètre uamdomains pour l'autorisation basée sur les domaines avec inspection DNS.

Pour une intégration Purple, les entrées minimales requises pour le walled garden sont :

Domaine Objectif
*.purple.ai Ressources du portail, API et points de terminaison d'authentification
*.googleapis.com Google Fonts et connexion Google
*.gstatic.com Vérification de la connectivité Google et ressources statiques
*.facebook.com API de connexion Facebook
*.fbcdn.net CDN de Facebook pour les ressources de connexion
captive.apple.com Détection CNA d'Apple (voir note ci-dessous)
connectivitycheck.gstatic.com Détection de Captive Portal Android

Note sur la gestion du CNA d'Apple : Si vous incluez captive.apple.com dans le walled garden, les appareils iOS détecteront la connectivité internet avant l'authentification et supprimeront la fenêtre contextuelle du Captive Network Assistant. La plupart des déploiements dans l'hôtellerie excluent délibérément ce domaine pour déclencher l'invite automatique du portail. Le choix correct dépend de la conception de votre expérience client.

WiFi sécurisé pour le personnel : hostapd et IEEE 802.1X

Les réseaux invités exigent une intégration sans friction. Les réseaux du personnel exigent une sécurité absolue. Pour les utilisateurs internes, OpenWrt utilise hostapd pour faciliter l'authentification IEEE 802.1X. Dans cette architecture, le point d'accès OpenWrt agit comme l'authentificateur, transmettant les messages EAP (Extensible Authentication Protocol) entre l'appareil client (demandeur) et le serveur RADIUS de Purple.

Pour les appareils d'entreprise, l'EAP-TLS est la norme obligatoire. Il repose sur une authentification mutuelle par certificat - le serveur et l'appareil client présentent tous deux des certificats numériques - éliminant complètement les mots de passe et les risques associés de vol d'identifiants ou de phishing. Pour les environnements qui ne sont pas encore prêts pour une infrastructure à clé publique (PKI) complète, PEAP-MSCHAPv2 constitue une option intermédiaire raisonnable, utilisant un tunnel chiffré pour protéger les identifiants de l'utilisateur.

Lorsqu'un membre du personnel s'authentifie avec succès, le serveur RADIUS renvoie des attributs d'autorisation. L'attribut clé pour la segmentation du réseau est Tunnel-Private-Group-ID, qui demande à OpenWrt d'attribuer dynamiquement l'utilisateur au bon VLAN. C'est le mécanisme qui sous-tend les réseaux basés sur l'identité : l'identité de l'utilisateur, et non son emplacement physique, détermine son accès au réseau.

Segmentation multi-tenant : PPSK OpenWrt configuration

Dans les environnements multi-locataires - espaces de coworking, propriétés résidentielles locatives (BTR), centres commerciaux multi-enseignes ou stades avec des zones de sponsors distinctes - la diffusion de plusieurs SSID est coûteuse sur le plan opérationnel et inefficace en termes de radiofréquences (RF). Chaque SSID supplémentaire ajoute une surcharge de trames de gestion, réduisant le temps d'antenne disponible pour le trafic de données.

Les clés pré-partagées privées (PPSK), parfois appelées PSK dynamiques, résolvent ce problème. Vous diffusez un seul SSID. Lorsqu'un appareil tente de se connecter, hostapd envoie l'adresse MAC de l'appareil au serveur RADIUS via une requête Access-Request standard. Le serveur RADIUS valide l'adresse MAC par rapport à sa base de données et renvoie un Access-Accept contenant deux attributs critiques : l'attribut Tunnel-Password (le mot de passe unique pour cet appareil) et l'attribut Tunnel-Private-Group-ID (l'attribution du VLAN). L'appareil se connecte à l'aide de son mot de passe unique et est placé directement sur le VLAN qui lui est attribué.

Cela signifie qu'un responsable de magasin et un participant à un événement peuvent se connecter au même SSID mais être redirigés vers des réseaux entièrement distincts et isolés en fonction de leur identité unique.

ppsk_multitenant_diagram.png

Guide d'implémentation

Étape 1 : Récupérer les identifiants RADIUS Purple

Avant de modifier la configuration d'OpenWrt, récupérez les éléments suivants depuis la console d'administration du portail Purple :

  • Adresse IP du serveur RADIUS principal
  • Adresse IP du serveur RADIUS secondaire (pour le basculement)
  • Secret partagé RADIUS
  • URL de la page d'accueil (Splash Page) du Captive Portal
  • URL de redirection post-authentification

Étape 2 : Installer et configurer CoovaChilli pour le WiFi invité

Installez le paquet coova-chilli via opkg :

opkg update && opkg install coova-chilli

Le fichier de configuration principal est /etc/chilli/defaults. Définissez les paramètres réseau de base :

# Interfaces réseau
HS_WANIF=eth0           # Interface internet amont
HS_LANIF=wlan0          # L'interface WiFi invité (ou une sous-interface VLAN)

# Sous-réseau invité
HS_NETWORK=10.10.20.0
HS_NETMASK=255.255.255.0
HS_UAMLISTEN=10.10.20.1 # IP de CoovaChilli sur le réseau invité
HS_UAMPORT=3990

# Intégration RADIUS Purple
HS_RADIUS=
HS_RADIUS2=
HS_RADSECRET=
HS_NASID=venue-openwrt-01

# Page d'accueil Purple
HS_UAMSERVER=

# Walled garden - liste d'autorisation basée sur le domaine
HS_UAMDOMAINS=".purple.ai,.googleapis.com,.gstatic.com,.facebook.com,.fbcdn.net"

Activez et démarrez le service :

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

Étape 3 : Configurer l'interface sans fil OpenWrt pour le SSID invité

Dans /etc/config/wireless, définissez le SSID invité comme un réseau ouvert lié à l'interface que CoovaChilli va gérer :

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

L'isolation des clients (isolate '1') empêche les appareils invités de communiquer entre eux - un contrôle de sécurité obligatoire pour tout réseau partagé.

Étape 4 : Configurer hostapd pour le WiFi personnel 802.1X

Pour le SSID du personnel, configurez WPA2-Enterprise dans /etc/config/wireless :

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'

Le paramètre dynamic_vlan '2' indique à hostapd d'appliquer l'attribution de VLAN renvoyée par le serveur RADIUS, et de rejeter l'authentification si aucun VLAN n'est renvoyé.

Prérequis du paquet : Le paquet standard wpad-mini ne prend pas en charge WPA2-Enterprise. Vous devez installer wpad ou wpad-openssl :

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

Étape 5 : Configurer le PPSK pour la segmentation multi-locataire

Le PPSK nécessite que hostapd effectue une authentification par adresse MAC auprès du serveur RADIUS, qui renvoie ensuite le mot de passe par appareil. Dans /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'

Le paramètre wpa_psk_radius '2' indique à hostapd d'exiger l'attribut Tunnel-Password de la réponse RADIUS. Si le serveur RADIUS ne renvoie pas de mot de passe, l'authentification est rejetée.

Du côté de RADIUS Purple, la section authorize de votre configuration FreeRADIUS (ou équivalent) associe les adresses MAC aux mots de passe et aux identifiants de VLAN :

# Exemple d'entrée d'autorisation RADIUS pour PPSK
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"

Étape 6 : Configurer l'attribution dynamique de VLAN

Pour que l'attribution dynamique de VLAN fonctionne, votre commutateur OpenWrt doit être configuré pour acheminer les VLAN concernés en tant que trafic balisé (tagged) sur le port trunk connecté à votre commutateur principal. Dans /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'

Assurez-vous que le port de votre commutateur principal est configuré en mode trunk, transmettant les VLAN 10, 20 et 30 balisés (tagged).

Bonnes pratiques

Ségrégation absolue du réseau. Ne pontez jamais gles interfaces invités avec les réseaux internes. Le trafic invité doit être isolé sur un VLAN dédié et routé directement vers le pare-feu Internet. Il s'agit d'une exigence non négociable pour la conformité PCI DSS 4.0, qui impose que les réseaux WiFi invités soient complètement isolés de tout segment de réseau traitant des données de titulaires de cartes.

Précision du walled garden. Un walled garden incomplet est la cause principale des échecs de Captive Portal. Utilisez les outils de développement de votre navigateur sur un appareil de test connecté au SSID invité pour identifier les requêtes bloquées avant l'authentification. Chaque domaine bloqué est un échec potentiel du portail.

Intervalles de comptabilité RADIUS. Configurez l'intervalle intermédiaire de comptabilité CoovaChilli sur 120 secondes. Cela fournit des données de session en temps quasi réel dans le tableau de bord analytique de Purple sans générer de trafic RADIUS excessif.

Serveur RADIUS secondaire. Configurez toujours HS_RADIUS2 dans votre configuration CoovaChilli. Si le serveur RADIUS Purple principal est injoignable, CoovaChilli ne parviendra pas à authentifier les nouvelles sessions. Le serveur secondaire assure un basculement automatique sans qu'aucune modification de configuration ne soit requise au niveau du point d'accès.

Sélection des packages. Le package wpad-mini inclus dans de nombreuses versions d'OpenWrt ne prend pas en charge le WPA2-Enterprise ou l'attribution dynamique de VLAN. Installez toujours wpad-openssl pour tout déploiement nécessitant le 802.1X ou le PPSK.

Pour obtenir plus de conseils sur l'architecture de sécurité WiFi d'entreprise, consultez notre guide Sécurité WiFi d'entreprise : un guide complet pour 2026 .

Dépannage et atténuation des risques

Symptôme Cause probable Résolution
Le portail ne se charge pas après la redirection Walled garden incomplet Ajoutez les domaines CDN/API manquants à HS_UAMDOMAINS
L'authentification échoue silencieusement Incohérence du secret partagé RADIUS Vérifiez que HS_RADSECRET correspond exactement dans CoovaChilli et dans le portail Purple
Aucune donnée dans les analyses Purple Comptabilité RADIUS bloquée Vérifiez que le port UDP sortant 1813 est autorisé ; vérifiez la configuration de comptabilité HS_RADIUS2
iOS n'affiche pas la fenêtre contextuelle du portail captive.apple.com dans le walled garden Supprimez les domaines de détection d'Apple de HS_UAMDOMAINS
Les clients PPSK se retrouvent sur le mauvais VLAN vlan_tagged_interface mal configurée Vérifiez la configuration du port trunk sur OpenWrt et sur le commutateur principal
L'authentification 802.1X échoue avec une erreur wpad wpad-mini installé Supprimez wpad-mini, installez wpad-openssl
Le VLAN dynamique échoue sur ath10k Problème de pilote connu dans les anciennes versions Mettez à jour vers OpenWrt 21.02 ou version ultérieure ; utilisez le firmware ath10k non-CT

Note sur la conformité GDPR : CoovaChilli lui-même ne capture ni ne stocke de données personnelles. Tous les mécanismes de capture de consentement, de traitement des données et de conformité GDPR sont gérés par la plateforme Purple au niveau de la couche du portail. Assurez-vous que votre portail Purple est configuré avec les conditions générales de votre établissement et l'avis de traitement des données avant la mise en service.

Pour les schémas d'intégration de matériel associés, consultez nos guides sur l'intégration des points d'accès EnGenius Cloud avec Purple WiFi et l'intégration des routeurs et points d'accès DrayTek Vigor avec Purple WiFi .

ROI et impact commercial

La transition de réseaux PSK de base vers une architecture OpenWrt gérée par Purple produit un impact mesurable sur trois dimensions.

Capture de données et marketing. En imposant l'authentification par Captive Portal, les établissements capturent des données démographiques de première partie conformes — noms, adresses e-mail, profils sociaux — au point de connexion WiFi. Ces données alimentent directement les plateformes de CRM et d'e-mail marketing, stimulant les inscriptions aux programmes de fidélité et permettant des campagnes ciblées. Purple a traité 440 millions de connexions en 2024 (données internes de Purple), démontrant l'ampleur de la capture de données de première partie possible à la périphérie du réseau.

Efficacité opérationnelle. L'implémentation du PPSK réduit la surcharge liée au SSID, améliorant ainsi les performances WiFi dans les environnements denses. Pour une chaîne de vente au détail de 200 points de vente, la gestion centralisée des identités via le RADIUS cloud de Purple — plutôt que la mise à jour des configurations de routeurs locaux sur chaque site — permet d'économiser des centaines d'heures d'ingénierie par an. Une seule modification de politique RADIUS se propage instantanément aux 200 sites.

Sécurité et conformité. L'attribution dynamique de VLAN applique un accès de moindre privilège à la périphérie. Le personnel est isolé des invités. Les appareils IoT sont isolés du personnel. Les terminaux de point de vente (POS) sont isolés de tout autre trafic. Cette segmentation répond aux exigences d'isolation réseau de la norme PCI DSS 4.0 et fournit une topologie réseau claire et auditable pour les examens de conformité GDPR.

Pour des modèles de déploiement spécifiques à chaque secteur, consultez nos guides pour les environnements du Commerce de détail , de l'Hôtellerie , de la Santé et des Transports . Vous pouvez également trouver notre guide sur Qu'est-ce que l'affichage sans fil : protocoles et meilleures pratiques 2026 utile pour comprendre les technologies sans fil complémentaires dans les déploiements sur site.

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.

Continuer la lecture de cette série

Intégration de CommScope Ruckus avec Purple WiFi : Guide d'installation et de configuration

Ce guide de référence technique fournit un manuel de configuration faisant autorité pour l'intégration des architectures CommScope Ruckus avec Purple WiFi. Il détaille les déploiements étape par étape pour les Captive Portals de WiFi invité, le WiFi personnel sécurisé via 802.1X et l'isolation réseau multi-locataire à l'aide de Ruckus Dynamic PSK.

Lire le guide →

Allied Telesis Access Points Integration with Purple WiFi

Ce guide fournit un manuel de configuration complet pour intégrer les points d'accès Allied Telesis de la série TQ avec Purple WiFi. Il couvre la redirection vers un Captive Portal externe, l'authentification RADIUS 802.1X et le routage dynamique des VLAN à l'aide de clés pré-partagées privées (PPSK) pour des déploiements multi-locataires sécurisés.

Lire le guide →

Grandstream GWN Access Points Integration with Purple WiFi

Ce guide de référence technique faisant autorité détaille comment intégrer les points d'accès Grandstream GWN avec la plateforme de Guest WiFi et d'analyse de Purple. Il couvre la configuration du Captive Portal Grandstream, les paramètres RADIUS AAA, la configuration du walled garden, l'authentification sécurisée du personnel en 802.1X avec routage VLAN dynamique, et la segmentation PPSK multi-tenant - fournissant des instructions pratiques, étape par étape, pour les MSP et les équipes informatiques déployant du WiFi pour les invités et le personnel à grande échelle.

Lire le guide →