Saltar para o conteúdo principal

Integração de Firmware Personalizado OpenWrt com Purple WiFi

Este guia fornece o manual de integração completo para implementar firmware personalizado OpenWrt com Purple WiFi. Abrange a configuração do Captive Portal CoovaChilli, a gestão de walled garden com iptables, WiFi seguro para funcionários em 802.1X com hostapd, e segmentação PPSK multi-tenant com atribuição dinâmica de VLAN - oferecendo às equipas de TI os passos exatos de configuração necessários para criar uma Rede Baseada em Identidade em qualquer hardware compatível com OpenWrt.

📖 9 min de leitura📝 2,146 palavras🔧 2 exemplos práticos4 perguntas de prática📚 10 definições principais

Ouça este guia

Ver transcrição do podcast
[0:00 - 1:00] Introdução e Contexto Bem-vindo ao Purple Technical Briefing. Sou o seu anfitrião e, nos próximos dez minutos, iremos analisar detalhadamente a integração do firmware personalizado OpenWrt com o Purple WiFi. Se é um gestor de TI, um arquiteto de rede ou um CTO a implementar firmware personalizado em ambientes de hotelaria, retalho ou setor público, este briefing é para si. Iremos direto ao assunto, sem rodeios académicos, e daremos o manual exato para configurar o CoovaChilli, proteger as redes do pessoal com 802.1X e segmentar ambientes multi-tenant utilizando Private Pre-Shared Keys. Porque é que isto importa? Porque a implementação de firmware personalizado como o OpenWrt dá-lhe uma flexibilidade incrível e independência de hardware. Mas sem uma camada de controlo de acessos estruturada e baseada em identidade, essa flexibilidade torna-se um risco de segurança. Precisa de capturar dados primários (first-party data) de forma segura, garantir a conformidade com o GDPR e segmentar o seu tráfego de forma fiável. Vamos entrar na análise técnica detalhada. [1:00 - 6:00] Análise Técnica Detalhada O núcleo da integração com OpenWrt assenta no CoovaChilli. O CoovaChilli é o controlador de acessos open-source que intercepta o tráfego de clientes não autenticados e o redireciona para o Captive Portal da Purple. Quando um convidado se liga ao seu SSID aberto, o CoovaChilli funciona como o guardião. Atribui um endereço IP através do seu próprio servidor DHCP interno, a correr na interface tun0, e bloqueia todo o tráfego exceto aquele que autorizar explicitamente no walled garden. Quando o convidado tenta navegar, o CoovaChilli intercepta o pedido HTTP e emite um redirecionamento para a splash page da Purple. É aqui que a configuração do walled garden é crítica. No seu ficheiro chilli.conf, deve definir o parâmetro HS_UAMDOMAINS. Esta é uma lista de domínios separados por vírgulas aos quais os convidados podem aceder antes de se autenticarem. Deve incluir splash.purple.ai, api.purple.ai e os vários domínios de CDN que utilizamos para disponibilizar os recursos do portal. Se faltar um domínio, o portal não irá carregar ou os botões de login social deixarão de funcionar. É tão simples quanto isto. Assim que o convidado se autentica no portal Purple, o servidor cloud RADIUS da Purple envia uma mensagem Access-Accept de volta para o CoovaChilli na porta UDP 1812. O CoovaChilli autoriza então o endereço MAC, abre as regras de firewall para essa sessão e começa a enviar dados de accounting na porta UDP 1813. O accounting não é opcional. É a forma como a Purple monitoriza a duração da sessão e a utilização de dados para o seu painel de analytics. Agora, falemos sobre o WiFi para funcionários. Não deve utilizar o CoovaChilli para funcionários. Para redes de funcionários, utiliza-se o hostapd com WPA2-Enterprise ou WPA3-Enterprise. Esta é a autenticação padrão 802.1X. O ponto de acesso atua como o autenticador, reencaminhando as mensagens EAP para o seu servidor RADIUS. Para dispositivos corporativos, deve implementar o EAP-TLS, que utiliza certificados digitais em vez de palavras-passe. Isto elimina completamente o roubo de credenciais. Configura o hostapd.conf para apontar para o seu servidor RADIUS, e o servidor RADIUS dita a atribuição de VLAN para esse utilizador específico. Isto leva-nos a uma das funcionalidades mais poderosas nas implementações modernas de OpenWrt: Chaves Pré-Partilhadas Privadas, ou PPSK. Num ambiente multi-tenant - por exemplo, um imóvel build-to-rent ou um espaço de coworking - não quer ter cinquenta SSIDs diferentes a transmitir. Isso arruína a eficiência do seu tempo de antena. Em vez disso, transmite apenas um SSID. Quando um dispositivo se liga, o hostapd envia o endereço MAC para o servidor RADIUS. O servidor RADIUS responde com uma frase secreta específica e um ID de VLAN específico para esse dispositivo, utilizando o atributo Tunnel-Password. Isto significa que o funcionário de retalho da loja A é colocado na VLAN 10, enquanto o participante do evento no salão principal é colocado na VLAN 30, ligando-se todos exatamente ao mesmo SSID. É elegante, escala e impõe o acesso de menor privilégio na periferia. [6:00 - 8:00] Recomendações de Implementação e Erros Comuns Vamos discutir a implementação. Ao implementar o OpenWrt com a Purple, o seu primeiro passo é sempre obter as suas credenciais RADIUS a partir do portal Purple. Precisa dos endereços IP RADIUS primário e secundário, do segredo partilhado e do URL do portal. Na sua configuração do OpenWrt, irá definir a interface da sua rede de convidados - tipicamente eth1 ou wlan0 - e associar o CoovaChilli a ela. Certifique-se de que o HS_RADSECRET no seu chilli.conf corresponde exatamente ao que está no portal Purple. Uma divergência de um único carácter causará falhas de autenticação silenciosas. O maior erro que vemos é a resolução de DNS antes da autenticação. O CoovaChilli intercetará os pedidos de DNS. Se a sua firewall a montante impedir que o router OpenWrt resolva DNS externos, o redirecionamento do Captive Portal irá falhar. Certifique-se de que o seu router OpenWrt tem acesso DNS sem restrições a resolvedores públicos como o Google ou OpenDNS. Outro problema comum são os mecanismos de deteção de Captive Portal integrados no iOS e Android. Os dispositivos Apple tentam contactar captive.apple.com para verificar a ligação à Internet. Se colocar captive.apple.com na lista de permissões (walled garden), o dispositivo pensará que tem acesso à Internet e não abrirá o assistente de rede cativa. Se pretender o pop-up automático, mantenha os domínios da Apple fora do walled garden. [8:00 - 9:00] Perguntas e Respostas Rápidas Vamos fazer uma sessão rápida de Perguntas e Respostas. Pergunta um: Posso executar o CoovaChilli e o hostapd 802.1X no mesmo ponto de acesso OpenWrt? Sim. Associa o CoovaChilli à sua interface de SSID de convidados e configura o hostapd com 802.1X na sua interface de SSID de funcionários. Funcionam de forma independente. Pergunta dois: O Purple suporta atribuição dinâmica de VLAN com OpenWrt? Sim. Os servidores RADIUS do Purple podem retornar atributos RADIUS padrão, incluindo Tunnel-Type, Tunnel-Medium-Type e Tunnel-Private-Group-ID, instruindo o OpenWrt a colocar o utilizador autenticado numa VLAN específica. Pergunta três: O que acontece se o router OpenWrt perder a ligação ao servidor RADIUS do Purple? O CoovaChilli falhará na autenticação de novas sessões. As sessões autorizadas existentes permanecerão ativas até que o limite de tempo da sessão expire. Configure sempre o servidor RADIUS secundário do Purple para garantir alta disponibilidade. [9:00 - 10:00] Resumo e Próximos Passos Para resumir: O OpenWrt fornece uma plataforma robusta e agnóstica em termos de hardware para WiFi empresarial. Ao integrar o CoovaChilli para acesso de convidados e o hostapd para funcionários seguros e PPSK multi-tenant, constrói uma Rede Baseada em Identidade. O Purple abstrai a complexidade da infraestrutura RADIUS, fornecendo um portal gerido na cloud que recolhe dados primários e garante a conformidade. O seu próximo passo é auditar as suas implementações atuais de firmware personalizado. Certifique-se de que os seus walled gardens estão totalmente preenchidos, verifique os seus intervalos de contabilidade RADIUS e comece a planear a sua migração de PSKs partilhados para a segmentação PPSK dinâmica. Obrigado por ouvir o Briefing Técnico do Purple. Para saber mais sobre como o Purple pode proteger e rentabilizar o seu WiFi de convidados, visite purple.ai. Até à próxima.

