Mi Blog
Cómo activar el doble factor de autenticación en SSH

Cómo activar el doble factor de autenticación en SSH

(10 votos)

¿Quieres proteger tu servidor SSH con autenticación de dos factores fácil de usar? Google proporciona un sencillo software para integrar el sistema de contraseña de un solo uso (TOTP) de Google Authenticator con GNU/Linux y si su servidor de SSH. Todo el trabajo de la autenticación ocurre en el propio servidor SSH y nuestro smartphone. Además, Google Authenticator es código abierto, con lo que podremos revisar el código si no estamos seguro de lo que estamos utilizando.

Seguid leyendo y os enseñaré a proteger vuestros equipos gracias a Google Authenticator y 2FA...

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

¿QUÉ ES 2FA?

2FA son las siglas de "Two Factor Authentication", o autenticación en dos pasos. También se le llama verificación en dos pasos o identificación en dos pasos. En resumen, identificarte en una cuenta de usuario utilizando dos pasos en vez de uno. Esto significa añadir un paso más al proceso de escribir tu nombre de usuario o correo y contraseña, que normalmente es el paso único que sueles necesitar para entrar en una cuenta.

La identificación en dos pasos es un sistema para confirmar que realmente eres tú quien está accediendo a una cuenta. A veces, puede haber filtraciones de contraseñas en Internet, o puedes tener como contraseña el nombre de tu mascota y alguien puede adivinarla. Por eso, cuando se escribas tu nombre y contraseña correcto, es bueno tener una manera de confirmar que quien lo está escribiendo eres tú.

La manera de hacerlo es añadir un segundo paso en el proceso de identificarte en un servicio. De esta manera, cuando escribas correctamente tu nombre de usuario o correo electrónico junto a la contraseña, el servicio donde estás identificándote te pedirá un segundo paso.

Hay varias maneras de realizar la identificación en dos pasos, pero todas ellas tienen algo en común: se busca un método inequívoco para que sólo tú puedas realizarlo. Este método buscará que introduzcas una contraseña o realices un gesto de forma que se pueda saber que tú tienes el control y estás ahí en el ordenador cuando se intenta iniciar la sesión.

 

 

2FA añade una capa extra de seguridad a nuestros equipos

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Equipo con GNU/Linux Debian 10, Ubuntu20 o similares...
  • Acceso a Internet
  • Google Authenticator APP instalada en Android/iOS

 

 

2.- INSTALAR GOOGLE AUTHENTICADOR EN ANDROID/IOS

El primer paso que debemos hacer es instalar la aplicación Google Authenticator en nuestro Smartphone con Android o IOS. Se instala como cualquier aplicación desde la Play Store o la Apple Store:

Google AuthenticatorGoogle Authenticator APP

 

 

3.- INSTALAR GOOGLE AUTHENTICATOR PAM

Para habilitar el mecanismo de 2FA en nuestros equipos con GNU/Linux, debemos instalar el módulo Google Pluggable Authentication Module (PAM). Gracias a este módulo, se genera un token aleatorio cada 30 segundos en otro dispositivo para poder acceder a través de SSH.

Para instalar Google Authenticator en distribuciones basadas en paquetes *.deb, es tan sencillo como ejecutar el siguiente comando:

raul@debian:~$ sudo apt-get install google-authenticator

 

 

4.- GENERAR TOKENS Y QRCODE DE ACCESO

Una vez que hemos instalado Google Authenticator en el equipo al que queremos acceder, ejecutaremos el siguiente comando para generar los Tokens de acceso 2FA para usuario con el que ejecutemos google-authenticator, en este caso el usuario es raul:

raul@debian:~$ google-authenticator

 

 

Se mostrará un pequeño asistente de configuración donde se mostrar un QRCode para ser escaneado y añadir la sesión a nuestro segundo dispositivo (android/ios) de forma rápida. La "secret key" o el "Qrcode", junto a los códigos de recuperación es recomendado guardarlos en un lugar seguro como un Keepass para evitar perderlos:

Google Authenticator

 

 

5.- AÑADIR CUENTA EN GOOGLE AUTHENTICATOR EN SMARTPHONE

Para añadir la configuración de la sesión 2FA en el Smartphone es tan sencillo como escanear el QRCode o introducir a mano la sesión y la "secret key":

Google Authenticator

 

 

6.- CONFIGURAR SSHD PARA GOOGLE PAM

Para activar Google Authenticator en SSH, debemos realizar unos pequeños cambios en algunos ficheros del sistema. Primeramente editaremos el fichero /etc/pamd./sshd, por ejemplo con el editor nano:

raul@debian:~$ sudo nano /etc/pam.d/sshd

 

 

Al final del fichero, añadiremos la siguiente línea (revisar que hemos instalado google-authenticator en pasos anteriores):

auth required pam_google_authenticator.so

 

 

El siguiente fichero a editar es /etc/ssh/sshd_config:

sudo nano /etc/ssh/sshd_config

 

 

Cambiaremos de "no" a "yes" la siguiente línea:

ChallengeResponseAuthentication no

 

 

Línea cambiada:

ChallengeResponseAuthentication yes

 

 

Por último, reiniciaremos el servicio de SSH con el comando siguiente:

raul@debian:~$ sudo systemctl restart sshd.service

 

 

7.- VALIDAR EL DOBLE FACTOR DE AUTENTICACIÓN

Para validar si la autenticación 2FA está funcionando correctamente, accederemos por SSH con el usuario que hemos utilizado para generar los Tokens:

$ ssh Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Password:
Verification code:
Linux debian 5.10.0-17-amd64 #1 SMP Debian 5.10.136-1 (2022-08-13) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Sep 9 11:49:16 2022 from 192.168.1.46
raul@debian:~$

 

 

Como se puede ver, después de pedir el password del usuario, nos pide el "Verification Code" que lo sacaremos de la aplicación Google Authenticator de nuestro Smartphone.

   

 

ENJOY!


Acerca de Mi

RPF

Soy Ingeniero Téc. Industrial Mecánico, Administrador de Sistemas Informáticos, Desarrollador de Aplicaciones Informaticas Web, Técnico Superior en PRL, Experto en Energías Renovables... y trabajo actualmente como Senior DevOPS en HP SCDS.

Contactar conmigo

Dirección: León, España

E-Mail: Contactar

Web: https://www.raulprietofernandez.net

Skype: raul.lnx

APÚNTATE GRATIS

VIP RPF
Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más... ¡Muy Pronto!