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