header_image.png

Resumo executivo

O OpenWrt é o firmware de eleição para equipas de TI que necessitam de independência de hardware sem sacrificar o controlo de nível empresarial. Implementado em ambientes de hotelaria, retalho e setor público, oferece uma pilha de rede baseada em Linux totalmente configurável. No entanto, por predefinição, o OpenWrt é uma tela em branco. Sem uma camada de identidade estruturada, as redes de convidados tornam-se ingeríveis, as redes de funcionários permanecem inseguras e os ambientes multi-tenant colapsam numa única rede plana.

Este guia fornece o manual de integração definitivo para ligar o OpenWrt ao RADIUS na nuvem e à plataforma de Captive Portal da Purple. Abrangemos quatro cenários de implementação distintos: redirecionamento de Captive Portal de convidados utilizando CoovaChilli, configuração de walled garden com iptables, WiFi seguro para funcionários utilizando hostapd com IEEE 802.1X, e segmentação multi-tenant utilizando Private Pre-Shared Keys (PPSK) com atribuição dinâmica de VLAN. No final, terá os parâmetros de configuração exatos, os modos de falha comuns e as matrizes de decisão necessárias para implementar uma rede orientada para a identidade, pronta para produção e em conformidade com o GDPR em qualquer hardware compatível com OpenWrt.

