Vai al contenuto principale

OpenWrt Custom Firmware Integration with Purple WiFi

Questa guida fornisce il manuale d'integrazione completo per implementare il firmware personalizzato OpenWrt con Purple WiFi. Copre la configurazione del Captive Portal CoovaChilli, la gestione del walled garden con iptables, il WiFi sicuro per lo staff tramite 802.1X con hostapd e la segmentazione PPSK multi-tenant con assegnazione dinamica delle VLAN, offrendo ai team IT i passaggi di configurazione esatti necessari per creare una rete basata sull'identità su qualsiasi hardware compatibile con OpenWrt.

📖 9 minuti di lettura📝 2,146 parole🔧 2 esempi pratici4 domande di esercitazione📚 10 definizioni chiave

Ascolta questa guida

Visualizza trascrizione del podcast
[0:00 - 1:00] Introduzione e Contesto Benvenuti al Technical Briefing di Purple. Sono il vostro presentatore e nei prossimi dieci minuti analizzeremo l'integrazione del firmware personalizzato OpenWrt con Purple WiFi. Se siete IT manager, network architect o CTO che distribuiscono firmware personalizzati in ambienti hospitality, retail o nel settore pubblico, questo briefing fa al caso vostro. Andremo dritti al sodo, offrendovi la guida esatta per configurare CoovaChilli, proteggere le reti del personale con lo standard 802.1X e segmentare gli ambienti multi-tenant utilizzando le Private Pre-Shared Keys. Perché è importante? Perché l'implementazione di un firmware personalizzato come OpenWrt offre un'incredibile flessibilità e indipendenza dall'hardware. Tuttavia, senza un livello di controllo degli accessi strutturato e basato sull'identità, tale flessibilità diventa un rischio per la sicurezza. È necessario acquisire i dati di prima parte in modo sicuro, garantire la conformità al GDPR e segmentare il traffico in modo affidabile. Entriamo nel vivo dell'analisi tecnica. [1:00 - 6:00] Analisi Tecnica Dettagliata Il nucleo dell'integrazione di OpenWrt si basa su CoovaChilli. CoovaChilli è l'access controller open source che intercetta il traffico dei client non autenticati e lo reindirizza al Captive Portal di Purple. Quando un ospite si connette al vostro SSID aperto, CoovaChilli funge da guardiano. Assegna un indirizzo IP tramite il proprio server DHCP interno, in esecuzione sull'interfaccia tun0, e blocca tutto il traffico ad eccezione di quello esplicitamente consentito nel walled garden. Quando l'ospite tenta di navigare, CoovaChilli intercetta la richiesta HTTP e genera un reindirizzamento alla splash page di Purple. È qui che la configurazione del walled garden diventa fondamentale. Nel file chilli.conf, è necessario definire il parametro HS_UAMDOMAINS. Si tratta di un elenco di domini separati da virgole che gli ospiti possono raggiungere prima di autenticarsi. È fondamentale includere splash.purple.ai, api.purple.ai e i vari domini CDN che utilizziamo per distribuire i contenuti del portale. Se si dimentica un dominio, il portale non si caricherà o i pulsanti di login social smetteranno di funzionare. È semplicissimo. Una volta che l'ospite si autentica sul portale Purple, il server RADIUS cloud di Purple invia un messaggio di Access-Accept a CoovaChilli sulla porta UDP 1812. CoovaChilli autorizza quindi l'indirizzo MAC, applica le regole del firewall per quella sessione e inizia a inviare i dati di accounting sulla porta UDP 1813. L'accounting non è opzionale: è lo strumento con cui Purple monitora la durata della sessione e l'utilizzo dei dati per la vostra dashboard di analytics. Ora parliamo del WiFi per il personale. Non si usa CoovaChilli per il personale. Per le reti del personale, si utilizza hostapd con WPA2-Enterprise o WPA3-Enterprise. Questa è l'autenticazione standard 802.1X. L'access point funge da autenticatore, inoltrando i messaggi EAP al server RADIUS. Per i dispositivi aziendali, si consiglia di implementare EAP-TLS, che utilizza certificati digitali anziché password. Questo elimina completamente il furto di credenziali. Si configura hostapd.conf per puntare al server RADIUS, e il server RADIUS determina l'assegnazione della VLAN per quel determinato utente. Questo ci porta a una delle funzionalità più potenti nelle moderne distribuzioni OpenWrt: le Private Pre-Shared Keys, o PPSK. In un ambiente multi-tenant, come un immobile in affitto con servizi condivisi o uno spazio di coworking, non è consigliabile trasmettere cinquanta diversi SSID. Ciò rovina l'efficienza dell'airtime. Si trasmette invece un solo SSID. Quando un dispositivo si connette, hostapd invia l'indirizzo MAC al server RADIUS. Il server RADIUS risponde con una passphrase specifica e un ID VLAN specifico per quel dispositivo, utilizzando l'attributo Tunnel-Password. Ciò significa che il membro del personale del negozio A viene inserito nella VLAN 10, mentre il partecipante all'evento nella sala principale viene inserito nella VLAN 30, pur connettendosi tutti esattamente allo stesso SSID. È una soluzione elegante, scalabile e che applica il principio del privilegio minimo direttamente all'edge. [6:00 - 8:00] Consigli di implementazione ed errori comuni Parliamo dell'implementazione. Quando si distribuisce OpenWrt con Purple, il primo passo è sempre recuperare le credenziali RADIUS dal portale Purple. Sono necessari gli indirizzi IP RADIUS primario e secondario, il segreto condiviso (shared secret) e l'URL del portale. Nella configurazione di OpenWrt, si definirà l'interfaccia di rete guest (in genere eth1 o wlan0) e vi si collegherà CoovaChilli. Assicurarsi che l'HS_RADSECRET in chilli.conf corrisponda esattamente a quello presente nel portale Purple. Una mancata corrispondenza anche di un solo carattere causerà errori di autenticazione silenziosi. Il problema più grande che riscontriamo è la risoluzione DNS prima dell'autenticazione. CoovaChilli intercetta le richieste DNS. Se il firewall a monte impedisce al router OpenWrt di risolvere i DNS esterni, il reindirizzamento al Captive Portal non andrà a buon fine. Assicurarsi che il router OpenWrt dispari di un accesso DNS illimitato a resolver pubblici come Google o OpenDNS. Un altro problema comune è rappresentato dai meccanismi di rilevamento del Captive Portal integrati in iOS e Android. I dispositivi Apple contattano captive.apple.com per verificare la connettività Internet. Se si inserisce captive.apple.com nella whitelist del walled garden, il dispositivo crederà di avere accesso a Internet e non mostrerà la finestra pop-up dell'assistente di rete captive. Se si desidera che il pop-up appaia automaticamente, è necessario tenere i domini Apple fuori dal walled garden. [8:00 - 9:00] Domande e risposte rapide Facciamo una sessione di domande e risposte rapide. Domanda uno: Posso eseguire CoovaChilli e hostapd 802.1X sullo stesso access point OpenWrt? Sì. Si associa CoovaChilli all'interfaccia SSID guest e si configura hostapd con 802.1X sull'interfaccia SSID del personale. Operano in modo indipendente. Domanda due: Purple supporta l'assegnazione dinamica della VLAN con OpenWrt? Sì. I server RADIUS di Purple possono restituire attributi RADIUS standard, tra cui Tunnel-Type, Tunnel-Medium-Type e Tunnel-Private-Group-ID, indicando a OpenWrt di inserire l'utente autenticato in una specifica VLAN. Domanda tre: Cosa succede se il router OpenWrt perde la connessione al server RADIUS di Purple? CoovaChilli non riuscirà ad autenticare le nuove sessioni. Le sessioni autorizzate esistenti rimarranno attive fino alla scadenza del timeout della sessione. Configurare sempre il server RADIUS di Purple secondario per garantire un'elevata disponibilità. [9:00 - 10:00] Riepilogo e prossimi passi Per riassumere: OpenWrt offre una piattaforma solida e indipendente dall'hardware per il WiFi aziendale. Integrando CoovaChilli per l'accesso guest e hostapd per il PPSK sicuro del personale e multi-tenant, si costruisce una rete basata sull'identità. Purple elimina la complessità dell'infrastruttura RADIUS, offrendo un portale gestito in cloud che acquisisce dati di prima parte e garantisce la conformità. Il passo successivo consiste nel verificare le implementazioni attuali del firmware personalizzato. Assicuratevi che i walled garden siano completamente popolati, verificate gli intervalli di accounting RADIUS e iniziate a pianificare la migrazione dalle PSK condivise alla segmentazione PPSK dinamica. Grazie per aver seguito il Technical Briefing di Purple. Per saperne di più su come Purple può proteggere e monetizzare il vostro WiFi guest, visitate purple.ai. Alla prossima.

