Configurar sudo con RADIUS para autenticación de dos factores
Objetivo y variantes de búsqueda
- Integrar RADIUS en sudo para 2FA
- 2FA sudo CentOS 7
- pam_radius Ubuntu 14.04
- Autenticación de dos factores para cuentas administrativas
- WiKID/FreeRADIUS con sudo
Introducción breve
Los atacantes suelen aprovechar credenciales perdidas, robadas o débiles para escalar privilegios. La autenticación de dos factores (2FA) disminuye el riesgo aunque existan otros vectores como malware. Integrar RADIUS con PAM permite separar autorización (en su directorio) y autenticación 2FA (en un servidor específico). Si ya usas un directorio central, esta configuración encaja bien con buenas prácticas de seguridad.
Configurar sudo en CentOS/RHEL para autenticación de dos factores
Comenzaremos en RHEL/CentOS 7. Instala los paquetes previos:
sudo yum -y install make gcc pam pam-devel
Descarga el código PAM RADIUS (1.4 en el momento de la redacción):
wget ftp://ftp.freeradius.org/pub/radius/pam_radius-x.x.x.tar.gz
Compila la librería:
tar -xzvf pam-radius-x.x.x.tar.gz
cd pam-radius-x.x.x
sudo ./configure
sudo make
Copia la librería al directorio correcto (32/64 bits según corresponda):
cp pam_radius_auth.so /lib/security/
O para 64 bits:
cp pam_radius_auth.so /lib64/security/
Crea la carpeta de configuración y copia el archivo de configuración como ‘server’:
sudo mkdir /etc/raddb
cp pam_radius_auth.conf /etc/raddb/server
Edita /etc/raddb/server y añade la IP de tu servidor RADIUS y la clave compartida:
# server[:port] shared_secret timeout (s)
127.0.0.1 secret 1
radius_server_IP secret 3
#
# tener localhost en tu configuración RADIUS es una buena práctica.
Nota: puedes probar apuntando a tu servidor WiKID como servidor RADIUS. Añade este equipo como cliente de red en WiKID, reinicia WiKID y verifica. Haz pruebas pequeñas y borra las pruebas cuando termines.
A continuación, indica a sudo que use RADIUS. Edita /etc/pam.d/sudo y reemplaza la línea que contiene “auth include system-auth” por:
auth required pam_radius_auth.so
Eso es todo para CentOS/RHEL 7. La misma idea funciona en 5 y 6 con adaptaciones menores.
Configurar sudo en Ubuntu para autenticación de dos factores
En Ubuntu 14.04 instala pam-radius con apt:
sudo apt-get install libpam-radius-auth
Configura /etc/pam_radius_auth.conf igual que en CentOS:
# server[:port] shared_secret timeout (s)
127.0.0.1 secret 1
radius_server_IP secret 3
#
# tener localhost en tu configuración RADIUS es una buena práctica.
Edita /etc/pam.d/sudo y añade la línea de pam_radius antes de la inclusión de common-auth:
auth required pam_env.so readenv=1 user_readenv=0
auth required pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
auth sufficient pam_radius_auth.so
@include common-auth
@include common-account
@include common-session-noninteractive
A partir de ahora, cuando un administrador ejecute sudo, deberá introducir su contraseña y el código OTP. PAM enviará el nombre de usuario y el OTP al servidor RADIUS o al servidor WiKID para su validación.
Pruebas y criterios de aceptación
- Prueba básica: desde otra sesión SSH, intenta usar sudo y confirma que se solicita el OTP.
- Criterio 1: usuarios válidos con OTP válido obtienen privilegios sudo.
- Criterio 2: usuarios válidos con OTP inválido no obtienen privilegios.
- Criterio 3: si el servidor RADIUS no responde, el comportamiento debe ser conocido (rechazo o fallback según configuración). Documenta la respuesta esperada.
Cuándo puede fallar
- Latencia o pérdida de conectividad al servidor RADIUS provoca fallos en autenticación.
- Clave compartida (shared_secret) incorrecta dará rechazos constantes.
- Configuración PAM incorrecta puede bloquear sudo; prueba con una sesión separada antes de cerrar la actual.
- Si pam_radius está instalado pero la librería no está en el path correcto, PAM fallará en cargar el módulo.
Importante: antes de desplegar, mantén una sesión con root abierta para poder revertir cambios si te bloqueas.
Enfoques alternativos
- Usar un servidor RADIUS gestionado en la nube compatible con PAM.
- Implementar directamente autentificación RADIUS en el directorio (si el servidor de directorio lo soporta).
- Utilizar hardware tokens U2F/WebAuthn para sudo con módulos PAM que soporten esas tecnologías.
Pequeña metodología de implementación (playbook rápido)
- Configurar un entorno de pruebas idéntico.
- Instalar pam_radius y compilar en pruebas.
- Configurar RADIUS y registrar el host como cliente.
- Ajustar /etc/pam.d/sudo e implementar regla mínima (no destruir common-auth hasta validar).
- Probar casos de éxito y fallo.
- Implementar en producción fuera de horas pico y con rollback planificado.
Lista de verificación por rol
- Administrador de sistemas:
- Hacer backup de /etc/pam.d/sudo y /etc/pam.d/common-* antes de editar.
- Mantener una sesión root abierta durante pruebas.
- Equipo de seguridad:
- Revisar logs del servidor RADIUS para errores de autenticación.
- Validar políticas de bloqueo de OTP y bloqueo de cuenta.
- Soporte/Helpdesk:
- Preparar procedimiento para reset de tokens y verificación de identidad.
Hardening y mitigaciones de riesgos
- Usa TLS/DTLS entre clientes RADIUS y servidor si está disponible (o VPN) para proteger el shared_secret.
- Rotar claves compartidas periódicamente y registrar cambios.
- Limitar IPs de clientes RADIUS a las necesarias.
- Habilitar alertas ante múltiples fallos de autenticación.
Glosario (1 línea cada término)
- RADIUS: protocolo de autenticación, autorización y contabilidad centralizada.
- PAM: Pluggable Authentication Modules, sistema modular de autenticación en Linux.
- OTP: contraseña de un solo uso (One-Time Password).
- WiKID: servidor de autenticación fuerte que puede actuar como backend RADIUS.
Casos de prueba adicionales
- Usuario con password correcto y OTP correcto => éxito.
- Usuario con password correcto y OTP incorrecto => rechazo.
- Conexión RADIUS caída => comportamiento documentado (rechazo o fallback).
- Intento de explotación con token repetido => debe registrarse y alertarse.
Resumen
Usar RADIUS con pam_radius para sudo añade una capa de 2FA para privilegios administrativos. Centraliza la autenticación y permite que la autorización permanezca en el directorio. Haz pruebas en un entorno controlado, mantén un plan de reversión y protege la comunicación con el servidor RADIUS.
Importante: la autenticación de dos factores reduce riesgo, pero no sustituye otras buenas prácticas (parches, monitoreo, least privilege).
Materiales similares

Ver anime gratis en iPhone: apps y sitios seguros

ChatGPT y Spotify: crear playlists y buscar canciones

Instalar ONLYOFFICE con Docker en Linux
Solucionar agotamiento de batería en iPhone iOS 26

Recortar imágenes en Word, Excel y PowerPoint