A Purple opera em mais de 80.000 locais ativos e processou 440 milhões de inícios de sessão em 2024 (dados internos da Purple, 2024). A arquitetura aqui descrita é a mesma que é implementada em grande escala em cadeias de hotelaria, redes de retalho e interfaces de transportes.

Análise técnica detalhada

A arquitetura de Captive Portal CoovaChilli

Ao implementar o Guest WiFi no OpenWrt, o CoovaChilli é o controlador de acessos padrão do setor. Funciona como um daemon de Captive Portal que interpeta o tráfego de clientes não autenticados, fornece endereços IP através do seu servidor DHCP interno na interface virtual tun0 e aplica políticas de walled garden utilizando regras de iptables que gere diretamente.

O fluxo de autenticação funciona da seguinte forma. Um dispositivo convidado associa-se ao SSID aberto. O CoovaChilli atribui ao dispositivo um endereço IP do seu pool interno (normalmente 10.1.0.0/24). Quando o dispositivo envia o seu primeiro pedido HTTP, o CoovaChilli interseta-o e emite um redirecionamento HTTP 302 para o URL da splash page da Purple. Durante esta fase de pré-autenticação, o dispositivo é isolado - apenas consegue aceder aos domínios explicitamente listados no walled garden.

Uma vez que o convidado se autentica no portal Purple, o servidor RADIUS na cloud da Purple envia uma mensagem Access-Accept para o CoovaChilli na porta UDP 1812. O CoovaChilli atualiza então as suas regras de iptables para permitir o acesso à internet para esse endereço MAC específico e começa a transmitir dados de contabilidade (duração da sessão, bytes transferidos) para o servidor de contabilidade RADIUS da Purple na porta UDP 1813. A contabilidade não é opcional - é o mecanismo através do qual a Purple preenche o seu painel de WiFi Analytics com dados de sessão.

architecture_overview.png

Walled garden: iptables e listas de permissões de domínios

O walled garden é o elemento de configuração mais crítico operacionalmente em qualquer implementação de Captive Portal. O CoovaChilli gere o walled garden através de dois mecanismos: o parâmetro uamallowed para endereços IP individuais e o parâmetro uamdomains para listas de permissões baseadas em domínio com inspeção de DNS.

Para uma integração Purple, as entradas mínimas obrigatórias no walled garden são:

Domínio Finalidade
*.purple.ai Ativos do portal, API e endpoints de autenticação
*.googleapis.com Google Fonts e Google Sign-In
*.gstatic.com Verificação de conectividade da Google e ativos estáticos
*.facebook.com API de Login do Facebook
*.fbcdn.net CDN do Facebook para ativos de login
captive.apple.com Deteção de Apple CNA (ver nota abaixo)
connectivitycheck.gstatic.com Deteção de Captive Portal do Android

Nota sobre a gestão de Apple CNA: Se incluir captive.apple.com no walled garden, os dispositivos iOS detetarão a conectividade à internet antes da autenticação e suprimirão a janela pop-up do Captive Network Assistant. A maioria das implementações no setor da hotelaria exclui deliberadamente este domínio para acionar o aviso automático do portal. A escolha correta depende do design da experiência do convidado.

WiFi seguro para funcionários: hostapd e IEEE 802.1X

As redes de convidados exigem uma adesão sem fricção. As redes de funcionários exigem segurança absoluta. Para utilizadores internos, o OpenWrt utiliza o hostapd para facilitar a autenticação IEEE 802.1X. Nesta arquitetura, o ponto de acesso OpenWrt atua como o Autenticador, reencaminhando mensagens do Extensible Authentication Protocol (EAP) entre o dispositivo cliente (Suplicante) e o servidor RADIUS da Purple.

Para dispositivos corporativos, o EAP-TLS é a norma obrigatória. Baseia-se na autenticação mútua de certificados - tanto o servidor como o dispositivo cliente apresentam certificados digitais - eliminando por completo as palavras-passe e os riscos associados de roubo de credenciais ou phishing. Para ambientes que ainda não estejam preparados para uma Public Key Infrastructure (PKI) completa, o PEAP-MSCHAPv2 constitui uma opção provisória razoável, utilizando um túnel encriptado para proteger as credenciais de nome de utilizador e palavra-passe.

