Puede usar el módulo de autenticación de código abierto (PAM) creado por Google, conocido como Google Authenticator . Este módulo está disponible en los repositorios estándar, así como en GitHub para que pueda construir desde la fuente. Junto con la aplicación para Android, iOS o Blackberry del mismo nombre, crea códigos de autenticación basados en el tiempo para su autenticación junto con su contraseña. Como es un módulo PAM, se puede colocar prácticamente en cualquier lugar . ¡Empecemos!
Instalando
Para comenzar, puede instalar el PAM con lo siguiente:
sudo apt-get install libpam-google-authenticator
¡Sencillo!
Configurarlo:
Después de que esté instalado, también querrá instalar la aplicación móvil correspondiente para Android, iOS o Blackberry (dependiendo de su plataforma móvil). Cada uno es inútil sin el otro. Después de tener la aplicación que necesita para su dispositivo móvil, ejecute lo siguiente en un terminal:
google-authenticator
Esto comenzará haciéndole algunas preguntas. La primera es la única a la que debe responder "Sí", y le pregunta si desea que los códigos se basen en el tiempo. Después de eso, lea cada pregunta y tome la decisión que tenga más sentido para usted.
Al completar la configuración inicial, verá un código QR muy grande en su terminal, así como alguna otra información. La línea que dice "Su nueva clave secreta es:" es una línea muy necesaria si no desea utilizar el código QR para emparejar su dispositivo, ¡así que no cierre esta ventana hasta que esté configurado! Los "códigos reutilizables" que esto le proporciona también son importantes, ya que son los que utilizará para iniciar sesión si pierde su dispositivo móvil. Anótelos y guárdelos en un lugar seguro.
Ahora, en su dispositivo móvil, abra su aplicación Google Authenticator y seleccione "Configurar cuenta". Puede escanear el código QR que se generó o seleccionar "Usar clave proporcionada". Si escanea el código QR, todo se guardará automáticamente en una cuenta llamada "your_user @ your_host". Sin embargo, si selecciona "Usar clave proporcionada", deberá ingresar un nombre, clave y tipo de token manualmente. El nombre puede ser lo que quieras. La clave sería la clave secreta generada previamente. El tipo sería el predeterminado basado en el tiempo. Después de configurarlo, verá la cuenta en el panel principal de la aplicación Google Authenticator, así como un temporizador en forma de círculo al lado. Ese temporizador se agota cada 30 segundos y se genera un nuevo código.
¡Habilitándolo!
Aquí viene la magia. Como se trata de un módulo PAM, se puede usar en una variedad de lugares. Recorreré agregar autenticación a las sudo
solicitudes, inicios de sesión SSH e inicio de sesión lightdm. Sin embargo, después de leer este tutorial, podrá habilitarlo en otro lugar basándose en las mismas técnicas.
SSH
Estoy haciendo esto primero porque hay un paso adicional. Lo primero que debe hacer es editar su archivo de configuración SSH:
gksudo gedit /etc/ssh/sshd_config
Busque la línea que dice:
ChallengeResponseAuthentication no
y cambie el "no" a un "sí".
Ahora, necesita editar el módulo PAM para ssh:
gksudo gedit /etc/pam.d/sshd
Al final de este archivo, agregue la siguiente línea:
auth required pam_google_authenticator.so nullok
El argumento "nullok" le dice al sistema que no solicite un código de verificación si un usuario no ha configurado la autenticación de dos factores. Después de esa edición, continúe y reinicie su servicio ssh:
sudo service ssh restart
sudo
Peticiones
Edite el archivo PAM para sudo
:
gksudo gedit /etc/pam.d/sudo
Agregue la siguiente línea al final:
auth required pam_google_authenticator.so nullok
Ahora, cada sudo
solicitud solicitará un código de verificación y una contraseña.
LightDM (inicio de sesión de GUI)
Edite el archivo PAM para LightDM:
gksudo gedit /etc/pam.d/lightdm
Agregue la siguiente línea al final:
auth required pam_google_authenticator.so nullok
¡Eso es! Cada vez que inicie sesión a través de la GUI, le pedirá un código de verificación después de su contraseña.
Inicio de sesión en todo el sistema y TTY
Incluso si habilita los métodos anteriores, aún no solicitará un código de verificación si cambia a un TTY con CTRL+ ALT+ F#. Para solucionar esto, edite el common-auth
archivo PAM:
gksudo gedit /etc/pam.d/common-auth
y agregue la siguiente línea hasta el final:
auth required pam_google_authenticator.so nullok
Nota: Dado que este archivo de autenticación común se incluye en todos los demás archivos de tipo de autenticación, debe eliminar las líneas de autenticación necesarias de los otros archivos. De lo contrario, le pedirá el código de verificación dos veces y no le permitirá iniciar sesión después.
Envolver
Como puede ver, fue bastante fácil agregar esta autenticación. Si usa un administrador de pantalla que no sea LightDM, podría cambiar fácilmente la línea lightdm anterior en consecuencia. Dado que su dispositivo móvil y su sistema ya compartieron esta clave secreta, siempre deben estar sincronizados. No hay interacción con los servidores de Google ni con ningún otro recurso de Internet para esta configuración. Incluso si ambos dispositivos estuvieran completamente desconectados, los códigos de verificación que aparecen en su aplicación serán correctos. Siempre que necesite iniciar sesión a través de uno de los métodos que ha habilitado, solo asegúrese de abrir su aplicación móvil y obtener el código de verificación actual.
¡¡Que te diviertas!!
FreeOTP es una alternativa de código abierto a la aplicación de Android Google Authenticator en Google Play (cuyo código actual no es de código abierto). FreeOTP está disponible en F-Droid (y Google Play ).
fuente