¿Cómo configurar la autenticación de dos factores en Ubuntu para los usuarios de Ubuntu que usan el autenticador de Google?

Respuestas:

16

Nota: Una vez que haya activado la autenticación de 2 factores para un usuario y no haya configurado la misma para root, nunca podrá iniciar sesión como root directamente. En tal caso, una forma de evitarlo es usar cualquier otro usuario de sudo para el que lo tengamos configurado y luego usar sudo su -para cambiar al usuario raíz.


Use los pasos a continuación para configurarlo.

  1. Instale a continuación el paquete dado para instalar el autenticador de Google que usaremos como complemento con la autenticación PAM:

    sudo apt-get install libpam-google-authenticator
    
  2. Ahora edite /etc/pam.d/sshdeste archivo y agregue Google Authenticator como se indica a continuación:

    *sudo vim /etc/pam.d/sshd
    

    ingrese abajo en la parte superior este archivo

    auth required pam_google_authenticator.so
    
  3. Aquí tenemos que hacer cambios /etc/ssh/sshd_configpara asegurarnos de que ssh usa el Autenticador de Google, de esta manera nos aseguramos de que ssh esté usando la autenticación de dos factores.

    vim /etc/ssh/sshd_config
    

    En este archivo tenemos que encontrarlo ChallengeResponseAuthenticationy descomentarlo y / o modificarlo para que se vea a continuación (en resumen, configúrelo en sí: P):

    ChallengeResponseAuthentication yes
    

    Autenticación extra o GUI de 2 factores; de lo contrario, omita esto y vaya al paso 4: Para habilitarlo para el inicio de sesión GUI, edite /etc/pam.d/common-auth:

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

    y ahora agregue esto auth required pam_google_authenticator.sosobre la línea y auth [success=1 default=ignore] pam_unix.so nullok_secureluego guarde el archivo.

  4. Ahora cambie a una cuenta en la que desea configurarla.
    ( Nota: sugeriría crear al menos dos cuentas de superusuario en el sistema aparte de la cuenta raíz y configurarlo al menos, para una de ellas primero pero no para la cuenta raíz).

    sudo su - testuser1
    
  5. Ahora usaremos el siguiente comando para configurar la autenticación de dos factores para esto testuser1:

    google-authenticator
    
  6. Ejecutar este comando te hará la siguiente pregunta. (la respuesta recomendada es sí)

    ¿Desea que los tokens de autenticación se basen en el tiempo (y / n) y

  7. Después de eso, le mostrará el código QR y los Códigos de emergencia y algunos otros detalles. La salida debería verse como la imagen dada a continuación:

    ingrese la descripción de la imagen aquí

  8. Ahora debe usar su teléfono Android / Apple / Blackberry para descargar e instalar la aplicación Google Authenticator desde los respectivos mercados, por ejemplo, Google Play Store. que generará código para que inicies sesión.

    A continuación se muestra la captura de pantalla del ícono de la aplicación y la aplicación tomada de la aplicación del teléfono Android.

    ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

  9. Inicie la aplicación en su teléfono y escanee el Código QR o use la clave secreta y el código de verificación que se encuentra debajo del código QR en el sistema, que también puede ver en la primera captura de pantalla anterior.

  10. Una vez que todo esto esté hecho, es muy importante anotar y guardar sus códigos de emergencia en un lugar seguro, ya que esos son los códigos que pueden ayudarlo en caso de que quede bloqueado de alguna manera.

  11. En este momento, debe echar un vistazo a la parte inferior de la pantalla donde le está haciendo una pregunta a continuación. (la respuesta recomendada es Sí):

    ¿Desea que actualice su archivo "/home/testuser1/.google_authenticator" (y / n) y

  12. Nuevamente le hará una pregunta más y la respuesta recomendada para la siguiente pregunta también es Sí:

    ¿Desea no permitir múltiples usos del mismo token de autenticación? Esto lo restringe a un inicio de sesión cada 30 segundos, pero aumenta sus posibilidades de notar o incluso prevenir ataques de hombre en el medio (y / n) y

  13. La siguiente pregunta sería la siguiente y la respuesta recomendada es No:

    Por defecto, los tokens son válidos por 30 segundos y para compensar el posible desfase temporal entre el cliente y el servidor, permitimos un token adicional antes y después de la hora actual. Si tiene problemas con la sincronización deficiente de tiempo, puede aumentar la ventana de su tamaño predeterminado de 1: 30min a aproximadamente 4min. ¿Quieres hacerlo? (S / n) n

  14. Y la última pregunta sería la siguiente y la respuesta recomendada es Sí:

    Si la computadora en la que está iniciando sesión no está protegida contra los intentos de inicio de sesión por fuerza bruta, puede habilitar la limitación de velocidad para el módulo de autenticación. Por defecto, esto limita a los atacantes a no más de 3 intentos de inicio de sesión cada 30 segundos. ¿Desea habilitar la limitación de velocidad (y / n) y

  15. Ahora cambie la salida de esta cuenta para volver a la cuenta raíz:

    exit
    
  16. Ahora reinicie el servicio ssh

    service ssh restart
    

Ahora solo tome una sesión ssh para el usuario para el que lo configuró y primero le pedirá un código de verificación que puede ingresar desde su teléfono móvil y luego le pedirá una contraseña de usuario.

ingrese la descripción de la imagen aquí

Eso es todo lo que se requiere para configurar la autenticación de dos factores. Por favor, siéntase libre de mejorar la respuesta donde sea necesario y discúlpeme por el idioma no tan bueno.

Hrish
fuente
Cuando lo desinstalo, deja un problema cada vez que ejecuto un comando con sudo: sudo: error de autenticación PAM: el módulo es desconocido
bagustris
@bagustris Deberá editar el archivo "/etc/pam.d/common-auth" y eliminar "auth required pam_google_authenticator.so" esta entrada. Después de desinstalarlo.
Hrish
para editar /etc/pam.d/common-auth, necesita sudo. Debido a que sudo ya no funciona, necesito un sistema operativo en vivo (o en mi caso, porque inicio dual con Mac OS, puedo editarlo desde OS X con un conjunto de permisos de escritura).
bagustris
1
@bagustris Puede hacerlo yendo al modo de recuperación.
Hrish
1
Sería más seguro no perder el acceso a la máquina si en el paso 2 usamos en auth optionallugar de auth required. De lo contrario, ya no es posible iniciar sesión si la sesión falla y el proceso no ha finalizado.
Pascal