Quando um membro do pessoal se autentica com sucesso, o servidor RADIUS devolve atributos de autorização. O atributo fundamental para a segmentação de rede é o Tunnel-Private-Group-ID, que instrui o OpenWrt a atribuir dinamicamente o utilizador à VLAN correta. Este é o mecanismo por trás das Redes Baseadas em Identidade (Identity-Based Networks): a identidade do utilizador, e não a sua localização física, determina o seu acesso à rede.

Segmentação multi-tenant: configuração PPSK em OpenWrt

Em ambientes multi-tenant - espaços de coworking, propriedades build-to-rent (BTR), centros comerciais com vários lojistas ou estádios com zonas de patrocinadores separadas - a transmissão de múltiplos SSIDs é operacionalmente dispendiosa e ineficiente a nível de RF. Cada SSID adicional adiciona sobrecarga de tráfego de gestão (management frame), reduzindo o tempo de transmissão disponível para o tráfego de dados.

As Chaves Pré-Partilhadas Privadas (PPSK), por vezes designadas por PSK dinâmicas, resolvem este problema. Transmite um único SSID. Quando um dispositivo tenta ligar-se, o hostapd envia o endereço MAC do dispositivo para o servidor RADIUS através de um Access-Request padrão. O servidor RADIUS valida o endereço MAC na sua base de dados e devolve um Access-Accept contendo dois atributos críticos: o atributo Tunnel-Password (a palavra-passe exclusiva para esse dispositivo) e o atributo Tunnel-Private-Group-ID (a atribuição de VLAN). O dispositivo liga-se utilizando a sua palavra-passe exclusiva e é colocado diretamente na VLAN atribuída.

Isto significa que um gestor de retalho e um participante de um evento podem ligar-se ao mesmo SSID mas ser encaminhados para redes inteiramente separadas e isoladas com base na sua identidade única.

ppsk_multitenant_diagram.png

Guia de implementação

Passo 1: Obter as credenciais RADIUS do Purple

Antes de mexer na configuração do OpenWrt, obtenha os seguintes dados na consola de administração do portal Purple:

  • Endereço IP do Servidor RADIUS Primário
  • Endereço IP do Servidor RADIUS Secundário (para failover)
  • Segredo Partilhado RADIUS (Shared Secret)
  • URL da Splash Page do Captive Portal
  • URL de redirecionamento pós-autenticação

Passo 2: Instalar e configurar o CoovaChilli para WiFi de convidados

Instale o pacote coova-chilli via opkg:

opkg update && opkg install coova-chilli

O ficheiro de configuração principal é o /etc/chilli/defaults. Defina os parâmetros de rede principais:

# 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"

Ative e inicie o serviço:

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

Passo 3: Configurar a interface wireless OpenWrt para o SSID de visitantes

Em /etc/config/wireless, defina o SSID de visitantes como uma rede aberta associada à interface que o CoovaChilli irá gerir:

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

O isolamento de clientes (isolate '1') impede que os dispositivos dos visitantes comuniquem entre si - um controlo de segurança obrigatório para qualquer rede partilhada.

Passo 4: Configurar o hostapd para o WiFi de funcionários 802.1X

Para o SSID de funcionários, configure o WPA2-Enterprise em /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'

A definição dynamic_vlan '2' instrui o hostapd a impor a atribuição de VLAN devolvida pelo servidor RADIUS e a rejeitar a autenticação se nenhuma VLAN for devolvida.

Requisito de pacote: O pacote padrão wpad-mini não suporta WPA2-Enterprise. Deve instalar o wpad ou o wpad-openssl:

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

Passo 5: Configurar PPSK para segmentação multi-tenant

O PPSK requer que o hostapd realize a autenticação do endereço MAC contra o servidor RADIUS, que depois devolve a palavra-passe por dispositivo. Em /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'

O parâmetro wpa_psk_radius '2' instrui o hostapd a exigir o atributo Tunnel-Password da resposta RADIUS. Se o servidor RADIUS não devolver uma palavra-passe, a autenticação é rejeitada.

Do lado do Purple RADIUS, a secção authorize da sua configuração FreeRADIUS (or equivalente) mapeia endereços MAC para palavras-passe e IDs de VLAN:

# Exemplo de entrada authorize do RADIUS para 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: Configurar atribuição dinâmica de VLAN

Para que a atribuição dinâmica de VLAN funcione, o seu switch OpenWrt deve estar configurado para transportar as VLANs relevantes como tráfego etiquetado (tagged) na porta trunk que liga ao seu switch principal. Em /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'

