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


  1. (https://help.ubnt.com/hc/en-us/articles/360006455793-UniFi-Troubleshooting-RADIUS-Authentication#1)
  2. (https://help.ubnt.com/hc/en-us/articles/360006455793-UniFi-Troubleshooting-RADIUS-Authentication#2)
  3. (https://help.ubnt.com/hc/en-us/articles/360006455793-UniFi-Troubleshooting-RADIUS-Authentication#3)
    1. (https://help.ubnt.com/hc/en-us/articles/360006455793-UniFi-Troubleshooting-RADIUS-Authentication#3.1)
  4. (https://help.ubnt.com/hc/en-us/articles/360006455793-UniFi-Troubleshooting-RADIUS-Authentication#4)
  5. (https://help.ubnt.com/hc/en-us/articles/360006455793-UniFi-Troubleshooting-RADIUS-Authentication#5)
  6. (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.

  1. Se o processo RADIUS terminar com uma mensagem de aceitação do servidor RADIUS, o cliente será autorizado a enviar tráfego na rede.
  2. 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.
  3. 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.

  1. Se o processo RADIUS terminar com uma mensagem de aceitação do servidor RADIUS, o cliente será autorizado a enviar tráfego na rede.
  2. 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.
  3. 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.