Cómo usar 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 los 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 las infracciones. Por esta razón, cualquier empresa o entidad que se tome en serio la seguridad debe implementar la autenticación de 2 factores.

Coloquialmente conocida 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 u OTP (contraseña única) antes o después de autenticarse con el nombre de usuario y la contraseña habituales.

Hoy en día, varias empresas como Google, Facebook, Twitter y AWS, por mencionar algunas, brindan a los usuarios la opción de configurar 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, una abreviatura de Pluggable Authentication Module, 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 proceda 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, debe instalar la aplicación Google Authenticator en su 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 en su lugar, procederemos y configuraremos el paquete Google PAM en Ubuntu modificando el archivo /etc/pam.d/common-auth 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 provocará 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 basados u200bu200ben el tiempo caducan después de cierto tiempo. De forma predeterminada, esto es 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 no basados u200bu200ben tiempo y, por lo tanto, escriba y para 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 que se muestra incluye:

  • Clave secreta
  • Código de verificación
  • Códigos de emergencia para raspar

Debe guardar esta información en una bóveda para referencia futura. Los códigos de emergencia son extremadamente útiles en caso de que pierda su dispositivo autenticador. 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 de la terminal para 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 del autenticador de Google en su carpeta de inicio.

En el siguiente mensaje, restrinja el inicio de sesión a solo un inicio de sesión cada 30 segundos para evitar ataques que puedan surgir debido a ataques man-in-the-middle. Así que seleccione y

En el siguiente mensaje, seleccione n para no permitir la extensión de la duración de tiempo que aborda la desviación de tiempo entre el servidor y el cliente. Esta es la opción más segura, a menos que esté experimentando problemas con una sincronización horaria deficiente.

Y finalmente, 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 2 factores. De hecho, si ejecuta cualquier comando sudo, se le pedirá un código de verificación que puede obtener de 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.

Una vez que haya proporcionado su código desde la aplicación Google Authenticator, simplemente proporcione su contraseña para acceder a su sistema.

Paso 4: Integra SSH con Google Authenticator

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

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, estamos iniciando sesión en el sistema Ubuntu desde el cliente Putty.

Si está utilizando 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

Deshabilitar 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 deshabilitar fácilmente la capa de autenticación 2FA y volver a su método simple de inicio de sesión de 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 un toque silencioso $vt_handoff. Agregue la línea systemd.unit u003d 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.