Certifique-se de que a porta do seu switch principal está configurada como trunk, passando as VLANs 10, 20 e 30 como etiquetadas (tagged).

Melhores práticas

Segregação absoluta da rede. Nunca agrupe (bridge) interfaces de convidados com redes internas. O tráfego de convidados deve ser isolado numa VLAN dedicada e encaminhado diretamente para a firewall da internet. Este é um requisito não negociável para a conformidade com o PCI DSS 4.0, que exige que as redes WiFi de convidados estejam completamente isoladas de qualquer segmento de rede que lide com dados de titulares de cartões.

Precisão do walled garden. Um walled garden incompleto é a principal causa de falhas no Captive Portal. Utilize as ferramentas de programador do seu navegador num dispositivo de teste ligado ao SSID de convidados para identificar quais os pedidos que estão a ser bloqueados antes da autenticação. Cada domínio bloqueado é uma potencial falha no portal.

Intervalos de accounting RADIUS. Configure o intervalo de accounting interim do CoovaChilli para 120 segundos. Isto fornece dados de sessão em tempo quase real no painel de analítica da Purple sem gerar tráfego RADIUS excessivo.

Servidor RADIUS secundário. Configure sempre HS_RADIUS2 na sua configuração do CoovaChilli. Se o servidor RADIUS principal da Purple estiver inacessível, o CoovaChilli falhará na autenticação de novas sessões. O servidor secundário fornece failover automático sem necessidade de qualquer alteração de configuração no ponto de acesso.

Seleção de pacotes. O pacote wpad-mini incluído em muitas compilações do OpenWrt não suporta WPA2-Enterprise ou atribuição dinâmica de VLAN. Instale sempre o wpad-openssl para qualquer implementação que exija 802.1X ou PPSK.

Para mais orientações sobre a arquitetura de segurança WiFi empresarial, consulte o nosso Enterprise WiFi Security: A Complete Guide for 2026 .

Resolução de problemas e mitigação de riscos

Sintoma Causa provável Resolução
O portal não carrega após o redirecionamento Walled garden incompleto Adicione os domínios de CDN/API em falta a HS_UAMDOMAINS
A autenticação falha silenciosamente Incompatibilidade do segredo partilhado RADIUS Verifique se o HS_RADSECRET corresponde exatamente no CoovaChilli e no portal Purple
Sem dados na analítica da Purple Accounting RADIUS bloqueado Verifique se o tráfego UDP de saída 1813 é permitido; verifique a configuração de accounting do HS_RADIUS2
O iOS não mostra o pop-up do portal captive.apple.com no walled garden Remova os domínios de deteção da Apple de HS_UAMDOMAINS
Clientes PPSK entram na VLAN errada vlan_tagged_interface mal configurada Verifique a configuração da porta trunk tanto no OpenWrt como no switch principal
Autenticação 802.1X falha com erro de wpad wpad-mini instalado Remova o wpad-mini e instale o 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: O CoovaChilli em si não recolhe nem armazena dados pessoais. Todos os mecanismos de recolha de consentimento, processamento de dados e conformidade com o GDPR são geridos pela plataforma Purple ao nível do portal. Certifique-se de que o seu portal Purple está configurado com os termos e condições do seu local e com o aviso de processamento de dados antes do lançamento oficial.

Para padrões de integração de hardware relacionados, consulte os nossos guias sobre EnGenius Cloud Access Points Integration with Purple WiFi e DrayTek Vigor Routers and Access Points Integration with Purple WiFi .

ROI & business impact

A transição de redes PSK básicas para uma arquitetura OpenWrt gerida pela Purple proporciona um impacto mensurável em três dimensões.

Data capture and marketing. Ao impor a autenticação por Captive Portal, os locais recolhem dados demográficos primários conformes (nomes, endereços de email, perfis de redes sociais) no momento da ligação ao WiFi. Estes dados alimentam diretamente as plataformas de CRM e marketing por email, impulsionando as inscrições em programas de fidelização e permitindo campanhas direcionadas. A Purple processou 440 milhões de inícios de sessão em 2024 (dados internos da Purple), demonstrando a escala de recolha de dados primários possível na periferia da rede.

Operational efficiency. A implementação de PPSK reduz a sobrecarga de SSID, melhorando o desempenho do WiFi em ambientes densos. Para uma cadeia de retalho com 200 localizações, gerir a identidade de forma centralizada através do RADIUS na nuvem da Purple — em vez de atualizar as configurações locais dos routers em cada local — poupa centenas de horas de engenharia anualmente. Uma única alteração na política de RADIUS propaga-se instantaneamente para todas as 200 localizações.