header_image.png

Executive summary

OpenWrt è il firmware d'elezione per i team IT che necessitano di indipendenza dall'hardware senza rinunciare a un controllo di livello enterprise. Distribuito in ambienti alberghieri, retail e del settore pubblico, offre uno stack di rete basato su Linux completamente configurabile. Tuttavia, fin da subito, OpenWrt si presenta come una tela bianca. Senza un livello di identità strutturato, le reti ospiti diventano ingestibili, le reti del personale rimangono insicure e gli ambienti multi-tenant collassano in un'unica rete piatta.

Questa guida fornisce il playbook di integrazione definitivo per connettere OpenWrt al cloud RADIUS e alla piattaforma Captive Portal di Purple. Copriamo quattro diversi scenari di implementazione: il reindirizzamento al Captive Portal per gli ospiti tramite CoovaChilli, la configurazione del walled garden con iptables, il WiFi sicuro per il personale tramite hostapd con IEEE 802.1X, e la segmentazione multi-tenant utilizzando Private Pre-Shared Keys (PPSK) con assegnazione dinamica delle VLAN. Al termine, disporrai dei parametri di configurazione esatti, delle modalità di errore più comuni e dei framework decisionali necessari per implementare una rete orientata all'identità, conforme al GDPR e pronta per la produzione su qualsiasi hardware compatibile con OpenWrt.

