Cómo configurar la autenticación de dos factores (2FA) en un servidor Ubuntu

Índice de Contenido
  1. Qué necesitarás
  2. Cómo instalar el software necesario
  3. Cómo configurar el daemon de SSH para 2FA
  4. Cómo habilitar 2FA con Autenticación de Clave SSH

Qué necesitarás

  • Una instancia en ejecución de Ubuntu Server 22.04.
  • Un usuario con privilegios de sudo.

Cómo instalar el software necesario

Lo primero que debes hacer es instalar un paquete: Google Authenticator. Esta es una herramienta de línea de comandos que permite agregar autenticación de dos factores en tu servidor.

Inicia sesión en tu instancia de Ubuntu y ejecuta el siguiente comando:

sudo apt-get install libpam-google-authenticator -y

A continuación, debes ejecutar el comando para crear una clave secreta. Ese comando es:

google-authenticator

Se te preguntará si deseas que los tokens de autenticación sean basados en el tiempo, a lo cual debes responder "y" y presionar Enter en tu teclado. Luego se te mostrará un código QR que puede ser escaneado por tu aplicación de 2FA.

Aquí hay un detalle importante: si estás conectado directamente a la terminal de la máquina física en cuestión, es posible que no puedas ver el código completo. Lo mejor es iniciar sesión a través de SSH para poder redimensionar la terminal y ver el código QR completo (Figura A).

Figura A

Escanear el código QR con tu aplicación de 2FA (como Authy) o ingresar la clave secreta si el código es demasiado grande para que la aplicación lo escanee y presionar enter. Luego se te pedirá que ingreses el código de la aplicación para confirmar la cuenta. Una vez confirmado, verás los códigos de emergencia para 2FA. Asegúrate de copiarlos y guardarlos en un lugar seguro, como un administrador de contraseñas, y luego responder "y" cuando se te solicite actualizar el archivo ~/.google_authenticator. Luego se te pedirá que rechaces el uso múltiple del mismo token de autenticación. Continúa respondiendo "y" para aceptarlo, ya que esto puede ayudar a prevenir ataques de intermediarios. Cuando se te solicite, responde "y" a la última pregunta para permitir una diferencia de tiempo de hasta 30 segundos entre el servidor de autenticación y el cliente.

También querrás habilitar el límite de intentos de inicio de sesión cuando se te solicite respondiendo "y", lo cual limita a los atacantes a no más de tres intentos de inicio de sesión cada 30 segundos.

Cómo configurar el daemon de SSH para 2FA

Ahora que 2FA está instalado y configurado, también tenemos que configurar el daemon de SSH para que lo utilice. Abre el archivo de configuración del daemon de SSH con:

sudo nano /etc/ssh/sshd_config

Primero, busca la siguiente línea y asegúrate de que esté configurada como "yes":

UsePAM yes

A continuación, busca la siguiente línea y cambia "no" por "yes":

KbdInteractiveAuthentication no

Guarda y cierra el archivo.

Nota: En versiones anteriores a la 22.04 de Ubuntu, la línea anterior será:

ChallengeResponseAuthentication yes

A continuación, abre el archivo de configuración de PAM con:

sudo nano /etc/pam.d/sshd

Después de la línea "@include common-auth", agrega la siguiente línea:

auth required pam_google_authenticator.so

Guarda y cierra el archivo.

Reinicia el daemon de SSH con:

sudo systemctl restart sshd

A continuación, abre una nueva ventana de terminal e intenta iniciar sesión en la máquina remota. Primero se te pedirá la contraseña de usuario y luego se te solicitará el código de 2FA. Al escribir correctamente el código de 2FA, se te permitirá el acceso al servidor.

Cómo habilitar 2FA con Autenticación de Clave SSH

Si utilizas la autenticación de clave SSH (y deberías hacerlo), hay un paso adicional que debes seguir. En el servidor, abre el archivo de configuración del daemon de SSH con:

sudo nano /etc/ssh/sshd_config

Al final de ese archivo, agrega la siguiente línea:

AuthenticationMethods publickey,keyboard-interactive

Guarda y cierra el archivo.

Reinicia SSH con:

sudo systemctl restart sshd

Una vez que hayas verificado que la autenticación de clave SSH funciona, puedes deshabilitar la autenticación de contraseña abriendo la configuración de SSH con:

sudo nano /etc/ssh/sshd_config

Busca la siguiente línea:

PasswordAuthentication yes

Cambia eso por:

PasswordAuthentication no

Reinicia SSH con:

sudo systemctl restart sshd

Felicidades, acabas de configurar Ubuntu Server 22.04 para un proceso de inicio de sesión SSH mucho más seguro. Solo asegúrate de que al hacer esto estás probando a través de una segunda ventana de terminal, para poder permanecer conectado a la original en caso de que algo salga mal (y puedas restablecer las configuraciones). Disfruta de esa capa adicional de seguridad.

Aprende más sobre Ubuntu con el paquete The Mastering Linux Development Bundle en Newsmatic Academy.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Seguridad, allí encontraras muchos artículos similares a Cómo configurar la autenticación de dos factores (2FA) en un servidor Ubuntu , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.