Configurar MFA en conexión SSH

En esta ocasión vamos a mejorar la seguridad en nuestros servidores, añadiendo un segundo factor de autenticación en la conexión SSH. Para el laboratorio, utilizaremos Ubuntu 20.04.

Para esto, vamos a seguir los siguientes pasos:

Instalar App Authenticator

Necesitamos instalar una aplicación en nuestro móvil para generar las claves para el segundo factor de autenticación.

Tenemos varias opciones en las tiendas de aplicaciones, pero las más utilizadas son las de Google y Microsoft.

Android:

Apple iOS

Por ahora, solo necesitamos instalar la aplicación sin configurar nada adicional.

Configurar SSH

Primero, debemos instalar el paquete libpam-google-authenticator en nuestra distribución Linux. En mi caso, lo instalaré desde el gestor de paquetes de Ubuntu.

sudo apt install libpam-google-authenticator
sudo apt install libpam-google-authenticator

Para configurarlo, debemos editar los siguientes ficheros:

  1. En el fichero /etc/pam.d/sshd. Añadir auth required pam_google_authenticator.so al final del fichero.
  2. En el fichero /etc/ssh/sshd_config. Modificar el valor ChallengeResponseAuthentication de no a yes.

Una vez realizados estos cambios, debemos reiniciar el servicio ssh con sudo service ssh restart.

Configurar Authenticator

Para generar nuestra clave MFA, debemos ejecutar el comando google-authenticator y el proceso nos hara varias preguntas:

  • Do you want authentication tokens to be time-based (y/n): y
  • Do you want me to update your «/home/hugo/.google_authenticator» file? y
  • Do you want to disallow multiple uses of the same authentication token? y
  • This will permit for a time skew of up to 4 minutes between client and server. Do you want to do so? (y/n) n
  • Do you want to enable rate-limiting? (y/n) y

Una vez finalizado el proceso, debemos tener en cuenta estos dos puntos:

  1. Debemos tomar nota de los códigos generados. Esto nos permitirá recuperar el acceso en caso de perdida del dispositivo (teléfono) que utilicemos para el segundo factor de autenticación.
Your new secret key is: 3MERPJHCZUDLCCCDPZTXXXJMBU
Your verification code is 306263
Your emergency scratch codes are:
  79953418
  79343302
  74351202
  90571800
  69939132
  1. Debemos añadir el nuevo perfil de autenticación en nuestra aplicación de móvil:
    1. Abrimos nuestra aplicación de Authenticator, que hemos descargado en nuestro teléfono móvil, y pulsamos en añadir nuevo perfil. Si nos pregunta, seleccionamos la opción de «Otro (Google, Facebook, etc..)».
    2. Tomamos la foto al código QR que nos ha generado en el terminal. Es posible, que la imagen no se vea bien debido a la configuración de tamaño de nuestro terminal. Si ese es el caso, podéis añadir manualmente introduciendo los datos que hemos obtenido en el campo Your new secret key is:.
    3. Comprobamos, en el listado de perfiles, que se van generando los códigos OTP (contraseñas de un solo uso) de 6 dígitos y estos van cambiando cada 30 segundos.

Una vez finalizado, podemos conectarnos vía SSH a nuestro servidor y, una vez introducido el usuario y la contraseña, se nos solicitara el código de verificación que tenemos generado en nuestra aplicación de autenticación.

MFA en conexion SSH

Con esta configuración, ya tenemos un mayor grado seguridad en el acceso a nuestros servidores, gracias al segundo factor de autenticación en la conexión SSH.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.