Cómo añadir la autenticación de dos factores a Linux con Google Authenticator

Cómo añadir la autenticación de dos factores a Linux con Google Authenticator

Bloquear el acceso a su ordenador (y a los datos que contiene) con sólo una contraseña ya no corta la mostaza en esta era de procesadores multinúcleo y herramientas de descifrado de contraseñas fáciles de usar.

Si realmente le preocupa el acceso no autorizado a su equipo, debería añadir una capa adicional de autenticación.

Leer más: Ecovacs Deebot 900

Uno de los mecanismos más sencillos para implementar esta verificación de dos pasos es el servicio Google Authenticator, que emite un token de autenticación basado en el tiempo para complementar el reto de la contraseña existente.

Una vez que haya integrado el servicio con su nombre de usuario de Ubuntu, además de su contraseña de usuario, se le pedirá uno de los tokens que expiran rápidamente antes de que se le permita iniciar sesión.

Google Authenticator generará estos OTPs en tu dispositivo Android una vez que haya sido configurado para cada usuario de tu equipo Ubuntu.

Para implementar la autenticación multifactorial, necesitarás el PAM (Pluggable Authenticator Authentication Module) de Google Authenticator. Un PAM es un mecanismo utilizado para conectar diferentes formas de autenticación a un ordenador Linux.

El módulo PAM de Google Authenticator está disponible en los repositorios de software oficiales de Ubuntu. Para instalar el paquete en Ubuntu, diríjase al terminal y escriba:

 sudo apt-get install libpam-google-authenticator

Una vez instalado el paquete, asegúrese de que ha iniciado sesión como el usuario que desea proteger con la autenticación de dos factores. Ahora, en la ventana del terminal, escriba:

 Autentificador de Google

Esto iniciará el proceso de crear una clave secreta para el usuario haciéndole un montón de preguntas.

Si bien es seguro responder afirmativamente a todas ellas, es una buena idea entender cada una de ellas antes de tomar la decisión final, ya que estas opciones ayudan a equilibrar la seguridad con la facilidad de uso.

La primera pregunta es bastante segura y deberías permitir que el comando actualice tu archivo de Google Authenticator respondiendo sí.

A continuación, se le preguntará si desea restringir el uso de un token que le obliga a esperar 30 segundos entre el inicio de sesión.

Si bien puede parecer inconveniente al principio, usted debe aceptar esta limitación para obtener la máxima protección. La siguiente pregunta pide permiso para aumentar la ventana de tiempo en la que se pueden usar los tokens de 1:30 minutos predeterminados a 4:00 minutos.

Aunque puede responder afirmativamente a esta pregunta para evitar cualquier problema, escriba no para obtener la máxima seguridad. Si nota algún problema más tarde, vuelva a ejecutar el comando y aumente el tiempo de expiración como se sugiere. La cuarta y última pregunta le pide que limite el número de intentos para introducir el código de autenticación.

Definitivamente debería habilitar esta opción, ya que ayuda a prevenir ataques de fuerza bruta al iniciar sesión.

Cuando haya terminado, Google Authenticator le presentará una clave secreta y varios códigos de emergencia.

Necesitará asegurarse de anotar estos códigos de emergencia en algún lugar seguro. Te ayudarán a iniciar sesión si pierdes el teléfono Android que genera el OTP. Cada código sólo se puede utilizar una vez.

El comando google-authenticator también generará un código QR que puedes escanear con tu teléfono Android. Como aún no hemos instalado la aplicación, por el momento sólo hay que anotar el código de 16 dígitos.

Ahora repita este proceso para cada cuenta de usuario que utilice su ordenador. Pida a todas las personas con las que comparta el ordenador que inicien sesión en su cuenta, ejecuten google-authenticator y anoten sus respectivos códigos de emergencia junto con el código de 16 dígitos.

Una vez generado el código de autenticación para todos los usuarios, es el momento de configurar el proceso de acceso para que funcione con Google Authenticator. Todo lo que necesita hacer es editar un archivo para agregar autenticación de dos pasos para todos los intentos de inicio de sesión. Una vez más, encienda la terminal y escriba:

 sudo nano /etc/pam.d/common-auth

Desplácese hasta el final del archivo y añada la siguiente línea:

 auth requerido pam_google_authenticator.so nullok
SSH seguro con Google Authenticator

En lugar de inicios de sesión locales, algunas personas prefieren habilitar la autenticación de dos factores sólo para inicios de sesión SSH remotos.

