Entrar ou criar conta

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.

Wi-Fi e rede para hotelaria: hóspede, operação e portal cativo
Ligado ao treinamento Wi-Fi e rede para hotelaria: hóspede, operação e portal cativo
Duração estimada
90 min
Passos
10
Validações
5
Objetivo

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

ItemRequisito, licença ou versão
VM Linux (FreeRADIUS)1 vCPU, 512MB RAM, 1 NIC, Debian/Ubuntu atual
Roteador ou VM com OpenWrt1 vCPU, 256MB RAM, 2 NICs, OpenWrt 22.03+ ou compatível
Notebook/VM cliente Wi-Fi1 vCPU, 512MB RAM, Wi-Fi ou NIC virtual
OpenWrtGPLv2 · 22.03.5
OpenNDS (portal cativo)GPLv2 · a versão estável atual
FreeRADIUSGPLv2 · 3.0.x
hostapdGPLv2 · a versão estável atual

Roteiro

  1. 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.

  2. 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 freeradius

    O que você deve ver: Serviço FreeRADIUS ativo e escutando na porta 1812.

  3. 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 restart

    O que você deve ver: As interfaces VLAN aparecem em ifconfig/ip a.

  4. 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 reload

    O que você deve ver: Os dois SSIDs aparecem para conexão.

  5. 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 restart

    O que você deve ver: OpenNDS ativo, interceptando conexões na rede hóspede.

  6. 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 restart

    O que você deve ver: Clientes da rede hóspede só navegam após autenticação.

  7. 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.

  8. 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.

  9. Testar isolamento entre redes

    Tente pingar da rede hóspede para a staff. Deve falhar.

    ping 192.168.10.1

    O que você deve ver: Sem resposta de ping, redes isoladas.

  10. Testar logs de autenticação

    No FreeRADIUS, verifique os logs de autenticação.

    sudo tail -f /var/log/freeradius/radius.log

    O que você deve ver: Entradas de sucesso e falha de login aparecem.

Como saber que funcionou

TesteComandoCritério
Cliente recebe IP na rede hóspedeip addrIP 192.168.20.x atribuído
Portal cativo intercepta navegaçãoNavegador redireciona para tela de login
Login libera acesso à internetping 8.8.8.8Ping responde após autenticação
Rede staff não acessível da hóspedeping 192.168.10.1Sem resposta
Logs de autenticação no FreeRADIUSsudo tail /var/log/freeradius/radius.logRegistro do login do usuário

Troubleshooting

SintomaCausa provávelCorreção
Cliente não recebe IPDHCP não ativo ou VLAN mal configuradaVerifique DHCP e VLANs no OpenWrt
Portal cativo não apareceOpenNDS não intercepta interface corretaReveja configuração 'gatewayinterface'
Login falha mesmo com usuário corretoSegredo RADIUS incorretoConfirme segredo em OpenNDS e FreeRADIUS
Rede staff acessível da hóspedeFirewall permite tráfego entre VLANsAjuste regras de firewall para isolar
Sem acesso à internet após loginNAT ou rota ausenteVerifique 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

Checklist final

Referências

  1. Documentação oficial OpenWrt
  2. Wi-Fi Alliance: Segurança Wi-Fi
  3. LGPD - Lei Geral de Proteção de Dados