Cómo resolver “A RADIUS message was received from invalid RADIUS client IP” en Duo Authentication Proxy

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.

Índice

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:

  1. Registrar la IP post‑NAT (solución más sencilla).
  2. 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

ServicioPuerto (UDP)DirecciónEstado recomendado
RADIUS autenticación1812 / 1645*Cliente ⇔ ProxyPermitido
RADIUS contabilidad1813 / 1646*OpcionalPermitido 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:

  1. Revisa las release notes para cambios de configuración obligatorios.
  2. Respalda authproxy.cfg y la carpeta log.
  3. 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:

  1. Duplica el perfil de red (IP, subnet, VLAN) en un equipo de pruebas.
  2. Aplica el mismo secreto y compara paquetes con Wireshark.
  3. 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

ElementoVerificaciónResultado esperado
authproxy.cfgIP del cliente declaradaCoincidencia exacta
FirewallPuertos 1812/1813 abiertosPermitido bidireccional
NAT / LB¿Modifica IP?IP conservada o registrada
Secreto RADIUSCotejar en ambos extremosIguales
Versión ProxyComando duoauthproxy --versionÚltima estable
Relojes NTPSkew < 5 minSincró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:

  1. Versión exacta de Duo Proxy (duoauthproxy --version).
  2. Archivo authproxy.cfg (oculta claves).
  3. Últimos registros con debug=true activo.
  4. 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.

Índice