Búsqueda de sitios web

Cómo utilizar la autenticación de dos factores con Ubuntu


Con el tiempo, la autenticación tradicional de nombre de usuario y contraseña ha demostrado ser inadecuada para brindar una seguridad sólida a las aplicaciones y sistemas. Los nombres de usuario y las contraseñas se pueden descifrar fácilmente utilizando una gran cantidad de herramientas de piratería, lo que deja su sistema vulnerable a infracciones. Por este motivo, cualquier empresa o entidad que se tome en serio la seguridad necesita implementar la autenticación de 2 factores.

Conocida coloquialmente como MFA (Autenticación multifactor), la autenticación de 2 factores proporciona una capa adicional de seguridad que requiere que los usuarios proporcionen ciertos detalles, como códigos, o OTP (Contraseña de un solo uso) antes o después de autenticarse con el nombre de usuario y la contraseña habituales.

Hoy en día múltiples empresas como Google, Facebook, Twitter y AWS, por mencionar algunas, brindan a los usuarios la opción de establecer MFA para proteger aún más sus cuentas.

En esta guía, demostramos cómo puede utilizar la autenticación de dos factores con Ubuntu.

Paso 1: instale el paquete PAM de Google

En primer lugar, instale el paquete Google PAM. PAM, abreviatura de Módulo de autenticación conectable, es un mecanismo que proporciona una capa adicional de autenticación en la plataforma Linux.

El paquete está alojado en el repositorio de Ubuntu, así que continúe y use el comando apt para instalarlo de la siguiente manera:

sudo apt install libpam-google-authenticator

Cuando se le solicite, presione 'Y' y presione ENTER para continuar con la instalación.

Paso 2: instale la aplicación Google Authenticator en su teléfono inteligente

Además, deberás instalar la aplicación Google Authenticator en tu tableta o teléfono inteligente. La aplicación le presentará un código OTP de 6 dígitos que se renueva automáticamente cada 30 segundos.

Paso 3: configurar Google PAM en Ubuntu

Con la aplicación Google Authenticator implementada, procederemos y configuraremos el paquete Google PAM en Ubuntu modificando el /etc/pam.d/common-auth< archivo como se muestra.

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

Agregue la línea siguiente al archivo como se indica.

auth required pam_google_authenticator.so

Guarda el archivo y cierra.

Ahora, ejecute el siguiente comando para inicializar PAM.

google-authenticator

Esto generará un par de preguntas en la pantalla de su terminal. Primero, se le preguntará si desea que los tokens de autenticación se basen en el tiempo.

Los tokens de autenticación basada en tiempo caducan después de un tiempo determinado. De forma predeterminada, esto ocurre después de 30 segundos, tras los cuales se genera un nuevo conjunto de tokens. Estos tokens se consideran más seguros que los tokens que no están basados en el tiempo y, por lo tanto, escriba 'y' para decir sí y presione ENTER.

A continuación, se mostrará un código QR en el terminal como se muestra a continuación y justo debajo de él, se mostrará cierta información. La información mostrada incluye:

  • Llave secreta
  • Código de verificación
  • Códigos de raspado de emergencia

Debe guardar esta información en una bóveda para consultarla en el futuro. Los códigos de raspado de emergencia son extremadamente útiles en caso de que pierda su dispositivo de autenticación. Si algo le sucede a su dispositivo de autenticación, utilice los códigos.

Inicie la aplicación Google Authenticator en su dispositivo inteligente y seleccione "Escanear código QR" para escanear el código QR presentado.

NOTA: Debe maximizar la ventana del terminal para poder escanear el código QR completo. Una vez que se escanea el código QR, se mostrará en la aplicación una OTP de seis dígitos que cambia cada 30 segundos.

A continuación, seleccione 'y' para actualizar el archivo de autenticación de Google en su carpeta de inicio.

En el siguiente mensaje, restrinja el inicio de sesión a solo un registro cada 30 segundos para evitar ataques que puedan surgir debido a ataques de intermediario. Entonces seleccione 'y'

En el siguiente mensaje, seleccione 'n' para no permitir la extensión del tiempo que soluciona el desfase temporal entre el servidor y el cliente. Esta es la opción más segura a menos que tenga problemas con una mala sincronización horaria.

Y, por último, habilite la limitación de velocidad a solo 3 intentos de inicio de sesión.

En este punto, hemos terminado de implementar la función de autenticación de dos factores. De hecho, si ejecuta cualquier comando sudo, se le solicitará un código de verificación que puede obtener desde la aplicación Google Authenticator.

Puede verificar esto aún más reiniciando y una vez que llegue a la pantalla de inicio de sesión, se le pedirá que proporcione su código de verificación.

Después de haber proporcionado su código de la aplicación Google Authenticator, simplemente proporcione su contraseña para acceder a su sistema.

Paso 4: integre SSH con Google Authenticator

Si tiene intención de utilizar SSH con el módulo PAM de Google, debe integrar los dos. Hay dos formas de lograrlo.

Para autenticación de contraseña SSH

Para habilitar la autenticación de contraseña SSH para un usuario normal, primero abra el archivo de configuración SSH predeterminado.

sudo vim /etc/ssh/sshd_config

Y establezca los siguientes atributos en 'sí' como se muestra

Para el usuario root, establezca el atributo 'PermitRootLogin' en 'yes'.

PermitRootLogin yes

Guarda el archivo y cierra.

A continuación, modifique la regla PAM para SSH.

sudo vim /etc/pam.d/sshd

Luego agregue la siguiente línea

auth   required   pam_google_authenticator.so

Por último, reinicie el servicio SSH para que los cambios entren en vigor.

sudo systemctl restart ssh

En el siguiente ejemplo, iniciamos sesión en el sistema Ubuntu desde el cliente Putty.

Para autenticación de clave pública SSH

Si está utilizando la autenticación de clave pública, repita los pasos anteriores y agregue la línea que se muestra en la parte inferior del archivo /etc/ssh/sshd_config.

AuthenticationMethods publickey,keyboard-interactive

Una vez más, edite la regla PAM para el demonio SSH.

sudo vim /etc/pam.d/sshd

Luego agregue la siguiente línea.

auth   required   pam_google_authenticator.so

Guarde el archivo y reinicie el servicio SSH como vimos anteriormente.

sudo systemctl restart ssh

Deshabilite la autenticación de dos factores en Ubuntu

En caso de que pierda su dispositivo de autenticación o su clave secreta, no se vuelva loco. Puede desactivar fácilmente la capa de autenticación 2FA y volver a su método simple de inicio de sesión con nombre de usuario/contraseña.

Primero, reinicie su sistema y presione 'e' en la primera entrada de GRUB.

Desplácese y localice la línea que comienza con linux y termina con el silencioso splash $vt_handoff. Agregue la línea systemd.unit=rescue.target y presione ctrl+x para ingresar al modo de rescate.

Una vez que obtenga el shell, proporcione la contraseña de root y presione ENTER.

A continuación, proceda y elimine el archivo .google-authenticator en su directorio de inicio de la siguiente manera. Asegúrese de reemplazar el nombre de usuario con su propio nombre de usuario.


rm /home/username/.google_authenticator

Luego edite el archivo /etc/pam.d/common-auth.


$ vim /etc/pam.d/common-auth

Comente o elimine la siguiente línea:


auth required pam_google_authenticator.so

Guarde el archivo y reinicie su sistema. En la pantalla de inicio de sesión, solo se le pedirá que proporcione su nombre de usuario y contraseña para autenticarse.

Y esto nos lleva al final de este artículo. Estaremos encantados de saber cómo te fue.