Cuando el servicio Duo Authentication Proxy registra el aviso “A RADIUS message was received from invalid RADIUS client IP”, la autenticación se interrumpe y los usuarios no pueden iniciar sesión. A continuación encontrarás una guía exhaustiva —basada en preguntas frecuentes y en la experiencia de campo— para aislar la causa, corregir la configuración y restablecer de forma fiable tu flujo RADIUS.
Descripción general del error
Duo Proxy compara la dirección IP de origen de cada paquete RADIUS con la lista definida en authproxy.cfg
. Si no existe coincidencia exacta, el proxy descarta la solicitud y deja constancia en el registro. Aunque la alerta alude a una “IP inválida”, el origen real del problema suele ser un desfase de configuración o un elemento de red que altera la cabecera IP.
Principales motivos por los que aparece la alerta
- La IP del dispositivo o aplicación no está declarada en
radiusipx
(radiusip1
,radiusip2
, …). - Existe NAT y la IP que llega al proxy no coincide con la privada configurada en el cliente.
- Un firewall, balanceador o SD‑WAN modifica la dirección de origen.
- Se ha copiado un
authproxy.cfg
antiguo en un servidor nuevo y las subredes cambiaron. - Se migró la aplicación a un contenedor o nodo distinto y la IP cambió pero no se actualizó.
Procedimiento de resolución recomendado
Las acciones se presentan en orden lógico; sin embargo, en entornos complejos conviene revisarlas todas para descartar múltiples factores concurrentes.
Registrar la IP correcta del cliente RADIUS
Abre authproxy.cfg
con un editor que respete el interlineado Unix (por ejemplo, nano
o vim
). Busca el bloque [radiusserverauto]
o [radiusserveriframe]
y confirma que la IP figure en la directiva adecuada.
[radiusserverauto]
ikey=XXXXXXXXXXXXXXXX
skey=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
api_host=api‑xxxxxxxx.duosecurity.com
radiusip1=192.0.2.35 ; DC‑París
radiusip2=198.51.100.70 ; VPN‑Madrid
radiussecret1=SecretoLargo1
radiussecret2=SecretoLargo2
failmode=safe
Buenas prácticas:
- Documenta cada entrada con un comentario que identifique el dispositivo.
- Utiliza
radiusiprange
para rangos contiguos y evita listas extensas de direcciones sueltas. - Tras editar, reinicia el servicio Duo Proxy para aplicar cambios.
Verificar presencia de NAT y definir la IP esperada
Si en el camino existe traductor de direcciones, el proxy verá la IP pública, no la interna del cliente. Existen dos caminos:
- Registrar la IP post‑NAT (solución más sencilla).
- Modificar la regla NAT para que preserve la IP original o haga NAT exemptions hacia el segmento del proxy.
Ante ambientes con balanceo o alta disponibilidad (HA), declara la IP de cada nodo, no solo la virtual. En total, Duo permite hasta 50 entradas; si el diseño supera este límite, agrupa servicios detrás de direcciones compartidas o crea instancias de proxy adicionales.
Comprobar conectividad de red
Una ruta de red inestable o asimétrica puede cortar la sesión antes de que Duo valide el cliente. Ejemplo de verificación:
$ ping 203.0.113.10 # IP del Proxy
$ traceroute 203.0.113.10
$ nc -vz -u 203.0.113.10 1812 # modo UDP con netcat
Si el tráfico se bifurca por interfaces redundantes, comprueba la métrica de rutas y la política de enrutamiento para evitar retornos por una IP inesperada.
Revisar cortafuegos y reglas de seguridad
Servicio | Puerto (UDP) | Dirección | Estado recomendado |
---|---|---|---|
RADIUS autenticación | 1812 / 1645* | Cliente ⇔ Proxy | Permitido |
RADIUS contabilidad | 1813 / 1646* | Opcional | Permitido si se usa Accounting |
*Puertos heredados compatibles con dispositivos legacy.
Revisa tanto la zona de entrada (ingress) como la de salida (egress). Algunos equipos marcan el tráfico RADIUS como “servicio no cifrado” y lo bloquean por defecto.
Validar el secreto compartido
El secreto RADIUS no afecta directamente a la coincidencia de IP, pero suele revisarse al mismo tiempo. Claves largas con caracteres especiales evitan ataques de diccionario, pero recuerda:
- Evita espacios iniciales/finales accidentales al copiar.
- No utilices la misma clave en entornos de prueba y producción.
- Documenta la fecha de última rotación.
Examinar los registros de Duo Proxy
Los archivos authproxy‑YYYY‑MM‑DD.log
(y debug.log
si se habilita debug=true
) muestran la causa exacta. Ejemplo de línea:
Warning: A RADIUS message was received from invalid RADIUS client IP 198.51.100.254
Anota la IP, fecha y hora. Si usas Syslog centralizado, filtra por la cadena invalid RADIUS client IP
para ver tendencias.
Validar la sintaxis de authproxy.cfg
Los errores de indentación son más frecuentes de lo que parece. Recomendaciones:
- Usa
dos2unix
si el archivo se editó en Windows. - Activa la opción “mostrar caracteres invisibles” en tu editor.
- Ejecuta
duoauthproxy‑validate
(incluido en versiones recientes) para analizar la sintaxis antes de reiniciar.
Actualizar a la versión más reciente de Duo Authentication Proxy
Cada lanzamiento incorpora mejoras de rendimiento y correcciones de seguridad. Antes de actualizar:
- Revisa las release notes para cambios de configuración obligatorios.
- Respalda
authproxy.cfg
y la carpetalog
. - Realiza la actualización fuera de la ventana punta de producción.
Probar con una configuración conocida
Si otro dispositivo se autentica sin errores, clónalo en un entorno de laboratorio:
- Duplica el perfil de red (IP, subnet, VLAN) en un equipo de pruebas.
- Aplica el mismo secreto y compara paquetes con Wireshark.
- Aísla variables (por ejemplo, quita el firewall intermedio) para reproducir la falla.
Métodos avanzados de diagnóstico
Captura de tráfico paso a paso
# En el proxy
sudo tcpdump -i eth0 udp port 1812 -nnvvXSs 0 -w radius‑debug.pcap
Analiza el PCAP en Wireshark y busca:
- Source: ¿corresponde a la IP esperada?
- Authenticator: ¿el atributo se autocompleta?
- Error‑Code: filtrado por los paquetes Accounting‑Response.
Si se observa retransmisión (duplicate request detected), podría existir latencia o pérdida en la red.
Correlación de eventos entre dispositivos
Incluye la marca de tiempo del dispositivo cliente, del servidor Duo Proxy y del controlador de dominio. Un skew de reloj superior a 5 min puede generar timeout y confundir la investigación.
Análisis de logs con expresiones regulares
Para extraer rápidamente IPs rechazadas:
grep -Eo "invalid RADIUS client IP [0-9.]{7,15}" authproxy-*.log | sort | uniq -c | sort -nr
Checklist rápido
Elemento | Verificación | Resultado esperado |
---|---|---|
authproxy.cfg | IP del cliente declarada | Coincidencia exacta |
Firewall | Puertos 1812/1813 abiertos | Permitido bidireccional |
NAT / LB | ¿Modifica IP? | IP conservada o registrada |
Secreto RADIUS | Cotejar en ambos extremos | Iguales |
Versión Proxy | Comando duoauthproxy --version | Última estable |
Relojes NTP | Skew < 5 min | Sincrónico |
Preguntas frecuentes de administradores
¿Puedo usar un rango CIDR completo en lugar de varias radiusipx
?
Sí. Desde la versión 5.6 el proxy acepta radiusiprange
con máscaras /24 a /30, lo que simplifica la gestión de impresoras o puntos de acceso que no admiten IP fija.
¿Qué ocurre si supero el límite de 50 clientes?
Implementa instancias adicionales de Duo Proxy —físicas o contenedores— y distribuye cargas por geografía o función (VPN, WLAN, MFD). Alternativamente, concentra equipos detrás de un VIP con source‑preservation.
¿El proxy soporta RADIUS sobre TCP o DTLS?
Hoy solo se admite UDP, alineado con la mayoría de implementaciones empresariales. Si requieres cifrado de transporte, encapsula el tráfico en túneles IPsec o Zero Trust Network Access (ZTNA) y mantén el puerto 1812 interno.
¿Cómo habilito métricas para supervisión proactiva?
Integra duoauthproxy
con Prometheus mediante el módulo prometheus‑exporter
(third‑party no oficial) o parsea los logs y envía métricas a Grafana Loki. Alertas recomendadas:
- Tasa de invalid RADIUS client IP > 0.1 %.
- Latencia de respuesta RADIUS > 2 s.
- Errores de socket UDP > 5 por minuto.
Buenas prácticas preventivas
- Automatiza la generación de
authproxy.cfg
usando plantillas Ansible o Terraform para evitar errores manuales. - Realiza auditorías mensuales: correlación entre inventario de dispositivos y entradas
radiusipx
. - Bloquea cambios directos en el sistema operativo mediante Immutable OS o
chattr +i
al archivo de configuración una vez validado. - Mantén un entorno de prueba que refleje la topología de producción para validar upgrades.
- Incluye el proxy en tus diagramas de red y flujos de autenticación para acelerar la respuesta de primer nivel.
Conclusión
El mensaje “A RADIUS message was received from invalid RADIUS client IP” rara vez indica un fallo grave en Duo Authentication Proxy: suele señalar una discordancia entre la dirección IP que llega y la lista que el administrador declaró como confiable. Siguiendo el procedimiento descrito —verificar la configuración, revisar la presencia de NAT, abrir los puertos correctos y auditar los registros— podrás corregir la causa en minutos y restaurar la autenticación sin impacto prolongado para los usuarios.
Si aun con estos pasos el problema persiste, captura un PCAP y abre un caso de soporte con Duo adjuntando:
- Versión exacta de Duo Proxy (
duoauthproxy --version
). - Archivo
authproxy.cfg
(oculta claves). - Últimos registros con
debug=true
activo. - Esquema de red donde se muestre el flujo del paquete.
La mayoría de los incidentes se resuelven en la primera interacción cuando la información adjunta es completa.