lunes, 8 de noviembre de 2021

Segundo factor de autentificación para SSH

 Tengo configurado un acceso SSH a mi equipo, con una contraseña que creo robusta, sin acceso a ROOT, en un puerto no convencional, usando fail2ban… Parece seguro, pero no lo es del todo y he decidido ponerle una capita más de seguridad utilizando un servicio de doble factor de autentificación o 2FA.

Lo que voy a hacer es utilizar el servicio Google Authenticator. Básicamente, este servicio pide que además de mi contraseña de acceso habitual, tenga que introducir una clave temporal que me aparecerá en mi teléfono instalando la aplicación Google Authenticator.


El primer paso es hacer las instalaciones. En el teléfono tendré que instalar la aplicación desde la tienda oficial. Se instala como una aplicación más, por lo que no hay que preocuparse en este paso.

Ahora vamos a instalar libpam-google-authenticator en nuestro pc. Es un programa que está en los repositorios. Solo necesitamos un par de clics en Synaptic o un simple comando en la terminal.

  • sudo apt-get install libpam-google-authenticator

Y ahora, ten tu teléfono a mano y ejecuta en una terminal, del usuario que va a acceder por SSH el programa que acabamos de instalar.

  • google-authenticator

Te pedirá autorización para realizar algunas actuaciones y después, te mostrará un código QR que debes escanear con tu móvil desde la aplicación Google Authenticator que instalaste previamente. Una vez escaneado el código, la aplicación te responderá con un número de seis dígitos que debes introducir en la terminal y se acabará el proceso de sincronización no sin antes pedirte unos nuevos permisos que debes conceder.

Debajo del QR aparecerán una serie de códigos de emergencia de un solo uso que te permitirán acceder sin el código que te aporta el móvil. Guárdalos bien, te permitirán usar tu conexión SSH si no tienes a mano tu teléfono.


Sincronizado ordenador y móvil, ya solo nos queda hacer un par de configuraciones. Primero configuraremos el módulo SSH y luego PAM.

Empezamos editando sshd_config

  • sudo nano /etc/ssh/sshd_config

Ahora busca y modifica las siguientes líneas para que tengan la opción “yes”

UsePAM yes
 ChallengeResponseAuthentication yes

Guarda los cambios y ahora editaremos la configuración de PAM

  • sudo nano /etc/pam.d/sshd

Aquí buscamos la línea @include common-auth y añadimos debajo

auth required pam_google_authenticator.so

Guardamos aquí también los cambios y reiniciamos el servicio SSH

  • sudo systemctl restart ssh

Y ya hemos hecho todo el trabajo. Ahora, cuando tratemos de acceder por SSH, se nos pedirá la contraseña, como siempre y después el segundo factor de autentificación, que obtendremos con solo abrir la aplicación Google Authenticator en nuestro móvil, aunque no tenga conexión.


No hay comentarios:

Publicar un comentario

prekes sodui