Implementación de Autenticación en Dos Pasos (2FA) en Linux con Google Authenticator

Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

La autenticación en dos pasos (2FA) añade una capa extra de seguridad al proceso de inicio de sesión, reduciendo el riesgo de accesos no autorizados incluso si la contraseña es comprometida. En este artículo se detalla cómo implementar 2FA en un sistema Linux para acceso SSH utilizando Google Authenticator.

1. Instalación de Google Authenticator

En sistemas basados en Debian/Ubuntu, el paquete necesario se instala desde los repositorios oficiales.
Primero, actualizamos la lista de paquetes:

sudo apt update

Después, instalamos el módulo PAM de Google Authenticator:

sudo apt install libpam-google-authenticator

Este módulo se integrará con el sistema de autenticación de Linux para requerir un código temporal adicional al iniciar sesión.

2. Configuración del usuario para 2FA

Cada usuario que requiera 2FA debe ejecutar el comando:

google-authenticator

Durante este proceso, se generará un código QR que deberá escanearse con la aplicación Google Authenticator o cualquier otra app compatible (Authy, Microsoft Authenticator, etc.).

El asistente preguntará:

  • Si quiere que los tokens sean basados en tiempo (TOTP). Recomendado: Sí.
  • Si quiere actualizar el archivo de configuración (~/.google_authenticator).
  • Si quiere limitar el uso de un mismo código a una vez.
  • El tiempo de tolerancia para evitar problemas de sincronización.

3. Edición de la configuración de SSH

Para que SSH requiera el código 2FA, es necesario modificar el archivo PAM y la configuración del demonio SSH.

Editar el archivo PAM

Abrir el archivo PAM de SSH:

sudo nano /etc/pam.d/sshd

Añadir la siguiente línea al final (o asegurarse de que esté activa):

auth required pam_google_authenticator.so

Habilitar ChallengeResponseAuthentication

En el archivo de configuración de SSH:

sudo nano /etc/ssh/sshd_config

Asegurarse de que las siguientes líneas estén configuradas:

ChallengeResponseAuthentication yes
PasswordAuthentication yes
UsePAM yes

Si se usa autenticación con clave pública más 2FA, se debe ajustar AuthenticationMethods:

AuthenticationMethods publickey,keyboard-interactive

4. Reinicio del servicio SSH

Aplicar los cambios reiniciando el servicio:

sudo systemctl restart ssh

5. Prueba de autenticación

Para verificar el correcto funcionamiento, iniciar sesión por SSH:

ssh usuario@servidor

El sistema pedirá primero la contraseña (o validará la clave pública) y luego solicitará el código de verificación temporal que se muestra en Google Authenticator.

Beneficios de esta configuración

  • Mayor seguridad: incluso si una contraseña es filtrada, el atacante necesitará el código temporal.
  • Implementación rápida: se configura en minutos.
  • Compatibilidad: funciona con cualquier app TOTP.

Compartir:

Binario 0
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.