Laboratório em bancada
Laboratório: Portal Cativo Open Source com OpenWrt e FreeRADIUS para Wi-Fi de Hóspedes
Você terá uma rede Wi-Fi segmentada para hóspedes, com autenticação via portal cativo integrado ao FreeRADIUS, rodando em máquinas virtuais ou roteadores comuns. O laboratório leva de 90 a 120 minutos.

- Duração estimada
- 90 min
- Passos
- 10
- Validações
- 5
Este laboratório ensina como montar, do zero, uma rede Wi-Fi para hóspedes de hotel com OpenWrt, segmentação de VLAN, portal cativo (OpenNDS) e autenticação centralizada usando FreeRADIUS. Você entenderá como isolar o tráfego dos hóspedes, exigir autenticação conforme a LGPD, e validar o acesso à internet. O foco é mostrar o fluxo ponta a ponta, desde o acesso do hóspede até a liberação do tráfego.
Topologia
Um servidor FreeRADIUS (192.168.100.10) e um roteador OpenWrt (192.168.100.1) conectado à internet. O OpenWrt cria duas redes Wi-Fi: uma privada (staff, VLAN 10) e uma de hóspedes (VLAN 20). O portal cativo (OpenNDS) intercepta conexões na rede de hóspedes e autentica via FreeRADIUS. Um notebook ou VM simula o hóspede (IP 192.168.20.100).
[Internet]
|
[OpenWrt Router]
/ | \
VLAN10 VLAN20 LAN Mgmt
(Staff) (Hóspede) |
| | |
[Staff PC] [Notebook] [FreeRADIUS]
(192.168.20.100)
(192.168.100.10)Equipamentos e software
| Item | Requisito, licença ou versão |
|---|---|
| VM Linux (FreeRADIUS) | 1 vCPU, 512MB RAM, 1 NIC, Debian/Ubuntu atual |
| Roteador ou VM com OpenWrt | 1 vCPU, 256MB RAM, 2 NICs, OpenWrt 22.03+ ou compatível |
| Notebook/VM cliente Wi-Fi | 1 vCPU, 512MB RAM, Wi-Fi ou NIC virtual |
| OpenWrt | GPLv2 · 22.03.5 |
| OpenNDS (portal cativo) | GPLv2 · a versão estável atual |
| FreeRADIUS | GPLv2 · 3.0.x |
| hostapd | GPLv2 · a versão estável atual |
Roteiro
- Preparar o ambiente
Crie três VMs: uma para o FreeRADIUS, uma para o OpenWrt e uma para o cliente. Conecte-as em uma rede virtual privada.
O que você deve ver: Todas as VMs se pingam na rede privada.
- Instalar e configurar o FreeRADIUS
No servidor FreeRADIUS, instale o pacote e crie um usuário de teste.
sudo apt update && sudo apt install freeradius sudo sh -c 'echo "testuser Cleartext-Password := \"senha123\"" > /etc/freeradius/3.0/users' sudo systemctl restart freeradiusO que você deve ver: Serviço FreeRADIUS ativo e escutando na porta 1812.
- Configurar o OpenWrt: interfaces e VLANs
No OpenWrt, crie duas interfaces: staff (VLAN 10, 192.168.10.1/24) e hóspede (VLAN 20, 192.168.20.1/24).
uci set network.staff=interface uci set network.staff.ifname='eth0.10' uci set network.staff.proto='static' uci set network.staff.ipaddr='192.168.10.1' uci set network.staff.netmask='255.255.255.0' uci set network.hospede=interface uci set network.hospede.ifname='eth0.20' uci set network.hospede.proto='static' uci set network.hospede.ipaddr='192.168.20.1' uci set network.hospede.netmask='255.255.255.0' uci commit network /etc/init.d/network restartO que você deve ver: As interfaces VLAN aparecem em ifconfig/ip a.
- Configurar o Wi-Fi no OpenWrt
Configure dois SSIDs: um para staff (VLAN 10, WPA2) e outro para hóspedes (VLAN 20, aberto).
uci set wireless.@wifi-iface[0].ssid='Staff' uci set wireless.@wifi-iface[0].network='staff' uci set wireless.@wifi-iface[0].encryption='psk2' uci set wireless.@wifi-iface[0].key='senhaStaff' uci add wireless wifi-iface uci set wireless.@wifi-iface[-1].device='radio0' uci set wireless.@wifi-iface[-1].mode='ap' uci set wireless.@wifi-iface[-1].ssid='Hospede' uci set wireless.@wifi-iface[-1].network='hospede' uci set wireless.@wifi-iface[-1].encryption='none' uci commit wireless wifi reloadO que você deve ver: Os dois SSIDs aparecem para conexão.
- Instalar e configurar o OpenNDS (portal cativo)
No OpenWrt, instale o OpenNDS e configure para interceptar clientes da rede hóspede.
opkg update opkg install opennds uci set opennds.@opennds[0].gatewayinterface='hospede' uci set opennds.@opennds[0].authmode='radius' uci set opennds.@opennds[0].radiusserver='192.168.100.10' uci set opennds.@opennds[0].radiussecret='testing123' # consulte a documentação para o segredo correto uci commit opennds /etc/init.d/opennds restartO que você deve ver: OpenNDS ativo, interceptando conexões na rede hóspede.
- Configurar firewall e NAT no OpenWrt
Garanta que apenas a rede hóspede passe pelo portal cativo e tenha NAT para a internet.
uci add firewall zone uci set firewall.@zone[-1].name='hospede' uci set firewall.@zone[-1].network='hospede' uci set firewall.@zone[-1].input='ACCEPT' uci set firewall.@zone[-1].output='ACCEPT' uci set firewall.@zone[-1].forward='REJECT' uci add firewall forwarding uci set firewall.@forwarding[-1].src='hospede' uci set firewall.@forwarding[-1].dest='wan' uci commit firewall /etc/init.d/firewall restartO que você deve ver: Clientes da rede hóspede só navegam após autenticação.
- Configurar o cliente Wi-Fi
No notebook/VM, conecte ao SSID 'Hospede' e obtenha IP via DHCP.
O que você deve ver: Cliente recebe IP na faixa 192.168.20.x.
- Testar o portal cativo
No cliente, abra um navegador. Você será redirecionado ao portal cativo. Faça login com o usuário do FreeRADIUS.
O que você deve ver: Após login, o acesso à internet é liberado.
- Testar isolamento entre redes
Tente pingar da rede hóspede para a staff. Deve falhar.
ping 192.168.10.1O que você deve ver: Sem resposta de ping, redes isoladas.
- Testar logs de autenticação
No FreeRADIUS, verifique os logs de autenticação.
sudo tail -f /var/log/freeradius/radius.logO que você deve ver: Entradas de sucesso e falha de login aparecem.
Como saber que funcionou
| Teste | Comando | Critério |
|---|---|---|
| Cliente recebe IP na rede hóspede | ip addr | IP 192.168.20.x atribuído |
| Portal cativo intercepta navegação | Navegador redireciona para tela de login | |
| Login libera acesso à internet | ping 8.8.8.8 | Ping responde após autenticação |
| Rede staff não acessível da hóspede | ping 192.168.10.1 | Sem resposta |
| Logs de autenticação no FreeRADIUS | sudo tail /var/log/freeradius/radius.log | Registro do login do usuário |
Troubleshooting
| Sintoma | Causa provável | Correção |
|---|---|---|
| Cliente não recebe IP | DHCP não ativo ou VLAN mal configurada | Verifique DHCP e VLANs no OpenWrt |
| Portal cativo não aparece | OpenNDS não intercepta interface correta | Reveja configuração 'gatewayinterface' |
| Login falha mesmo com usuário correto | Segredo RADIUS incorreto | Confirme segredo em OpenNDS e FreeRADIUS |
| Rede staff acessível da hóspede | Firewall permite tráfego entre VLANs | Ajuste regras de firewall para isolar |
| Sem acesso à internet após login | NAT ou rota ausente | Verifique regras de NAT e rotas no OpenWrt |
Segurança e hardening
- Use WPA2 ou superior para redes privadas (staff)
- Segredo RADIUS deve ser forte e não divulgado
- Portal cativo deve exibir política de privacidade conforme LGPD
- Atualize OpenWrt, OpenNDS e FreeRADIUS para versões seguras
- Restrinja acesso de gerenciamento do OpenWrt à rede staff
