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
Para configurarlo, debemos editar los siguientes ficheros:
- En el fichero /etc/pam.d/sshd. Añadir auth required pam_google_authenticator.so al final del fichero.
- 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:
- 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
- Debemos añadir el nuevo perfil de autenticación en nuestra aplicación de móvil:
- 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..)».
- 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:.
- 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.
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.