Guía de tecnologías

Configurar sudo con RADIUS para autenticación de dos factores

5 min read Seguridad Linux Actualizado 19 Oct 2025
Sudo con RADIUS para 2FA en CentOS 7 y Ubuntu 14.04
Sudo con RADIUS para 2FA en CentOS 7 y Ubuntu 14.04

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)

  1. Configurar un entorno de pruebas idéntico.
  2. Instalar pam_radius y compilar en pruebas.
  3. Configurar RADIUS y registrar el host como cliente.
  4. Ajustar /etc/pam.d/sudo e implementar regla mínima (no destruir common-auth hasta validar).
  5. Probar casos de éxito y fallo.
  6. 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).

Autor
Edición

Materiales similares

Ver anime gratis en iPhone: apps y sitios seguros
Entretenimiento

Ver anime gratis en iPhone: apps y sitios seguros

ChatGPT y Spotify: crear playlists y buscar canciones
Música

ChatGPT y Spotify: crear playlists y buscar canciones

Instalar ONLYOFFICE con Docker en Linux
Instalación

Instalar ONLYOFFICE con Docker en Linux

Solucionar agotamiento de batería en iPhone iOS 26
Soporte

Solucionar agotamiento de batería en iPhone iOS 26

Recortar imágenes en Word, Excel y PowerPoint
Productividad

Recortar imágenes en Word, Excel y PowerPoint

Bloqueo iOS 9: proteger contactos y fotos
Seguridad Móvil

Bloqueo iOS 9: proteger contactos y fotos