Security and compliance. A atribuição de VLAN dinâmica impõe o acesso com privilégios mínimos na periferia. O pessoal é isolado dos convidados. Os dispositivos IoT são isolados do pessoal. Os terminais POS são isolados de todo o restante tráfego. Esta segmentação satisfaz os requisitos de isolamento de rede do PCI DSS 4.0 e fornece uma topologia de rede clara e auditável para análises de conformidade com o GDPR.

Para padrões de implementação específicos de cada setor, consulte os nossos guias para ambientes de Retalho , Hotelaria , Saúde e Transportes . Poderá também considerar útil o nosso guia sobre What Is Wireless Display: Protocols & Best Practices 2026 para compreender tecnologias sem fios complementares em implementações em locais públicos.

Definições Principais

CoovaChilli

Um controlador de acesso de software open-source que fornece um Captive Portal e um ambiente de walled garden para redes sem fios, utilizando RADIUS para autenticação e faturação.

As equipas de TI implementam o CoovaChilli em OpenWrt para intercetar o tráfego HTTP de convidados e redirecioná-lo para a splash page da Purple. Este gere as regras de iptables que aplicam o walled garden e concedem acesso à internet pós-autenticação.

Walled garden

Uma lista de permissões estrita de endereços IP ou domínios a que um utilizador não autenticado pode aceder antes de concluir a autenticação no Captive Portal.

Crítico para permitir que os dispositivos dos convidados carreguem os gráficos do portal da Purple e acedam às API de início de sessão das redes sociais, bloqueando simultaneamente o acesso geral à internet. Um walled garden incompleto é a causa mais comum de falhas no Captive Portal.

PPSK (Private Pre-Shared Key)

Um mecanismo de segurança no qual são atribuídas palavras-passe exclusivas a utilizadores ou dispositivos individuais para o mesmo SSID de WiFi, com o RADIUS a devolver a palavra-passe correta e a atribuição de VLAN por endereço MAC do dispositivo.

Utilizado para segmentar ambientes multi-tenant sem transmitir múltiplos SSID. Suportado em OpenWrt através do parâmetro wpa_psk_radius no hostapd.

Dynamic VLAN assignment

O processo em que um servidor RADIUS instrui o ponto de acesso a colocar um utilizador autenticado específico numa VLAN específica, utilizando os atributos RADIUS Tunnel-Type, Tunnel-Medium-Type e Tunnel-Private-Group-ID.

O mecanismo central para Redes Baseadas em Identidade. A identidade do utilizador, e não a sua porta física, determina o seu segmento de rede e direitos de acesso.

IEEE 802.1X

O padrão IEEE para controlo de acesso à rede baseado em portas, definindo as funções de Autenticador (ponto de acesso), Suplicante (dispositivo cliente) e Servidor de Autenticação (RADIUS) na autenticação WiFi empresarial.

O protocolo subjacente para WiFi seguro de funcionários em OpenWrt. Requer o pacote completo wpad ou wpad-openssl - o wpad-mini não o suporta.

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

Um método de autenticação 802.1X que utiliza autenticação mútua baseada em certificados, exigindo que tanto o servidor RADIUS como o dispositivo cliente apresentem certificados digitais válidos.

O padrão de excelência para autenticação de dispositivos corporativos. Elimina totalmente as palavras-passe, neutralizando o roubo de credenciais e ataques de phishing. Requer uma infraestrutura PKI para emitir certificados de cliente.

Captive Network Assistant (CNA)

O pseudo-browser que os dispositivos iOS e Android apresentam automaticamente quando detetam que estão atrás de um Captive Portal, com base na sondagem de URL de deteção específicos.

Os engenheiros de rede devem gerir os seus walled gardens com cuidado para controlar se o CNA é acionado automaticamente. A maioria das implementações em hotelaria exclui os domínios de deteção da Apple e da Google para forçar a abertura da janela pop-up do CNA.

RADIUS accounting

O terceiro pilar da estrutura AAA (Autenticação, Autorização, Faturação), que monitoriza o consumo de recursos de rede registando eventos de início de sessão, atualizações intermédias e paragem de sessão na porta UDP 1813.

Necessário para a Purple preencher o painel de análise com dados de duração da sessão e largura de banda. Configurado no CoovaChilli através do HS_RADIUS2 e do parâmetro radiusacctport.

hostapd

O daemon de ponto de acesso open-source IEEE 802.11 utilizado pelo OpenWrt para gerir interfaces sem fios, suportando os modos de autenticação WPA2/WPA3-Enterprise, 802.1X e PPSK.

O daemon central para WiFi de funcionários e PPSK em OpenWrt. O pacote wpad-openssl fornece a compilação completa do hostapd necessária para autenticação empresarial.

Tunnel-Password attribute

