Hola a todos. Espero que est茅is todos bien. Vamos al l铆o.

El servicio SSH es uno de los m谩s utilizados para administrar nuestras m谩quinas. Cuando este servicio est谩 expuesto 24/7 a Internet es muy probable que sea analizado continuamente, sufriendo as铆 varios intentos de acceso.

Existen diversas t茅cnicas para fortificar este servicio, como hacer uso de port knocking y dem谩s. Sin embargo, en este post se explica c贸mo a帽adir el segundo factor de autenticaci贸n a este servicio. Para ello, necesitamos de:

  • Privilegios de superusuario en nuestra m谩quina Linux.
  • El servicio SSH instalado previamente.
  • Un smartphone son S.O. Android o IOS.

Instalaci贸n

Lo que vamos a hacer es instalar un m贸dulo PAM. Este modulo PAM, desarrollado por Google, es el encargado de a帽adir dicha funcionalidad al servicio. En esta ocasi贸n se hace uso de una m谩quina con el S.O. Ubuntu Server 20.04.2 LTS instalado.

A modo de super resumen, un m贸dulo PAM es una librer铆a que se configura en servicios que requieran de autenticaci贸n de usuarios. En est谩s librerias se especifica qu茅 directrices deben seguir estos servicios para autenticar a los usuarios.

Por tanto, procemos a instalar el m贸dulo PAM libpam-google-authenticator ejecutando el siguiente comando:

sudo apt install libpam-google-authenticator

Al ejecutar el comando, vemos que tambi茅n se instala un paquete llamado libqrencode4. Este permite crear c贸digos QR en la propia terminal.

Configuraci贸n

Llegados a este punto, solo nos queda configurar el m贸dulo. Para ello, debemos modificar el fichero /etc/pam.d/sshd, que es donde se encuentra la configuraci贸n de los m贸dulos PAM que afectan al servicio SSH, a帽adiendo la siguiente l铆nea:

auth required pam_google_authenticator.so

A帽adida esta l铆nea, debemos de asegurarnos de que en la configuraci贸n del servicio SSH, en el fichero /etc/ssh/sshd_config, el par谩metro ChallengeResponseAuthentication est谩 configurado a 芦Yes芦. De no ser as铆, debemos cambiar el valor.

Una vez modificados los ficheros, reiniciamos el servicio.

sudo systemctl restart sshd.service

Con esto hemos terminado con la configuraci贸n del servicio. Ahora toca configurar el usuario que va a hacer uso del servicio SSH para acceder a la m谩quina.

Configuraci贸n del usuario

Por tanto, iniciamos sesi贸n con el usuario deseado. Con este usuario debemos ejecutar el siguiente comando:

google-authenticator

Al hacerlo, el programa nos har谩 una serie de prenguntas. En todas ellas debemos de indicar que s铆 con 芦y禄, a excepci贸n de la pen煤ltima pregunta. A esta le diremos que no con 芦n禄 o 芦no禄 directamente. Esta configuraci贸n es la que se recomienda en la documentaci贸n oficial de Ubuntu en este caso. A continuaci贸n, se muestran im谩genes del proceso:

Segundo factor de autenticaci贸n- ssh
Figura 1.1: QR
Figura 1.2: Preguntas
Figura 1.2: Resto de preguntas

Como podemos ver, en la figura 1.1 ya nos muestra por pantalla el c贸digo QR con el que podremos vincular la cuenta con la aplicaci贸n de nuestro smartphone junto con la clave secreta. En la imagen siguiente, la 1.2, podemos ver se帽alada con una flecha la pregunta a la que debemos decir que no. Al decirle en esa pregunta que no, acotamos el n煤mero de tokens v谩lidos a 3. Es decir, el previo, el actual y el siguiente. Esto es as铆 por posibles problemas de sincronizaci贸n, ya que este proceso est谩 basado en tiempo y por defecto se genera un token nuevo cada 30 segundos.

En la figura 1.2, tambi茅n podemos ver un trozo de la imagen destacado con un cuadro rojo. En 茅l, podemos ver el c贸digo de verificaci贸n a utilizar en caso de no querer/poder hacer uso del c贸digo QR. Por otro lado, se encuentran los c贸digos de recuperaci贸n de emergencia. Estos c贸digos los debemos almacenar bajo llave, ya que esos c贸digos ser谩n siempre v谩lidos. Esto es as铆 porque si la cuenta del smartphone se desvincula por el motivo que sea, no podremos acceder si no hacemos uso de estos c贸digos de emergencia.

Configuraci贸n del smartphone

Hecho todo esto, solamente nos queda ir a nuestro smartphone y descargar la aplicaci贸n Google Authenticator con la que leeremos el c贸digo QR o a帽adiremos la clave. A continuaci贸n, se facilitan los enlaces seg煤n S.O.:

Si es la primera vez que utilizamos dicha aplicaci贸n, al acceder nos dice de a帽adir una cuenta mediante c贸digo QR o clave. Si no es la primera vez, simplemente debemos pulsar el simbolo 芦+禄 de la interfaz para a帽adir una nueva cuenta. Al a帽adir la cuenta, autom谩ticamente empieza a generar tokens de acceso.

Por 煤ltimo, la prueba de fuego. Hay que comprobar que efectivamente funciona. Por tanto, ahora al acceder por SSH, tanto si es con clave como con contrase帽a, nos debe preguntar seguidamente el c贸digo de verificaci贸n en dos pasos.

Figura 1.3: Prueba
Figura 1.3: Prueba

Como se ha visto, esta es una manera r谩pida y sencilla de a帽adir una capa m谩s de seguridad a este servicio. Es totalmente recomendable, sobretodo si se tiene el servicio expuesto a Internet.

Espero que os sea de utilidad.

隆Saludos y hasta la pr贸xima!

1 Comentario

Comments are closed.