Obtenido de: https://help.ubnt.com/hc/en-us/articles/360006455793-UniFi-Troubleshooting-RADIUS-Authentication

UniFi - Solución de problemas de autenticación RADIUS


Descripción general


En este artículo, los lectores podrán adquirir habilidades clave de solución de problemas para depurar la autenticación 802.1X en dispositivos UniFi.

**NOTAS Y REQUISITOS: **Antes de continuar con este artículo, asegúrate de estar familiarizado con el contenido de (https://help.ubnt.com/hc/en-us/articles/360006455793-UniFi-Troubleshooting-RADIUS-Authentication#6) para USG, USW y UAP. Será útil para entender qué implica y requiere cada sección de la configuración.

Tabla de contenidos


  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 red


Proceso de autenticación

!(/images/posts/USW-RADIUS_766106e0.png)


Problemas comunes


Esta es una lista breve de problemas comunes que pueden ocurrir con la autenticación RADIUS.

El dispositivo cliente no se asigna a la VLAN correcta

1. Verifica que la cuenta en el servidor de autenticación tenga un ID de VLAN especificado.

2. Verifica que la opción “Enabled RADIUS assigned VLAN” esté habilitada en el perfil RADIUS.

3. Verifica con tcpdump en el dispositivo que el servidor esté enviando la VLAN correcta en el mensaje de aceptación RADIUS.

3.1. Usa el siguiente comando en una sesión SSH en un dispositivo UniFi:

sudo tcpdump -npi eth0 port 1812 -vvv
NOTA: También puedes asignar direcciones IP de la subred local (192.168.1.0/24 en este caso).

Un atributo llamado “vlan-id” tendrá la VLAN especificada si el servidor RADIUS la está enviando correctamente.

4. Verifica que “use_tunneled-reply” esté habilitado en un servidor de autenticación basado en FreeRADIUS.

Ejemplo de configuración EAP de FreeRADIUS (/etc/freeradius/3.0/mods-enabled/eap):

use_tunneled_reply = yes
NOTA: use_tunneled_reply está habilitado por defecto en la configuración del USG.

El dispositivo cliente tiene un tiempo de espera de autenticación

1. Verifica con tcpdump en el dispositivo UniFi si el servidor RADIUS está respondiendo a la solicitud RADIUS.

1.1. Usa el siguiente comando en una sesión SSH en un dispositivo UniFi:

sudo tcpdump -npi eth0 port 1812

La transacción descrita en el diagrama de red anterior debería tener lugar. Si se devuelve el radius-accept, continúa con los pasos a continuación.


Solución de problemas de 802.1X cableado en el USW


Este proceso permitirá a un administrador de UniFi ver la interacción paquete por paquete entre el autenticador (switch) y el servidor RADIUS.

Autenticación

1. Usa el siguiente comando en el Terminal de depuración o Cliente SSH

sudo tcpdump -npi eth0 port 1812 -vv

2. Conecta un dispositivo cliente compatible con 802.1X.

3. Observa la salida.

  1. Si el proceso RADIUS termina con un mensaje de aceptación del servidor RADIUS, el cliente estará autorizado para enviar tráfico en la red.
  2. Si los mensajes RADIUS expiran, verifica si hay conectividad entre el USW y el servidor RADIUS. Comprueba si hay firewalls bloqueando el puerto 1812 y la conectividad básica entre el USW y el servidor RADIUS.
  3. Si el proceso RADIUS termina con un mensaje de rechazo del servidor RADIUS, asegúrate de que el dispositivo cliente esté usando las credenciales correctas.

Contabilización

La contabilización solo ocurre después de que la autenticación sea exitosa.

ATENCIÓN: Cuando se usa el USG como servidor RADIUS, la contabilización no está habilitada.
sudo tcpdump -npi eth0 port 1813 -vv

1. Usa el siguiente comando en el Terminal de depuración o Cliente SSH

Comandos útiles desde el Terminal de depuración o Cliente SSH

ATENCIÓN: Para ingresar estos comandos primero debes escribir telnet localhost seguido de enable en el CLI. Ejemplo a continuación.
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 clave

show radius

Haz clic aquí para expandir las definiciones de salida

show radius servers

Haz clic aquí para expandir las definiciones de salida

show radius statistics

Haz clic aquí para expandir las definiciones de salida

**show dot1x authentication-history <slot/port number> **

Haz clic aquí para expandir las definiciones de salida

show dot1x clients {slot/port | all}

Haz clic aquí para expandir las definiciones de salida


Solución de problemas de 802.1X inalámbrico en el UAP


Autenticación

1. Usa el siguiente comando en el Terminal de depuración o Cliente SSH

sudo tcpdump -npi eth0 port 1812 -vv

2. Conecta un dispositivo cliente compatible con 802.1X.

3. Observa la salida.

  1. Si el proceso RADIUS termina con un mensaje de aceptación del servidor RADIUS, el cliente estará autorizado para enviar tráfico en la red.
  2. Si los mensajes RADIUS expiran, verifica si hay conectividad entre el UAP y el servidor RADIUS. Comprueba si hay firewalls bloqueando el puerto 1812 y la conectividad básica entre el UAP y el servidor RADIUS.
  3. Si el proceso RADIUS termina con un mensaje de rechazo del servidor RADIUS, asegúrate de que el dispositivo cliente esté usando las credenciales correctas.

Contabilización

La contabilización solo ocurre después de que la autenticación sea exitosa.

ATENCIÓN: Cuando se usa el USG como servidor RADIUS, la contabilización no está habilitada.

1. Usa el siguiente comando en el Terminal de depuración o Cliente SSH

sudo tcpdump -npi eth0 port 1813 -vv

Registros

Establecer el nivel de registro del dispositivo en debug puede ayudar a diagnosticar problemas con el UAP fuera de las capturas de paquetes. Navega a Settings > Maintenance > Log Level si deseas cambiar esa configuración.

Solución de problemas de autenticación RADIUS en el USG


CLI: Accede a la interfaz de línea de comandos (CLI). Puedes hacerlo usando un programa cliente SSH.

Esta sección cubrirá métodos para solucionar problemas de autenticación RADIUS en el UniFi Security Gateway.

USG como servidor RADIUS

Visualización de los registros de FreeRADIUS

sudo cat /var/log/freeradius/radius.log

Este comando mostrará los registros desde el inicio del proceso, los intentos de autenticación junto con los fallos, y cualquier problema asociado con el servicio.

Ejecución en primer plano

Este comando en SSH iniciará FreeRADIUS en primer plano en el USG. Permitirá ver los eventos impresos en la consola en tiempo real.

NOTA: El comando radtest usado a continuación no funcionará con 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 hacia un servidor de autenticación de terceros

Usa “radtest” para enviar un mensaje de autenticación de prueba a un servidor RADIUS de terceros.

**#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"

Si se recibe una respuesta del servidor de autenticación, esto demuestra que la autenticación está funcionando correctamente. Si no se recibe respuesta, asegúrate de que el servidor de autenticación esté en línea y pueda procesar mensajes de solicitud de acceso desde la IP del autenticador.