Para ello, comience por asegurarse de que ha generado un código para el usuario que desea iniciar sesión como usuario remoto. A continuación, asegúrate de que utilizas Google Authenticator para los inicios de sesión SSH editando el archivo de configuración PAM de SSH con sudo nano /etc/pam.d/sshd.

Desplácese hacia abajo y añada la siguiente línea al archivo:

auth requerido pam_google_authenticator.so

nullok

Al igual que en el tutorial principal, la palabra nullok al final le dice a PAM que este método de autenticación es opcional.

Esto permite a los usuarios que no tengan una clave de autenticación de Google iniciar sesión con su clave SSH. Recuerde que esto es sólo un mecanismo de seguridad para evitar que se bloquee en caso de que algo salga mal en el proceso de configuración.

Sin embargo, una vez que lo haya probado con éxito, genere una clave para todos los usuarios SSH y elimine nullok desde el final de esta línea para que los inicios de sesión a través de OTP sean obligatorios.

Después de editar el archivo PAM de SSH, es hora de configurar SSH para que admita este tipo de autenticación.

Abra el archivo de configuración SSH para editar con sudo nano /etc/ssh/sshd_config.

Busque la línea que dice ChallengeResponseAuthentication y establezca su valor en sí. Si la línea no existe, asegúrese de añadirla manualmente. Guarde y cierre el archivo, luego reinicie SSH para recargar los archivos de configuración con el servicio sudo ssh reiniciar. Se te pedirá la contraseña y el código de autenticación de Google cada vez que intentes acceder a través de SSH.

A continuación, guarde el archivo y salga. Aquí hemos pedido a Ubuntu que utilice el módulo PAM de Google Authenticator para todos los intentos de acceso.

El bit nullok al final le pide a Ubuntu que permita a un usuario iniciar sesión aunque no haya ejecutado el comando google-authenticator para configurar la autenticación de dos factores. Así que supongamos que tienes dos usuarios, Amber y Megan, y que has configurado Google Authentication sólo para Amber.

Gracias a nullok, mientras que amber tendrá que entrar en la OTP, Megan podrá entrar con su contraseña.

Sin embargo, ten en cuenta que, si bien se trata de una flexibilidad útil mientras pruebas Google Authenticator, una vez que todo funcione correctamente y no tengas problemas para iniciar sesión con la autenticación de dos factores, es recomendable forzar a todos los usuarios a que inicien sesión a través de Google Authenticator únicamente eliminando el bit nullok de este comando.

Su instalación de Ubuntu está ahora configurada para la autenticación de dos factores. Para recibir los OTPs, deberá tener instalada la aplicación Google Authenticator en su teléfono móvil Android desde la tienda Google Play Store.

Después de instalar la aplicación, tendrás que añadir una cuenta para todos los usuarios para los que hayas ejecutado el comando google-authenticator en tu instalación de Ubuntu.

Para ello, abra la aplicación y, desde la ventana principal, toque el botón del menú (los tres puntos verticales de la esquina superior derecha).

Aquí toca'Configurar cuenta' y luego selecciona la opción Enter key provided. Ahora introduzca la clave secreta de 16 dígitos que ha anotado anteriormente después de haber pasado por la herramienta google-authenticator.

Dé un nombre a la cuenta (una buena idea es usar el nombre de usuario de la cuenta para la que está diseñada) y pulse el botón"Añadir".

Ahora ha configurado la autenticación de dos factores en su equipo. La aplicación Android generará un nuevo código de seis dígitos cada 30 segundos. Cuando inicie sesión en su cuenta o introduzca un comando sudo, Ubuntu le pedirá su contraseña y se le pedirá que introduzca el código de autenticación.

En este punto, introduzca los dígitos que se muestran actualmente en la aplicación Android. Una vez que haya iniciado sesión correctamente, asegúrese de editar el archivo etc/pam.d/common-auth y elimine la opción nullok para forzar el inicio de sesión a través del autenticador de Google.

También recuerde crear una cuenta en la aplicación Android para todos los usuarios de su instalación de Ubuntu.

Pasar por el indicador de seguridad adicional puede parecer una molestia al principio, especialmente cuando necesita cambiar a sudo para editar rápidamente un archivo de configuración. Sin embargo, si utiliza el equipo en un lugar público, aprenderá rápidamente a apreciar los beneficios del mecanismo de autenticación de dos factores.