Um atributo RADIUS (atributo 69) utilizado em implementações PPSK para devolver uma palavra-passe por dispositivo do servidor RADIUS para o ponto de acesso durante a autenticação MAC.

O mecanismo através do qual o servidor RADIUS da Purple fornece chaves PSK exclusivas ao daemon hostapd do OpenWrt para segmentação multi-tenant baseada em PPSK.

Exemplos Práticos

Um hotel com 200 quartos necessita de disponibilizar acesso WiFi em níveis: acesso básico gratuito para hóspedes, acesso de alta velocidade para membros do programa de fidelização e acesso seguro para os dispositivos de ponto de venda (POS) dos funcionários. A equipa de TI pretende minimizar o impacto do número de SSIDs e impor o isolamento de rede PCI DSS entre os terminais POS e o tráfego de hóspedes.

Implemente pontos de acesso OpenWrt transmitindo dois SSIDs: 'Hotel_Guest' (aberto, gerido pelo CoovaChilli) e 'Hotel_Secure' (gerido por PPSK através de hostapd). No 'Hotel_Guest', o CoovaChilli redireciona todo o tráfego não autenticado para a splash page da Purple. Os hóspedes autenticam-se através do portal e entram na VLAN 20 (apenas internet). No 'Hotel_Secure', configure o hostapd com wpa_psk_radius=2. Quando o dispositivo de um membro de fidelização se liga, o servidor RADIUS devolve a sua PSK única e a VLAN 21 (nível de largura de banda superior). Quando um terminal POS se liga, o servidor RADIUS devolve a PSK do dispositivo POS e a VLAN 10 (acesso à rede interna, internet bloqueada). A segmentação de VLAN impõe o isolamento PCI DSS entre os dados do titular do cartão (VLAN 10) e o tráfego de hóspedes (VLANs 20 e 21) ao nível do ponto de acesso.

Comentário do Examinador: Esta arquitetura utiliza dois SSIDs em vez de um para separar o fluxo do Captive Portal (hóspedes) do fluxo PPSK (funcionários e fidelização). Esta é a abordagem correta porque o CoovaChilli e o PPSK do hostapd servem modelos de autenticação fundamentalmente diferentes. Combiná-los num único SSID exigiria uma configuração de proxy RADIUS que adicionaria complexidade desnecessária. O modelo de dois SSIDs é mais simples, mais fiável e mais fácil de auditar para a conformidade PCI DSS.

Uma cadeia de retalho está a implementar routers OpenWrt em 50 locais. Durante os testes de aceitação do utilizador (UAT) no primeiro local, a splash page da Purple carrega corretamente após o redirecionamento, mas clicar no botão de login do Facebook resulta num limite de tempo de ligação (timeout). O botão de início de sessão da Google funciona corretamente.

O problema deve-se a um walled garden incompleto no CoovaChilli. O fluxo de autenticação do Facebook requer acesso a múltiplos domínios: facebook.com, connect.facebook.net e fbcdn.net (o CDN do Facebook para recursos de login). O início de sessão da Google funciona porque googleapis.com e gstatic.com já estão no walled garden. Atualize o parâmetro HS_UAMDOMAINS em /etc/chilli/defaults para adicionar '.facebook.com,.connect.facebook.net,.fbcdn.net'. Reinicie o daemon chilli com '/etc/init.d/chilli restart' e teste novamente. Para diagnosticar problemas futuros de walled garden de forma sistemática, ligue um dispositivo de teste ao SSID de hóspedes e utilize as ferramentas de programador do navegador (separador Rede) para identificar quais os pedidos que devolvem erros de ligação antes da autenticação.

Comentário do Examinador: Os fluxos modernos de login social carregam recursos a partir de múltiplos domínios de CDN e API. O SDK do Facebook, por si só, faz referência a pelo menos três domínios distintos. Uma abordagem sistemática para a depuração do walled garden - utilizando as ferramentas de programador do navegador para identificar pedidos pré-autenticação bloqueados - é muito mais fiável do que tentar adivinhar listas de domínios. Antes da entrada em produção em todos os 50 locais, o engenheiro deve testar todos os métodos de autenticação configurados (Facebook, Google, email, SMS) e verificar se cada um deles é concluído com sucesso.

Perguntas de Prática

Q1. Implementou o OpenWrt com CoovaChilli numa propriedade Premier Inn. Os clientes relatam que os seus iPhones não os solicitam automaticamente a iniciar sessão quando se ligam ao WiFi de convidados. Têm de abrir manualmente o Safari e navegar para um site HTTP para acionar o portal. Que alteração de configuração causa isto e como a resolve?

Dica: Considere como o iOS determina se uma rede tem acesso total à internet após a associação.

Ver resposta modelo

