Cómo configurar la autenticación de dos pasos en SSH mediante Google Authenticator

google authenticator

El uso de la autenticación de dos pasos es cada vez mayor conforme pasa el tiempo, y es que la seguridad claramente pasa a ser una cuestión de suma importancia en nuestros equipos ya que la cantidad de información que almacenamos en ellos aumenta mes a mes, de manera prácticamente proporcional al tiempo que les dedicamos a todos nuestros dispositivos. Y aunque muchos piensen que una buena contraseña les pone a salvo de problema eso es cierto a medias, ya que ante las entradas que los hackers suelen realizar en muchos sitios poco y nada puede hacerse si se ha obtenido nuestra palabra clave de entrada.

Veamos pues, como añadir autenticación de dos pasos en SSH, algo que nos permitirá ofrecer acceso remoto en forma segura a nuestros servidores, tanto para nosotros como para quienes accedan a sus cuentas, para de esta manera garantizar un nivel de seguridad más acorde. Para quienes no tengan del todo presente este método, decir que consiste en utilizar la contraseña y luego de ello un código que es enviado por una vía diferente (por ejemplo, a nuestro móvil) para que luego lo introduzamos y podamos finalmente acceder a nuestras cuentas.

Una forma relativamente simple de añadir la autenticación de dos pasos es mediante Google Athenticator, la herramienta que la compañía de Mountain View ha lanzado para estos menesteres y que se basa en estándares abiertos como HMAP y además está disponible en varias plataformas, Linux entre ellas. Pero además, dado que existen módulos de PAM para esta herramienta, podemos integrarla en otras soluciones de seguridad como por ejemplo OpenSSH, así que justamente esto es lo que vamos a ver a continuación.

De más está decir que necesitaremos un ordenador con Linux y OpenSSH ya instalado, algo que en Ubuntu realizamos de la siguiente forma:

sudo apt-get install openssh-server

Luego, para la solución móvil vamos a basarnos en Android así que desde luego necesitaremos una tableta o smartphone con el sistema operativo de Google, en el cual instalaremos la herramienta de Google como veremos más adelante. Ahora si, ya estamos listos para comenzar con el procedimiento.

En primer lugar, tenemos que instalar Google Authenticator, algo que en el caso de Ubuntu es tan sencillo como ejecutar lo siguiente en consola:

sudo apt-get install libpam-google-authenticator

Si se nos muestra un error en donde se nos advierte sobre la falta del archivo security/pam_appl.h, podemos solucioanrlo instalando el paquete libpam0g-dev:

sudo apt-get install libpam0g-dev

Ahora que ya tenemos Google Authenticator funcionando, podemos generar la clave de autenticación ejecutando:

google-authenticator

Luego de hacerlo veremos un código QR y una clave de seguridad debajo del mismo (junto al texto ‘Your new secret key is: xxxx’, además de una clave de verificación y de códigos de emergencia, que nos sirven en caso de no disponer en ese momento del dispositivo Android. Respondemos las preguntas que se nos hacen respecto a la configuración del servidor, y si no estamos demasiado seguros podemos responder que si a todas ellas puesto que la configuración por defecto es segura.

Ahora llega el momento de configurar Google Authenticator en Android, para lo cual nos descargamos la aplicación desde Play Store. Al ejecutarla vemos que se nos permite elegir entre ingresar un código de barras o ingresar una clave, para lo cual podemos utilizar el código QR que visualizamos al configurar esta herramienta en el servidor, o bien ingresar la clave alfanumérica. Para esto último seleccionamos la opción ‘ssh authentication’ y después escribimos el código.

Después veremos una pantalla de confirmación, donde se nos explica que el procedimiento ha sido exitoso y que a partir de ese momento podremos obtener los códigos de ingreso en esa aplicación, así que ahora veremos el paso final, que es el de activar Google Authenticator en el servidor SSH. Ejecutamos:

sudo gedit /etc/pam.d/sshd

y añadimos la siguiente línea:

auth required pam_google_authenticator.so

Ahora:

sudo gedit /etc/ssh/sshd_config

Buscamos la opción ChallengeResponseAuthentication y cambiamos su valor a ‘yes’.

Por último reiniciamos el servidor SSH:

sudo service ssh restart

Ya estamos listos, y a partir de ahora podremos ingresar al servidor SSH con autenticación de dos pasos, para lo cual realizamos el procedimiento habitual pero veremos que previo al ingreso de nuestra clave se nos pide el código de verificación; ejecutamos entonces la aplicación en Android y cuando vemos el código de seguridad lo ingresamos en el ordenador (tenemos 30 segundos para esto, luego de lo cual se genera automáticamente una nueva clave) y luego se nos pide el ingreso de nuestra clave SSH de toda la vida.


Categorías

Ubuntu

Willy Klew

Ingeniero en Informática, soy un fanático de Linux, Android, la programación, redes y todo lo que tenga que ver con las nuevas tecnologías. Ex... Ver perfil ›

Escribe un comentario