Laboratório em bancada
Laboratório: Autenticação Wi-Fi Corporativa 802.1X com FreeRADIUS e hostapd
Você terá um ambiente funcional de autenticação Wi-Fi corporativa 802.1X usando FreeRADIUS, hostapd e clientes Linux. Duração aproximada: 2 horas.

- Duração estimada
- 120 min
- Passos
- 13
- Validações
- 4
Implementar uma solução ponta a ponta de autenticação Wi-Fi corporativa baseada em 802.1X, utilizando apenas software livre. O laboratório cobre desde a configuração do FreeRADIUS como servidor RADIUS, até a integração com um ponto de acesso virtual (hostapd) e autenticação de clientes Linux. O objetivo é entender o fluxo de autenticação EAP, identificar pontos críticos e validar o funcionamento real do acesso seguro em redes abertas.
Topologia
Três máquinas virtuais em uma rede privada: 1) Servidor FreeRADIUS (192.168.56.10), 2) Ponto de acesso hostapd (192.168.56.20), 3) Cliente Wi-Fi Linux (192.168.56.30). O hostapd conecta-se ao FreeRADIUS via IP, e o cliente conecta-se ao SSID broadcastado pelo hostapd.
[Cliente Wi-Fi]
(wlan0)
|
| 802.1X/EAP
|
[hostapd AP VM]
(eth0:192.168.56.20)
|
| RADIUS UDP/1812
|
[FreeRADIUS VM]
(eth0:192.168.56.10)Equipamentos e software
| Item | Requisito, licença ou versão |
|---|---|
| VM FreeRADIUS | 1 vCPU, 512MB RAM, 1 interface de rede, Debian 11 ou superior |
| VM hostapd (AP) | 1 vCPU, 512MB RAM, 1 interface de rede, 1 adaptador Wi-Fi USB compatível com modo AP, Debian 11 ou superior |
| VM cliente Linux | 1 vCPU, 512MB RAM, 1 interface de rede Wi-Fi (pode ser virtualizada), Debian 11 ou superior |
| FreeRADIUS | GPLv2 · 3.0.x (consulte a documentação) |
| hostapd | BSD · 2.9 ou superior |
| wpa_supplicant | GPLv2 · 2.9 ou superior |
Roteiro
- Preparar as VMs e interfaces de rede
Garanta que as três VMs estejam na mesma rede virtual privada. O hostapd deve ter uma interface Wi-Fi USB compatível em modo AP.
O que você deve ver: As três VMs se pingam entre si. O hostapd vê a interface Wi-Fi com 'iw dev'.
- Instalar o FreeRADIUS no servidor
Instale o FreeRADIUS usando o gerenciador de pacotes. Isso fornece o servidor RADIUS para autenticação.
sudo apt update && sudo apt install freeradiusO que você deve ver: O serviço freeradius é instalado e pode ser iniciado.
- Configurar usuário de teste no FreeRADIUS
Adicione um usuário de teste para autenticação EAP. Isso permite validar o fluxo completo.
echo 'alice Cleartext-Password := "senha123"' | sudo tee -a /etc/freeradius/3.0/usersO que você deve ver: O usuário 'alice' aparece no arquivo de usuários.
- Ajustar clients.conf para permitir o hostapd
Permita que o hostapd acesse o FreeRADIUS como cliente RADIUS. Use o IP do hostapd.
echo 'client hostapd { ipaddr = 192.168.56.20 secret = testing123 }' | sudo tee -a /etc/freeradius/3.0/clients.confO que você deve ver: Bloco 'client hostapd' adicionado ao clients.conf.
- Habilitar EAP no FreeRADIUS
O EAP é necessário para autenticação 802.1X. Habilite e ajuste o módulo EAP.
sudo nano /etc/freeradius/3.0/mods-enabled/eapO que você deve ver: O arquivo contém 'default_eap_type = peap' e certificados padrão configurados.
- Reiniciar e testar o FreeRADIUS em modo debug
Execute o FreeRADIUS em modo debug para acompanhar logs detalhados.
sudo systemctl stop freeradius sudo freeradius -XO que você deve ver: O servidor exibe logs detalhados e aguarda conexões RADIUS.
- Instalar e configurar o hostapd como ponto de acesso
No hostapd, crie um SSID protegido por WPA2-Enterprise (802.1X) e aponte para o FreeRADIUS.
sudo apt install hostapd sudo nano /etc/hostapd/hostapd.confO que você deve ver: Arquivo hostapd.conf criado. Veja exemplo abaixo.
- Exemplo de hostapd.conf
Configure o hostapd para usar WPA2-Enterprise e apontar para o FreeRADIUS.
interface=wlan0 ssid=WiFiCorp hw_mode=g channel=6 auth_algs=1 wpa=2 wpa_key_mgmt=WPA-EAP rsn_pairwise=CCMP ieee8021x=1 wpa_pairwise=CCMP wpa_group_rekey=86400 wpa_strict_rekey=1 wpa_gmk_rekey=86400 wpa_ptk_rekey=600 wpa_passphrase= radius_server_auth=192.168.56.10 radius_port_auth=1812 radius_auth_server_shared_secret=testing123O que você deve ver: hostapd.conf contém as linhas acima.
- Iniciar o hostapd
Suba o serviço hostapd com a configuração criada.
sudo hostapd /etc/hostapd/hostapd.confO que você deve ver: SSID 'WiFiCorp' aparece em dispositivos próximos. Logs mostram inicialização sem erros.
- Instalar e configurar o cliente Wi-Fi
No cliente Linux, instale wpa_supplicant e crie um arquivo de configuração para autenticação PEAP/MSCHAPv2.
sudo apt install wpasupplicant nano ~/wpa_supplicant.confO que você deve ver: Arquivo criado. Veja exemplo abaixo.
- Exemplo de wpa_supplicant.conf
Configure o cliente para conectar ao SSID usando 802.1X.
network={ ssid="WiFiCorp" key_mgmt=WPA-EAP eap=PEAP identity="alice" password="senha123" phase2="auth=MSCHAPV2" ca_cert="/etc/ssl/certs/ca-certificates.crt" # use o CA do FreeRADIUS se gerar certificados próprios }O que você deve ver: Arquivo contém as linhas acima.
- Conectar o cliente ao Wi-Fi corporativo
Inicie o wpa_supplicant e tente autenticar no SSID.
sudo wpa_supplicant -i wlan0 -c ~/wpa_supplicant.conf -dO que você deve ver: Logs mostram autenticação EAP, sucesso e IP obtido via DHCP.
- Verificar logs de autenticação no FreeRADIUS
Acompanhe o debug do FreeRADIUS para ver o fluxo EAP e a aceitação do usuário.
O que você deve ver: Logs mostram Access-Request, EAP-Message, Access-Accept para 'alice'.
Como saber que funcionou
| Teste | Comando | Critério |
|---|---|---|
| Cliente conecta ao SSID e obtém IP | ip addr show wlan0 | Interface wlan0 com endereço IP válido |
| Autenticação EAP bem-sucedida | verificar saída do wpa_supplicant | Mensagens 'EAP authentication completed successfully' |
| Logs do FreeRADIUS mostram Access-Accept | observar terminal do freeradius -X | Linha contendo 'Sent Access-Accept' |
| hostapd aceita a autenticação | observar terminal do hostapd | Log indicando 'authenticated' para o MAC do cliente |
Troubleshooting
| Sintoma | Causa provável | Correção |
|---|---|---|
| Cliente não conecta ao SSID | SSID não está ativo ou hostapd não iniciou | Verifique logs do hostapd e se a interface Wi-Fi suporta modo AP |
| Erro de autenticação EAP | Usuário ou senha incorretos no FreeRADIUS | Revise o arquivo users no FreeRADIUS |
| hostapd não consegue contactar o FreeRADIUS | IP ou segredo RADIUS incorretos | Confirme IP/segredo em hostapd.conf e clients.conf |
| wpa_supplicant falha com erro de certificado | CA do FreeRADIUS não está no cliente | Adicione o certificado CA correto ao cliente ou desabilite verificação (apenas para testes) |
Segurança e hardening
- Troque o segredo RADIUS 'testing123' por um valor forte em produção
- Utilize certificados próprios e confiáveis para EAP
- Restrinja o acesso ao servidor FreeRADIUS por firewall
- Desabilite usuários de teste após validação
