Obtido de: https://help.ubnt.com/hc/en-us/articles/360006455793-UniFi-Troubleshooting-RADIUS-Authentication
UniFi - Solução de Problemas de Autenticação RADIUS
Visão Geral
Neste artigo, os leitores podem esperar adquirir habilidades essenciais de solução de problemas para depurar a autenticação 802.1X em dispositivos UniFi.
| NOTAS E REQUISITOS: Antes de prosseguir com este artigo, certifique-se de estar familiarizado com o conteúdo da (https://help.ubnt.com/hc/en-us/articles/360006455793-UniFi-Troubleshooting-RADIUS-Authentication#6) para USG, USW e UAP. Isso será útil para entender o que cada seção de configuração envolve e requer. |
|---|
Sumário
- (https://help.ubnt.com/hc/en-us/articles/360006455793-UniFi-Troubleshooting-RADIUS-Authentication#1)
- (https://help.ubnt.com/hc/en-us/articles/360006455793-UniFi-Troubleshooting-RADIUS-Authentication#2)
- (https://help.ubnt.com/hc/en-us/articles/360006455793-UniFi-Troubleshooting-RADIUS-Authentication#3)
- (https://help.ubnt.com/hc/en-us/articles/360006455793-UniFi-Troubleshooting-RADIUS-Authentication#4)
- (https://help.ubnt.com/hc/en-us/articles/360006455793-UniFi-Troubleshooting-RADIUS-Authentication#5)
- (https://help.ubnt.com/hc/en-us/articles/360006455793-UniFi-Troubleshooting-RADIUS-Authentication#6)
Diagrama de Rede
Processo de Autenticação
!(/images/posts/USW-RADIUS_766106e0.png)
Problemas Comuns
Esta é uma breve lista de problemas comuns que podem ocorrer com a autenticação RADIUS.
O dispositivo cliente não é colocado na VLAN correta
1. Verifique se a conta no servidor de autenticação tem um ID de VLAN especificado.
2. Verifique se a opção Enabled RADIUS assigned VLAN está habilitada no perfil RADIUS.
3. Verifique com tcpdump no dispositivo se o servidor está enviando a VLAN correta na mensagem de aceitação RADIUS.
3.1. Use o seguinte comando em uma sessão SSH em um dispositivo UniFi:
sudo tcpdump -npi eth0 port 1812 -vvv
| NOTA: Você também pode atribuir endereços IP da sub-rede local (192.168.1.0/24 neste caso). |
|---|
Um atributo chamado “vlan-id” terá a VLAN especificada se o servidor RADIUS estiver enviando-a corretamente.
4. Verifique se “use_tunneled-reply” está habilitado em um servidor de autenticação baseado em FreeRADIUS.
Exemplo de configuração EAP do FreeRADIUS (/etc/freeradius/3.0/mods-enabled/eap):
use_tunneled_reply = yes
| NOTA: use_tunneled_reply está habilitado por padrão nas configurações do USG. |
|---|
O dispositivo cliente tem um timeout de autenticação
1. Verifique com tcpdump no dispositivo UniFi se o servidor RADIUS está respondendo à solicitação RADIUS.
1.1. Use o seguinte comando em uma sessão SSH em um dispositivo UniFi:
sudo tcpdump -npi eth0 port 1812
A transação listada no diagrama de rede acima deve ocorrer. Se o radius-accept for retornado, prossiga com os passos abaixo.
Solução de Problemas de 802.1X Cabeado no USW
Este processo permitirá que um administrador UniFi veja a interação pacote a pacote entre o autenticador (switch) e o servidor RADIUS.
Autenticação
1. Use o seguinte comando no Terminal de Depuração ou Cliente SSH
sudo tcpdump -npi eth0 port 1812 -vv
2. Conecte um dispositivo cliente compatível com 802.1X.
3. Visualize a saída.
- Se o processo RADIUS terminar com uma mensagem de aceitação do servidor RADIUS, o cliente será autorizado a enviar tráfego na rede.
- Se as mensagens RADIUS expirarem, verifique se há conectividade entre o USW e o servidor RADIUS. Verifique se há firewalls bloqueando a porta 1812 e a conectividade básica entre o USW e o servidor RADIUS.
- Se o processo RADIUS terminar com uma mensagem de rejeição do servidor RADIUS, certifique-se de que o dispositivo cliente está usando as credenciais corretas.
Accounting
O accounting só acontece após a autenticação ser bem-sucedida.
| ATENÇÃO: Ao usar o USG como servidor RADIUS, o accounting não está habilitado. |
|---|
sudo tcpdump -npi eth0 port 1813 -vv
1. Use o seguinte comando no Terminal de Depuração ou Cliente SSH
Comandos Úteis do Terminal de Depuração ou Cliente SSH
| ATENÇÃO: Para inserir estes comandos, você deve primeiro digitar telnet localhost seguido de enable no CLI. Exemplo abaixo. |
|---|
USW-24P-US.v4.0.14# telnet localhost
Entering character mode
Escape character is '^]'.
Warning!
The changes may break controller settings and only be effective until reboot.
(UBNT) >enable
(UBNT) #
Comandos Principais
show radius
Clique Aqui para Expandir as Definições de Saída
show radius servers
Clique Aqui para Expandir as Definições de Saída
show radius statistics
Clique Aqui para Expandir as Definições de Saída
**show dot1x authentication-history <slot/port number> **
Clique Aqui para Expandir as Definições de Saída
show dot1x clients {slot/port | all}
Clique Aqui para Expandir as Definições de Saída
Solução de Problemas de 802.1X Sem Fio no UAP
Autenticação
1. Use o seguinte comando no Terminal de Depuração ou Cliente SSH
sudo tcpdump -npi eth0 port 1812 -vv
2. Conecte um dispositivo cliente compatível com 802.1X.
3. Visualize a saída.
- Se o processo RADIUS terminar com uma mensagem de aceitação do servidor RADIUS, o cliente será autorizado a enviar tráfego na rede.
- Se as mensagens RADIUS expirarem, verifique se há conectividade entre o UAP e o servidor RADIUS. Verifique se há firewalls bloqueando a porta 1812 e a conectividade básica entre o UAP e o servidor RADIUS.
- Se o processo RADIUS terminar com uma mensagem de rejeição do servidor RADIUS, certifique-se de que o dispositivo cliente está usando as credenciais corretas.
Accounting
O accounting só acontece após a autenticação ser bem-sucedida.
| ATENÇÃO: Ao usar o USG como servidor RADIUS, o accounting não está habilitado. |
|---|
1. Use o seguinte comando no Terminal de Depuração ou Cliente SSH
sudo tcpdump -npi eth0 port 1813 -vv
Logging
Configurar o nível de logging do dispositivo para debug pode ajudar a diagnosticar problemas com o UAP fora das capturas de pacotes. Navegue até Settings > Maintenance > Log Level se desejar alterar essa configuração.
Solução de Problemas de Autenticação RADIUS no USG
| CLI: Acesse a interface de linha de comando (CLI). Você pode fazer isso usando um programa cliente SSH. |
|---|
Esta seção abordará métodos de solução de problemas de autenticação RADIUS no UniFi Security Gateway.
USG como Servidor RADIUS
Visualizando os logs do FreeRADIUS
sudo cat /var/log/freeradius/radius.log
Este comando mostrará logs desde o início do processo, tentativas de autenticação junto com falhas e quaisquer problemas associados ao serviço.
Executando em primeiro plano
Este comando no SSH iniciará o FreeRADIUS em primeiro plano no USG. Ele permitirá a visualização de eventos impressos no console em tempo real.
NOTA: O comando radtest usado abaixo não funcionará com mschapv2. |
|---|
#Usage
sudo service freeradius restart
sudo service freeradius stop
sudo freeradius -fX
#For less verbosity use -fxx instead of -fX
sudo freeradius -fxx
#to stop freeradius running in the foreground and return to normal operation.
ctrl+c
sudo service freeradius start
#Sample output using radtest
rad_recv: Access-Request packet from host 172.20.1.1 port 57380, id=57, length=78
User-Name = "ubnttest"
User-Password = "test1234"
NAS-IP-Address = 172.20.1.1
NAS-Port = 0
Message-Authenticator = 0x8af0fec45c575d375c1c6ba366253feb
# Executing section authorize from file /etc/freeradius/sites-enabled/default
+- entering group authorize {...}
++ returns ok
++ returns noop
++ returns noop
++ returns noop
No '@' in User-Name = "ubnttest", looking up realm NULL
No such realm "NULL"
++ returns noop
No EAP-Message, not doing EAP
++ returns noop
users: Matched entry DEFAULT at line 1
users: Matched entry ubnttest at line 5
++ returns ok
++ returns noop
++ returns noop
++ returns updated
Found Auth-Type = PAP
# Executing group from file /etc/freeradius/sites-enabled/default
+- entering group PAP {...}
login attempt with password "test1234"
Using clear text password "test1234"
User authenticated successfully
++ returns ok
Login OK: (from client client-5c2650e21876930ceb43007e port 0)
# Executing section post-auth from file /etc/freeradius/sites-enabled/default
+- entering group post-auth {...}
++ returns noop
Sending Access-Accept of id 57 to 172.20.1.1 port 57380
Acct-Interim-Interval = 3600
Tunnel-Type:0 = VLAN
Tunnel-Medium-Type:0 = IEEE-802
Tunnel-Private-Group-Id:0 = "5"
Finished request 0.
Going to the next request
Waking up in 4.9 seconds.
Cleaning up request 0 ID 57 with timestamp +5
Ready to process requests.
USG como Autenticador para Servidor de Autenticação de Terceiros
Use “radtest” para enviar uma mensagem de autenticação de teste para um servidor RADIUS de terceiros.
#Options
sudo radtest -h
#Usage (brackets denote optional parameters)
sudo radtest username password radius-server: NAS-port secret
#Example command (192.168.1.2 as auth. server)
sudo radtest ubnttest testpw12! 192.168.1.2 0 thisisasecret
#Sample Output
>sudo radtest ubnttest test1234 172.20.1.1 0 JustW0rkingH3r3$
Sending Access-Request of id 100 to 172.20.1.1 port 1812
User-Name = "ubnttest"
User-Password = "test1234"
NAS-IP-Address = 172.20.1.1
NAS-Port = 0
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 172.20.1.1 port 1812, id=100, length=41
Acct-Interim-Interval = 3600
Tunnel-Type:0 = VLAN
Tunnel-Medium-Type:0 = IEEE-802
Tunnel-Private-Group-Id:0 = "5"
Se uma resposta voltar do servidor de autenticação, isso prova que a autenticação está funcionando corretamente. Se nenhuma resposta for recebida, certifique-se de que o servidor de autenticação está online e pode processar mensagens de solicitação de acesso do IP do autenticador.