Las conexiones SSH nos permiten conectarnos a un terminal remoto desde cualquier lugar, por ejemplo, para controlar y administrar nuestro servidor personal. Nosotros debemos conocer la contraseña para conectarnos, sin embargo, es posible que usuarios no autorizados puedan atacar nuestro servidor por fuerza bruta u otros ataques consiguiendo la clave de acceso y pudiendo tomar el control del mismo, atentando contra nuestra seguridad y privacidad.

A parte de una correcta configuración y una contraseña fuerte y compleja, podemos aplicar capas de seguridad adicionales para proteger nuestro equipo. Una de estas capas es instalar y configurar la autenticación en dos pasos con Google Authentication de manera que, al igual que en Gmail y otras plataformas, necesitemos de la correspondiente clave para conectarnos a nuestro servidor remoto.

Instalar las dependencias y el software necesario para ejecutar Google Authenticator

Lo primero que debemos hacer es instalar una serie de dependencias necesarias para poder configurar la doble autenticación en nuestro servidor SSH. Para ello abriremos un terminal y teclearemos:

sudo apt install libpam0g-dev make gcc wget ssh

Servidor ssh google authenticator tutorial foto 1Una vez que las dependencias están instaladas en nuestro sistema ya podemos descargar el software para la doble autenticación. Para ello en el mismo terminal utilizaremos apt o apt-get para descargar el código desde su página web principal.

sudo apt install libpam-google-authenticator

Listo. Ya tenemos instalado Google Authenticator en nuestro sistema operativo. Los siguientes pasos a seguir son la configuración de la herramienta para poderla utilizar en nuestro SSH.

Configurar Google Authenticator

Para comenzar con la configuración de Google Authenticator simplemente debemos teclear en el terminal:

google-authenticator

A continuación veremos un sencillo asistente desde el terminal. Lo primero que nos preguntará es si queremos que nuestros tokens de acceso estén basados en el tiempo. Seleccionamos que sí y continuamos.

Servidor ssh google authenticator tutorial foto 3Veremos a continuación nuestra clave privada, la clave de verificación y los códigos de recuperación. Debemos guardar todos estos datos de forma segura de manera que podamos recuperar el acceso en caso de pérdida de la clave de autenticación.

Seguimos con el asistente, le permitimos que no guarde los cambios en el archivo de nuestra carpeta /home y nos preguntará si queremos que cada token sea utilizado una única vez, aunque eso limite a un inicio de sesión cada 30 segundos. Para protegernos frente a posibles ataques MITM seleccionamos que sí y continuamos.

Igualmente nos preguntará si queremos ampliar el periodo de validez de cada código. Esto nos evitará problemas de sincronización entre nuestro servidor y nuestro smartphone a la hora de calcular los códigos, por lo que es recomendable habilitarla. Para evitar ataques de fuerza bruta también podemos limitar las conexiones a 3 por cada 30 segundos.

Servidor ssh google authenticator tutorial foto 4Una vez finalizado esto ya tendremos Google Authenticator configurado y listo para empezar a proteger nuestras conexiones.

Configurar nuestro servidor OpenSSH para utilizar Google Authenticator

El siguiente paso que debemos hacer es abrir el fichero de configuración de “sshd” para indicarle que utilice este módulo para el inicio de sesión. Para ello podemos hacer un “clear” para limpiar el terminal y teclear en él:

sudo nano /etc/pam.d/sshd

Y añadiremos al final del fichero la siguiente línea:

auth required pam_google_authenticator.so

Guardamos los cambios y abrimos el fichero sshd_config con el siguiente comando:

sudo nano /etc/ssh/sshd_config

Y cambiamos la línea “ChallengeResponseAuthentication no” por “ChallengeResponseAuthentication yes”.

Servidor ssh google authenticator tutorial foto 5

Reiniciamos el servidor con “sudo service ssh restart” y una vez que vuelva a arrancar, ya tendremos la autenticación en dos pasos o doble autenticación habilitada.

Configurar la clave de acceso en nuestro cliente de Google Authenticator

Dependiendo del cliente que utilicemos (Authy, el cliente oficial de Google Authenticator, etc) el proceso puede variar, pero se resume principalmente en crear una nueva cuenta donde los datos debemos copiarlos manualmente (ya que por defecto no contamos con un código QR como en otras plataformas). Debemos introducir un nombre para nuestro servidor (SSH, por ejemplo) y la “Secret Key” que obtuvimos en el primer paso de la configuración de Google Authenticator.

Probar el servidor

Para probar el servidor podemos conectarnos desde un ordenador o dispositivo remoto y ver que sin la clave no nos funciona, aunque es mucho más rápido, especialmente a nivel de prueba, teclear en el terminal: “ssh 127.0.0.1” y probar una conexión ssh local.

Servidor ssh google authenticator tutorial foto 6Como podemos ver, para poder conectarnos nos pide dos claves: la contraseña del usuario que va a conectarse al servidor SSH y la clave de la doble autenticación que sólo podremos obtener desde nuestro smartphone o dispositivo equivalente.

Para finalizar queremos recomendar Authy como cliente de Google Authenticator ya que aporta una gran de mejoras tanto en la interfaz como en las funciones que el cliente oficial de Google, por ejemplo, sincronización de las claves en la nube asociadas a nuestro número de teléfono (para no perder el acceso en caso de pérdida o robo) y protección de acceso a las mismas con un pin (para evitar que usuarios no autorizados puedan abrir Authy).

Publicado por Rubén Velasco el 24 Febrero 2015 , actualizado el 25 Julio 2017

Últimos análisis

Valoración RZ
10
Valoración RZ
7
Valoración RZ
9
Valoración RZ
10
Valoración RZ
8
Valoración RZ
10
Valoración RZ
9
Valoración RZ
9
Valoración RZ
10