Purple opera in oltre 80.000 sedi attive e ha elaborato 440 milioni di accessi nel 2024 (dati interni Purple, 2024). L'architettura qui descritta è la stessa implementata su larga scala in catene alberghiere, proprietà retail e snodi di trasporto.

Technical deep-dive

L'architettura Captive Portal di CoovaChilli

Quando si distribuisce il Guest WiFi su OpenWrt, CoovaChilli rappresenta l'access controller standard del settore. Funziona come un daemon Captive Portal che intercetta il traffico dei client non autenticati, assegna gli indirizzi IP tramite il suo server DHCP interno sull'interfaccia virtuale tun0 e applica le policy di walled garden utilizzando regole iptables gestite direttamente.

Il flusso di autenticazione funziona come segue. Un dispositivo ospite si associa all'SSID aperto. CoovaChilli assegna al dispositivo un indirizzo IP dal suo pool interno (tipicamente 10.1.0.0/24). Quando il dispositivo invia la sua prima richiesta HTTP, CoovaChilli la intercetta e genera un reindirizzamento HTTP 302 verso l'URL della splash page di Purple. Durante questa fase di pre-autenticazione, il dispositivo è isolato: può raggiungere solo i domini esplicitamente elencati nel walled garden.

Una volta che l'ospite si autentica sul portale Purple, il server RADIUS cloud di Purple invia un messaggio di Access-Accept a CoovaChilli sulla porta UDP 1812. CoovaChilli aggiorna quindi le sue regole iptables per consentire l'accesso a Internet a quello specifico indirizzo MAC e inizia a trasmettere i dati di accounting (durata della sessione, byte trasferiti) al server di accounting RADIUS di Purple sulla porta UDP 1813. L'accounting non è opzionale: è il meccanismo attraverso il quale Purple popola la tua dashboard di WiFi Analytics con i dati della sessione.

architecture_overview.png

Walled garden: iptables e whitelist dei domini

Il walled garden è l'elemento di configurazione più critico dal punto di vista operativo in qualsiasi implementazione di un Captive Portal. CoovaChilli gestisce il walled garden attraverso due meccanismi: il parametro uamallowed per i singoli indirizzi IP e il parametro uamdomains per l'inserimento in whitelist basato su dominio con ispezione DNS.

Per un'integrazione con Purple, le voci minime richieste per il walled garden sono:

Dominio Scopo
*.purple.ai Risorse del portale, API ed endpoint di autenticazione
*.googleapis.com Google Fonts e Google Sign-In
*.gstatic.com Controllo di connettività Google e risorse statiche
*.facebook.com API di Login di Facebook
*.fbcdn.net CDN di Facebook per le risorse di login
captive.apple.com Rilevamento Apple CNA (vedi nota sotto)
connectivitycheck.gstatic.com Rilevamento del Captive Portal di Android

Nota sulla gestione di Apple CNA: Se includi captive.apple.com nel walled garden, i dispositivi iOS rileveranno la connettività Internet prima dell'autenticazione e sopprimeranno la finestra popup del Captive Network Assistant. La maggior parte delle installazioni nel settore hospitality esclude deliberatamente questo dominio per attivare la richiesta automatica del portale. La scelta corretta dipende dal design dell'esperienza dei tuoi ospiti.

WiFi aziendale sicuro: hostapd e IEEE 802.1X

Le reti guest richiedono un onboarding senza attriti. Le reti del personale richiedono una sicurezza assoluta. Per gli utenti interni, OpenWrt utilizza hostapd per facilitare l'autenticazione IEEE 802.1X. In questa architettura, l'access point OpenWrt funge da Authenticator, inoltrando i messaggi Extensible Authentication Protocol (EAP) tra il dispositivo client (Supplicant) e il server RADIUS di Purple.

Per i dispositivi aziendali, EAP-TLS è lo standard obbligatorio. Si basa sull'autenticazione reciproca dei certificati (sia il server che il dispositivo client presentano certificati digitali) eliminando completamente le password e i rischi associati di furto di credenziali o phishing. Per gli ambienti non ancora pronti per un'infrastruttura a chiave pubblica (PKI) completa, PEAP-MSCHAPv2 fornisce una ragionevole opzione intermedia, utilizzando un tunnel crittografato per proteggere le credenziali di nome utente e password.

Quando un membro dello staff si autentica correttamente, il server RADIUS restituisce gli attributi di autorizzazione. L'attributo chiave per la segmentazione della rete è Tunnel-Private-Group-ID, che indica a OpenWrt di assegnare dinamicamente l'utente alla VLAN corretta. Questo è il meccanismo alla base delle reti basate sull'identità (Identity-Based Networks): l'identità dell'utente, e non la sua posizione fisica, determina il suo accesso alla rete.

Segmentazione multi-tenant: configurazione PPSK di OpenWrt

Negli ambienti multi-tenant - spazi di coworking, proprietà build-to-rent (BTR), centri commerciali con più fornitori o stadi con aree sponsor separate - la trasmissione di più SSID è costosa a livello operativo e inefficiente in termini di radiofrequenza. Ogni SSID aggiuntivo comporta un sovraccarico di frame di gestione, riducendo il tempo di trasmissione disponibile per il traffico dati.