O engenheiro incluiu o domínio de deteção de Captive Portal da Apple (captive.apple.com) no walled garden do CoovaChilli via HS_UAMDOMAINS. Quando um iPhone se liga, o iOS envia uma sonda para captive.apple.com. Como este domínio está no walled garden, a sonda é bem-sucedida antes da autenticação, e o iOS conclui que tem acesso total à internet - suprimindo o pop-up do Captive Network Assistant. Para resolver isto, remova captive.apple.com de HS_UAMDOMAINS e reinicie o daemon do chilli. Os dispositivos iOS receberão então uma resposta de sonda falhada, identificarão corretamente o Captive Portal e apresentarão o ecrã de início de sessão automaticamente.

Q2. Um operador de espaço de coworking pretende implementar termóstatos inteligentes IoT em todas as suas instalações. Já transmitem um SSID 'Cowork_Guest' (CoovaChilli) e um SSID 'Cowork_Staff' (802.1X). Os termóstatos não suportam WPA2-Enterprise. Como os integra de forma segura sem adicionar um terceiro SSID?

Dica: Os dispositivos IoT normalmente suportam apenas WPA2-PSK. Considere qual o SSID existente que pode ser estendido para suportar palavras-passe por dispositivo.

Ver resposta modelo

Configure PPSK no SSID 'Cowork_Staff' ativando wpa_psk_radius=2 na configuração do hostapd. Registe o endereço MAC de cada termóstato no servidor RADIUS da Purple com uma palavra-passe única e a VLAN 40 (VLAN IoT) como Tunnel-Private-Group-ID. Quando um termóstato se liga, o hostapd consulta o servidor RADIUS com o MAC do dispositivo, recebe a PSK única e a atribuição de VLAN, e coloca o termóstato na VLAN 40 - totalmente isolado do tráfego da equipa na VLAN 10. Esta abordagem evita um terceiro SSID, mantém a eficiência de RF e aplica o acesso com privilégios mínimos para dispositivos IoT sem necessitar de infraestrutura de certificados 802.1X.

Q3. Após a implementação do OpenWrt com CoovaChilli num espaço comercial, o painel de análise da Purple mostra zero sessões ativas e nenhuns dados de largura de banda, apesar de os convidados se ligarem e navegarem na internet com sucesso. Qual é a causa mais provável e quais são os dois passos para a diagnosticar?

Dica: A autenticação (porta 1812) e a faturação (porta 1813) são funções RADIUS separadas.

Ver resposta modelo

A configuração de accounting do RADIUS está em falta ou bloqueada. Passo 1: Verifique a configuração do CoovaChilli. Confirme se HS_RADIUS e HS_RADIUS2 estão definidos corretamente em /etc/chilli/defaults, e confirme se a radiusacctport está definida para 1813. Se HS_RADIUS2 não estiver configurado, não há servidor de accounting definido. Passo 2: Verifique as regras da firewall. Confirme se o tráfego de saída da porta UDP 1813 do router OpenWrt para os endereços IP do servidor RADIUS da Purple é permitido pela firewall de borda do local. Utilize 'tcpdump -i eth0 udp port 1813' no dispositivo OpenWrt para confirmar se os pacotes de accounting estão a ser enviados. Se os pacotes aparecerem no tcpdump mas o painel continuar vazio, o problema é uma firewall a bloquear o tráfego entre o router e os servidores RADIUS na cloud da Purple.

Q4. Uma implementação do OpenWrt num estádio utiliza a atribuição dinâmica de VLAN via RADIUS para segmentar o WiFi de adeptos (VLAN 30), comunicação social (VLAN 40) e operações (VLAN 50). Após atualizar os pontos de acesso para novo hardware com OpenWrt 19.07 com controladores ath10k, a atribuição de VLAN deixa de funcionar. Todos os utilizadores autenticados vão para a VLAN padrão, independentemente dos atributos RADIUS. Qual é a causa conhecida?

Dica: Considere o suporte ao nível do controlador para o modo AP/VLAN no ath10k.

Ver resposta modelo

Esta é uma regressão conhecida no firmware ath10k-ct (Candela Technologies) incluído no OpenWrt 19.07. O controlador ath10k-ct nesta versão tem um erro que corrompe o modo AP/VLAN, impedindo o funcionamento da atribuição dinâmica de VLAN. A resolução é atualizar para o OpenWrt 21.02 ou posterior, onde o controlador ath10k-ct foi atualizado para restaurar a funcionalidade AP/VLAN. Alternativamente, substitua o firmware ath10k-ct pelo firmware ath10k padrão (variante não-CT) na compilação 19.07. Este problema não afeta o hardware baseado em ath9k, que lida corretamente com o modo AP/VLAN em todas as versões do OpenWrt.