Le chiavi precondivise private (PPSK, Private Pre-Shared Keys), a volte chiamate PSK dinamiche, risolvono questo problema. Viene trasmesso un unico SSID. Quando un dispositivo tenta di connettersi, hostapd invia l'indirizzo MAC del dispositivo al server RADIUS tramite una richiesta Access-Request standard. Il server RADIUS convalida l'indirizzo MAC rispetto al proprio database e restituisce un Access-Accept contenente due attributi critici: l'attributo Tunnel-Password (la passphrase univoca per quel dispositivo) e l'attributo Tunnel-Private-Group-ID (l'assegnazione della VLAN). Il dispositivo si connette utilizzando la sua passphrase univoca e viene inserito direttamente nella VLAN assegnata.

Ciò significa che il gestore di un negozio e il partecipante a un evento possono connettersi allo stesso identico SSID ma essere indirizzati a reti completamente separate e isolate in base alla loro identità univoca.

ppsk_multitenant_diagram.png

Guida all'implementazione

Passaggio 1: Recuperare le credenziali RADIUS di Purple

Prima di modificare la configurazione di OpenWrt, recuperare i seguenti elementi dalla console di amministrazione del portale Purple:

  • Indirizzo IP del server RADIUS primario
  • Indirizzo IP del server RADIUS secondario (per failover)
  • Segreto condiviso RADIUS (Shared Secret)
  • URL della Splash Page del Captive Portal
  • URL di reindirizzamento post-autenticazione

Passaggio 2: Installare e configurare CoovaChilli per il WiFi ospiti

Installare il pacchetto coova-chilli tramite opkg:

opkg update && opkg install coova-chilli

Il file di configurazione principale è /etc/chilli/defaults. Definire i parametri di rete principali:

# Network interfaces
HS_WANIF=eth0           # Interfaccia internet a monte
HS_LANIF=wlan0          # L'interfaccia WiFi ospiti (o una sotto-interfaccia VLAN)

# Guest subnet
HS_NETWORK=10.10.20.0
HS_NETMASK=255.255.255.0
HS_UAMLISTEN=10.10.20.1 # IP di CoovaChilli sulla rete ospiti
HS_UAMPORT=3990

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

# Splash page di Purple
HS_UAMSERVER=

# Walled garden - whitelist basata su dominio
HS_UAMDOMAINS=".purple.ai,.googleapis.com,.gstatic.com,.facebook.com,.fbcdn.net"

Abilita e avvia il servizio:

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

Passo 3: Configurare l'interfaccia wireless OpenWrt per l'SSID guest

In /etc/config/wireless, definisci l'SSID guest come una rete aperta associata all'interfaccia che verrà gestita da 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'

L'isolamento dei client (isolate '1') impedisce ai dispositivi guest di comunicare tra loro: un controllo di sicurezza obbligatorio per qualsiasi rete condivisa.

Passo 4: Configurare hostapd per il Wi-Fi del personale 802.1X

Per l'SSID del personale, configura WPA2-Enterprise in /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'

L'impostazione dynamic_vlan '2' indica a hostapd di applicare l'assegnazione VLAN restituita dal server RADIUS e di rifiutare l'autenticazione se non viene restituita alcuna VLAN.

Requisito del pacchetto: Il pacchetto standard wpad-mini non supporta WPA2-Enterprise. È necessario installare wpad o wpad-openssl:

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

Passo 5: Configurare PPSK per la segmentazione multi-tenant

PPSK richiede che hostapd esegua l'autenticazione dell'indirizzo MAC tramite il server RADIUS, il quale restituisce la passphrase specifica per ciascun dispositivo. In /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'

Il parametro wpa_psk_radius '2' indica a hostapd di richiedere l'attributo Tunnel-Password dalla risposta RADIUS. Se il server RADIUS non restituisce una passphrase, l'autenticazione viene rifiutata.

Sul lato Purple RADIUS, la sezione authorize della configurazione di FreeRADIUS (o equivalente) mappa gli indirizzi MAC alle passphrase e agli ID VLAN:

# Esempio di voce di autorizzazione RADIUS per 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"

Passo 6: Configurare l'assegnazione dinamica delle VLAN

Affinché l'assegnazione dinamica della VLAN funzioni, lo switch OpenWrt deve essere configurato per trasportare le VLAN rilevanti come traffico taggato sulla porta trunk che si collega allo switch core. In /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'

Assicurati che la porta dello switch core sia configurata come trunk, consentendo il passaggio delle VLAN 10, 20 e 30 come taggate.

Best practice

Segregazione assoluta della rete. Non effettuare mai il bridge delle interfacce guest con le reti interne. Il traffico guest deve essere isolato su una VLAN dedicata e instradato direttamente verso il firewall internet. Questo è un requisito non negoziabile per la conformità GDPR e PCI DSS 4.0, che impone che le reti WiFi guest siano completamente isolate da qualsiasi segmento di rete che gestisce dati dei titolari di carta.

Precisione del walled garden. Un walled garden incompleto è la causa principale dei malfunzionamenti del Captive Portal. Utilizza gli strumenti per sviluppatori del browser su un dispositivo di test connesso al SSID guest per identificare quali richieste vengono bloccate prima dell'autenticazione. Ogni dominio bloccato rappresenta un potenziale errore del portale.

Intervalli di accounting RADIUS. Configura l'intervallo provvisorio di accounting di CoovaChilli su 120 secondi. Ciò fornisce dati di sessione quasi in tempo reale nella dashboard di analisi di Purple senza generare traffico RADIUS eccessivo.

Server RADIUS secondario. Configura sempre HS_RADIUS2 nella configurazione di CoovaChilli. Se il server RADIUS principale di Purple non è raggiungibile, CoovaChilli non sarà in grado di autenticare le nuove sessioni. Il server secondario garantisce il failover automatico senza richiedere modifiche di configurazione sull'access point.

Selezione dei pacchetti. Il pacchetto wpad-mini incluso in molte build OpenWrt non supporta WPA2-Enterprise o l'assegnazione dinamica della VLAN. Installa sempre wpad-openssl per qualsiasi implementazione che richieda 802.1X o PPSK.

Per ulteriori indicazioni sull'architettura di sicurezza WiFi aziendale, consulta la nostra guida Enterprise WiFi Security: A Complete Guide for 2026 .

Risoluzione dei problemi e mitigazione dei rischi

Sintomo Causa probabile Risoluzione
Il portale non si carica dopo il reindirizzamento Walled garden incompleto Aggiungi i domini CDN/API mancanti a HS_UAMDOMAINS
L'autenticazione non va a buon fine in modo silenzioso Mancata corrispondenza del segreto condiviso RADIUS Verifica che HS_RADSECRET corrisponda esattamente sia in CoovaChilli che nel portale Purple
Nessun dato nelle analisi di Purple Accounting RADIUS bloccato Verifica che la porta UDP 1813 in uscita sia abilitata; controlla la configurazione di accounting di HS_RADIUS2
iOS non mostra il pop-up del portale captive.apple.com nel walled garden Rimuovi i domini di rilevamento Apple da HS_UAMDOMAINS
I client PPSK finiscono sulla VLAN errata vlan_tagged_interface configurata in modo errato Verifica la configurazione della porta trunk sia su OpenWrt che sullo switch core
L'autenticazione 802.1X non riesce con errore wpad wpad-mini installato Rimuovi wpad-mini, installa 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 compliance note: CoovaChilli non acquisisce né memorizza dati personali. Tutti i meccanismi di acquisizione del consenso, elaborazione dei dati e conformità al GDPR sono gestiti dalla piattaforma Purple a livello di portale. Assicurati che il tuo Captive Portal Purple sia configurato con i termini e le condizioni della tua struttura e con l'informativa sul trattamento dei dati prima della messa in servizio.

Per i modelli di integrazione hardware correlati, consulta le nostre guide su EnGenius Cloud Access Points Integration with Purple WiFi e DrayTek Vigor Routers and Access Points Integration with Purple WiFi .

ROI & business impact

Il passaggio da reti PSK di base a un'architettura OpenWrt gestita da Purple offre un impatto misurabile su tre dimensioni.

Data capture and marketing. Imponendo l'autenticazione tramite Captive Portal, le strutture acquisiscono dati demografici di prima parte conformi (nomi, indirizzi e-mail, profili social) al momento della connessione al WiFi. Questi dati confluiscono direttamente nelle piattaforme di CRM e di email marketing, incentivando le iscrizioni ai programmi fedeltà e consentendo campagne mirate. Purple ha gestito 440 milioni di accessi nel 2024 (dati interni Purple), a dimostrazione della portata dell'acquisizione di dati di prima parte possibile all'edge della rete.

Efficienza operativa. L'implementazione di PPSK riduce il sovraccarico degli SSID, migliorando le prestazioni del WiFi in ambienti densi. Per una catena di vendita al dettaglio con 200 punti vendita, la gestione centralizzata dell'identità tramite il cloud RADIUS di Purple - anziché l'aggiornamento delle configurazioni dei router locali in ogni sito - consente di risparmiare centinaia di ore di ingegneria all'anno. Una singola modifica ai criteri RADIUS si propaga istantaneamente a tutte le 200 sedi.

Sicurezza e conformità. L'assegnazione dinamica della VLAN applica il principio del privilegio minimo all'edge. Il personale è isolato dagli ospiti. I dispositivi IoT sono isolati dal personale. I terminali POS sono isolati da tutto il restante traffico. Questa segmentazione soddisfa i requisiti di isolamento della rete PCI DSS 4.0 e fornisce una topologia di rete chiara e verificabile per i controlli di conformità al GDPR.

Per i modelli di implementazione specifici per settore, consulta le nostre guide per gli ambienti Retail , Hospitality , Healthcare e Transport . Potrebbe essere utile anche la nostra guida su What Is Wireless Display: Protocols & Best Practices 2026 per comprendere le tecnologie wireless complementari nelle implementazioni all'interno delle strutture.

Definizioni chiave

CoovaChilli

Un controller di accesso software open source che fornisce un Captive Portal e un ambiente walled garden per reti wireless, utilizzando RADIUS per l'autenticazione e il tracciamento degli accessi.

I team IT implementano CoovaChilli su OpenWrt per intercettare il traffico HTTP degli ospiti e reindirizzarlo alla splash page di Purple. Gestisce le regole iptables che impongono il walled garden e concedono l'accesso a internet post-autenticazione.

Walled garden

Una lista di indirizzi IP o domini rigorosamente consentiti a cui un utente non autenticato può accedere prima di completare l'autenticazione sul Captive Portal.

Fondamentale per consentire ai dispositivi degli ospiti di caricare la grafica del portale Purple e raggiungere le API di login dei social media, bloccando al contempo l'accesso generale a internet. Un walled garden incompleto è la causa più comune di errore del Captive Portal.

PPSK (Private Pre-Shared Key)

Un meccanismo di sicurezza in cui a singoli utenti o dispositivi vengono assegnate passphrase univoche per lo stesso SSID WiFi, con RADIUS che restituisce la passphrase corretta e l'assegnazione della VLAN in base all'indirizzo MAC del dispositivo.

Utilizzato per segmentare ambienti multi-tenant senza trasmettere più SSID. Supportato in OpenWrt tramite il parametro wpa_psk_radius in hostapd.

Dynamic VLAN assignment

Il processo in cui un server RADIUS istruisce l'access point su quale specifica LAN virtuale posizionare un determinato utente autenticato, utilizzando gli attributi RADIUS Tunnel-Type, Tunnel-Medium-Type e Tunnel-Private-Group-ID.

Il meccanismo principale per le reti basate sull'identità. È l'identità dell'utente, non la sua porta fisica, a determinare il segmento di rete e i diritti di accesso.

IEEE 802.1X

Lo standard IEEE per il controllo dell'accesso alla rete basato su porta, che definisce i ruoli di Authenticator (access point), Supplicant (dispositivo client) e Authentication Server (RADIUS) nell'autenticazione WiFi aziendale.

Il protocollo alla base del WiFi sicuro per il personale su OpenWrt. Richiede il pacchetto completo wpad o wpad-openssl - wpad-mini non lo supporta.

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

Un metodo di autenticazione 802.1X che utilizza un'autenticazione reciproca basata su certificati, richiedendo sia al server RADIUS che al dispositivo client di presentare certificati digitali validi.

Il gold standard per l'autenticazione dei dispositivi aziendali. Elimina completamente le password, neutralizzando il furto di credenziali e gli attacchi di phishing. Richiede un'infrastruttura PKI per emettere i certificati client.

Captive Network Assistant (CNA)

Il pseudo-browser che i dispositivi iOS e Android mostrano automaticamente quando rilevano di trovarsi dietro un Captive Portal, basandosi sulla verifica di specifici URL di rilevamento.

I progettisti di rete devono gestire attentamente i propri walled garden per controllare se il CNA si attiva automaticamente. La maggior parte delle installazioni nel settore hospitality esclude i domini di rilevamento di Apple e Google per forzare l'apertura della finestra pop-up del CNA.

RADIUS accounting

Il terzo pilastro del framework AAA (Authentication, Authorization, Accounting), che traccia il consumo di risorse di rete registrando l'avvio della sessione, gli aggiornamenti intermedi e gli eventi di arresto della sessione sulla porta UDP 1813.

Richiesto da Purple per popolare la dashboard di analisi con i dati sulla durata della sessione e sulla larghezza di banda. Configurato in CoovaChilli tramite HS_RADIUS2 e il parametro radiusacctport.

hostapd

Il daemon per access point open source conforme allo standard IEEE 802.11 utilizzato da OpenWrt per gestire le interfacce wireless, che supporta le modalità di autenticazione WPA2/WPA3-Enterprise, 802.1X e PPSK.

Il daemon principale per il WiFi del personale e PPSK su OpenWrt. Il pacchetto wpad-openssl fornisce la build hostapd completa di tutte le funzionalità necessarie per l'autenticazione aziendale.

Tunnel-Password attribute

Un attributo RADIUS (attributo 69) utilizzato nelle installazioni PPSK per restituire una passphrase per singolo dispositivo dal server RADIUS all'access point durante l'autenticazione MAC.

Il meccanismo attraverso il quale il server RADIUS di Purple fornisce PSK univoche al daemon hostapd di OpenWrt per la segmentazione multi-tenant basata su PPSK.

Esempi pratici

Un hotel da 200 camere ha la necessità di fornire un accesso WiFi a livelli: internet di base gratuito per gli ospiti, accesso ad alta velocità per i membri del programma fedeltà e accesso sicuro per i dispositivi POS dello staff. Il team IT desidera ridurre al minimo il sovraccarico di SSID e applicare l'isolamento di rete conforme a PCI DSS tra i terminali POS e il traffico degli ospiti.

Distribuire gli access point OpenWrt trasmettendo due SSID: "Hotel_Guest" (aperto, gestito da CoovaChilli) e "Hotel_Secure" (gestito tramite PPSK con hostapd). Su "Hotel_Guest", CoovaChilli reindirizza tutto il traffico non autenticato alla splash page di Purple. Gli ospiti si autenticano tramite il portale e vengono indirizzati sulla VLAN 20 (solo internet). Su "Hotel_Secure", configurare hostapd con wpa_psk_radius=2. Quando il dispositivo di un membro del programma fedeltà si connette, il server RADIUS restituisce la sua PSK univoca e la VLAN 21 (livello di larghezza di banda superiore). Quando si connette un terminale POS, il server RADIUS restituisce la PSK del dispositivo POS e la VLAN 10 (accesso alla rete interna, internet bloccato). La segmentazione VLAN applica l'isolamento PCI DSS tra i dati dei titolari di carta (VLAN 10) e il traffico degli ospiti (VLAN 20 e 21) a livello di access point.

Commento dell'esaminatore: Questa architettura utilizza due SSID anziché uno per separare il flusso del Captive Portal (ospiti) dal flusso PPSK (staff e programma fedeltà). Questo è l'approccio corretto poiché CoovaChilli e hostapd PPSK servono modelli di autenticazione fondamentalmente diversi. Combinarli su un unico SSID richiede una configurazione proxy RADIUS che aggiunge complessità non necessaria. Il modello a due SSID è più semplice, più affidabile e più facile da controllare per la conformità PCI DSS.

Una catena di negozi sta distribuendo router OpenWrt in 50 sedi. Durante l'UAT nel primo sito, la splash page di Purple si carica correttamente dopo il reindirizzamento, ma facendo clic sul pulsante di login di Facebook si verifica un timeout di connessione. Il pulsante di accesso con Google funziona correttamente.

Il problema è dovuto a un walled garden incompleto di CoovaChilli. Il flusso di autenticazione di Facebook richiede l'accesso a diversi domini: facebook.com, connect.facebook.net e fbcdn.net (la CDN di Facebook per le risorse di login). L'accesso con Google funziona perché googleapis.com e gstatic.com sono già presenti nel walled garden. Aggiornare il parametro HS_UAMDOMAINS in /etc/chilli/defaults per aggiungere ".facebook.com,.connect.facebook.net,.fbcdn.net". Riavviare il daemon chilli con "/etc/init.d/chilli restart" e ripetere il test. Per diagnosticare sistematicamente i futuri problemi del walled garden, connettere un dispositivo di prova all'SSID guest e utilizzare gli strumenti per sviluppatori del browser (scheda Rete) per identificare quali richieste restituiscono errori di connessione prima dell'autenticazione.

Commento dell'esaminatore: I moderni flussi di login social caricano risorse da più domini CDN e API. L'SDK di Facebook da solo fa riferimento ad almeno tre domini distinti. Un approccio sistematico al debug del walled garden, utilizzando gli strumenti per sviluppatori del browser per identificare le richieste pre-autenticazione bloccate, è molto più affidabile rispetto a indovinare gli elenchi di domini. Prima della messa in funzione in tutte e 50 le sedi, l'ingegnere dovrebbe testare ogni metodo di autenticazione configurato (Facebook, Google, e-mail, SMS) e verificare che ciascuno vada a buon fine.

Domande di esercitazione

Q1. Hai distribuito OpenWrt con CoovaChilli presso una struttura Premier Inn. Gli ospiti segnalano che i loro iPhone non mostrano automaticamente il prompt di accesso quando si connettono al WiFi ospiti. Devono aprire manualmente Safari e navigare su un sito HTTP per attivare il portale. Quale modifica di configurazione causa questo problema e come lo risolvi?

Suggerimento: Considera il modo in cui iOS determina se una rete ha un accesso a Internet completo al momento dell'associazione.

Visualizza risposta modello

L'ingegnere ha incluso il dominio di rilevamento del Captive Portal di Apple (captive.apple.com) nel walled garden di CoovaChilli tramite HS_UAMDOMAINS. Quando un iPhone si connette, iOS invia una sonda a captive.apple.com. Poiché questo dominio è nel walled garden, la sonda ha successo prima dell'autenticazione e iOS conclude di avere un accesso a Internet completo, sopprimendo la finestra a comparsa del Captive Network Assistant. Per risolvere questo problema, rimuovi captive.apple.com da HS_UAMDOMAINS e riavvia il demone chilli. I dispositivi iOS riceveranno quindi una risposta di sonda fallita, identificheranno correttamente il Captive Portal e mostreranno automaticamente il prompt di accesso.

Q2. Un gestore di spazi di coworking desidera distribuire termostati intelligenti IoT in tutta la sua proprietà. Trasmette già un SSID 'Cowork_Guest' (CoovaChilli) e un SSID 'Cowork_Staff' (802.1X). I termostati non supportano WPA2-Enterprise. Come puoi configurarli in modo sicuro senza aggiungere un terzo SSID?

Suggerimento: I dispositivi IoT in genere supportano solo WPA2-PSK. Considera quale SSID esistente può essere esteso per supportare passphrase per singolo dispositivo.

Visualizza risposta modello

Configura PPSK sull'SSID 'Cowork_Staff' abilitando wpa_psk_radius=2 nella configurazione di hostapd. Registra l'indirizzo MAC di ciascun termostato nel server RADIUS di Purple con una passphrase univoca e la VLAN 40 (VLAN IoT) come Tunnel-Private-Group-ID. Quando un termostato si connette, hostapd interroga il server RADIUS con il MAC del dispositivo, riceve la PSK univoca e l'assegnazione della VLAN, e posiziona il termostato sulla VLAN 40, completamente isolato dal traffico del personale sulla VLAN 10. Questo approccio evita un terzo SSID, mantiene l'efficienza RF e applica l'accesso con privilegi minimi per i dispositivi IoT senza richiedere un'infrastruttura di certificati 802.1X.

Q3. Dopo aver distribuito OpenWrt con CoovaChilli in un punto vendita, la dashboard analitica di Purple mostra zero sessioni attive e nessun dato sulla larghezza di banda, nonostante gli ospiti si connettano e navighino in Internet con successo. Qual è la causa più probabile e quali sono i due passaggi per diagnosticarla?

Suggerimento: L'autenticazione (porta 1812) e l'accounting (porta 1813) sono funzioni RADIUS separate.

Visualizza risposta modello

La configurazione dell'accounting RADIUS è mancante o bloccata. Passaggio 1: Verifica la configurazione di CoovaChilli. Controlla che HS_RADIUS e HS_RADIUS2 siano impostati correttamente in /etc/chilli/defaults e conferma che radiusacctport sia impostata su 1813. Se HS_RADIUS2 non è configurato, non è definito alcun server di accounting. Passaggio 2: Verifica le regole del firewall. Conferma che il traffico in uscita sulla porta UDP 1813 dal router OpenWrt verso gli indirizzi IP del server RADIUS di Purple sia consentito dal firewall perimetrale della sede. Usa 'tcpdump -i eth0 udp port 1813' sul dispositivo OpenWrt per confermare se i pacchetti di accounting vengono inviati. Se i pacchetti appaiono in tcpdump ma la dashboard rimane vuota, il problema è un firewall che blocca il traffico tra il router e i server RADIUS cloud di Purple.

Q4. Una distribuzione OpenWrt presso uno stadio utilizza l'assegnazione dinamica della VLAN tramite RADIUS per segmentare il WiFi dei tifosi (VLAN 30), dei media (VLAN 40) e delle operazioni (VLAN 50). Dopo aver aggiornato gli access point a un nuovo hardware con OpenWrt 19.07 e driver ath10k, l'assegnazione della VLAN smette di funzionare. Gli utenti autenticati finiscono tutti sulla VLAN predefinita, indipendentemente dagli attributi RADIUS. Qual è la causa nota?

Suggerimento: Considera il supporto a livello di driver per la modalità AP/VLAN in ath10k.

Visualizza risposta modello

Si tratta di una regressione nota nel firmware ath10k-ct (Candela Technologies) incluso in OpenWrt 19.07. Il driver ath10k-ct in questa versione presenta un bug che interrompe la modalità AP/VLAN, impedendo il funzionamento dell'assegnazione dinamica della VLAN. La soluzione consiste nell'aggiornare a OpenWrt 21.02 o successivo, dove il driver ath10k-ct è stato aggiornato per ripristinare la funzionalità AP/VLAN. In alternativa, sostituisci il firmware ath10k-ct con il firmware ath10k standard (variante non-CT) sulla build 19.07. Questo problema non interessa l'hardware basato su ath9k, che gestisce correttamente la modalità AP/VLAN su tutte le versioni di OpenWrt.

Continua a leggere questa serie

Integrazione di CommScope Ruckus con Purple WiFi: Guida alla Configurazione e all'Installazione

Questa guida di riferimento tecnico fornisce un manuale di configurazione autorevole per l'integrazione delle architetture CommScope Ruckus con Purple WiFi. Dettaglia passo dopo passo le implementazioni per i Captive Portal per Guest WiFi, il WiFi aziendale sicuro per il personale tramite 802.1X e l'isolamento di rete Multi-Tenant utilizzando Ruckus Dynamic PSK.

Leggi la guida →

Integrazione degli Access Point Allied Telesis con Purple WiFi

Questa guida fornisce un playbook di configurazione completo per integrare gli access point Allied Telesis serie TQ con Purple WiFi. Copre il reindirizzamento al Captive Portal esterno, l'autenticazione RADIUS 802.1X e lo steering dinamico delle VLAN utilizzando le chiavi PPSK (Private Pre-Shared Keys) per implementazioni multi-tenant sicure.

Leggi la guida →

Integrazione degli Access Point Grandstream GWN con Purple WiFi

Questa guida tecnica di riferimento dettagliata spiega come integrare gli access point Grandstream GWN con la piattaforma di Guest WiFi e analytics di Purple. Copre la configurazione del Captive Portal Grandstream, le impostazioni RADIUS AAA, la configurazione del walled garden, l'autenticazione sicura del personale tramite 802.1X con instradamento VLAN dinamico e la segmentazione PPSK multi-tenant, offrendo una guida pratica e passo dopo passo per MSP e team IT che implementano WiFi per ospiti e personale su larga scala.

Leggi la guida →