31Aug
Para mayor seguridad, puede requerir un token de autenticación basado en el tiempo, así como una contraseña para iniciar sesión en su PC con Linux. Esta solución utiliza Google Authenticator y otras aplicaciones TOTP.
Este proceso se realizó en Ubuntu 14.04 con el escritorio Unity estándar y el administrador de inicio de sesión de LightDM, pero los principios son los mismos en la mayoría de las distribuciones y escritorios de Linux.
Anteriormente le mostramos cómo solicitar Google Authenticator para el acceso remoto a través de SSH, y este proceso es similar. Esto no requiere la aplicación Google Authenticator, pero funciona con cualquier aplicación compatible que implemente el esquema de autenticación TOTP, incluido Authy.
Instale Google Authenticator PAM
Al configurarlo para el acceso SSH, primero necesitaremos instalar el software PAM( "módulo de autenticación conectable") apropiado. PAM es un sistema que nos permite conectar diferentes tipos de métodos de autenticación en un sistema Linux y exigirlos.
En Ubuntu, el siguiente comando instalará el Google Authenticator PAM.Abra una ventana de Terminal, escriba el siguiente comando, presione Entrar y proporcione su contraseña. El sistema descargará el PAM de los repositorios de software de su distribución de Linux y lo instalará:
sudo apt-get install libpam-google-authenticator
Es de esperar que otras distribuciones de Linux también tengan este paquete para una fácil instalación: abra los repositorios de software de distribución de Linux yrealizar una búsqueda por ello. En el peor de los casos, puede encontrar el código fuente del módulo PAM en GitHub y compilarlo usted mismo.
Como señalamos anteriormente, esta solución no depende de "llamar a casa" a los servidores de Google. Implementa el algoritmo TOTP estándar y se puede usar incluso cuando su computadora no tiene acceso a Internet.
Crea tus claves de autenticación
Ahora necesitarás crear una clave secreta de autenticación e ingresarla en la aplicación Google Authenticator( o una aplicación similar) en tu teléfono. Primero, inicie sesión como su cuenta de usuario en su sistema Linux. Abra una ventana de terminal y ejecute el comando google-authenticator .Escriba y y siga las instrucciones aquí.Esto creará un archivo especial en el directorio de la cuenta de usuario actual con la información del Autenticador de Google.
También se le guiará por el proceso de obtener ese código de verificación de dos factores en un Autenticador de Google o una aplicación TOTP similar en su teléfono inteligente. Su sistema puede generar un código QR que puede escanear, o puede escribirlo manualmente.
Asegúrese de anotar sus códigos de emergencia, que puede utilizar para iniciar sesión si pierde su teléfono.
Pase por este proceso para cada cuenta de usuario que use su computadora. Por ejemplo, si usted es la única persona que usa su computadora, puede hacerlo una vez en su cuenta de usuario normal. Si tiene a alguien más que usa su computadora, querrá que inicie sesión en su propia cuenta y genere un código de dos factores apropiado para su propia cuenta para que puedan iniciar sesión.

Activar la autenticación
Aquí es dondelas cosas se ponen un poco difícilesCuando explicamos cómo habilitar el inicio de sesión SSH de dos factores, lo solicitamos solo para los inicios de sesión de SSH.Esto aseguró que aún podría iniciar sesión localmente si perdió su aplicación de autenticación o si algo salió mal.
Dado que habilitaremos la autenticación de dos factores para inicios de sesión locales, aquí hay posibles problemas. Si algo sale mal, es posible que no pueda iniciar sesión. Teniendo eso en cuenta, lo guiaremos a través de la habilitación de esto solo para inicios de sesión gráficos. Esto te proporciona una escotilla de escape si la necesitas.
Habilite el Autenticador de Google para inicios de sesión gráficos en Ubuntu
Siempre puede habilitar la autenticación en dos pasos solo para los inicios de sesión gráficos, omitiendo el requisito cuando inicia sesión desde el indicador de texto. Esto significa que puede cambiar fácilmente a un terminal virtual, iniciar sesión allí y revertir los cambios para que Gogole Authenciator no sea necesario si tiene algún problema.
Claro, esto abre un agujero en su sistema de autenticación, pero un atacante con acceso físico a su sistema ya puede explotarlo de todos modos. Es por eso que la autenticación de dos factores es particularmente efectiva para los inicios de sesión remotos a través de SSH.
Aquí se explica cómo hacer esto para Ubuntu, que utiliza el administrador de inicio de sesión de LightDM.Abra el archivo LightDM para editar con un comando como el siguiente:
sudo gedit /etc/pam.d/ lightdm
( Recuerde que estos pasos específicos solo funcionarán si su distribución y escritorio de Linux utilizan el administrador de inicio de sesión LightDM).
Agregue la siguiente línea hasta el final deel archivo, y luego guárdelo:
auth required pam_google_authenticator.so nullok
El bit "nullok" al final le dice al sistema que permita que un usuario inicie sesión incluso si no han ejecutado el comando google-authenticator para configurar dos:autenticación de factor. Si lo han configurado, tendrán que ingresar un código baesd de tiempo; de lo contrario, no lo harán. Elimine el "nullok" y las cuentas de usuario que no hayan configurado un código de Google Authenticator simplemente no podrán iniciar sesión gráficamente.
La próxima vez que un usuario inicie sesión de forma gráfica, se le pedirá su contraseña y luego se le solicitará el código de verificación actual que se muestra en su teléfono. Si no ingresan el código de verificación, no podrán iniciar sesión.
El proceso debería ser bastante similar para otras distribuciones de Linux y escritorios, ya que la mayoría de los administradores de sesiones de escritorio Linux usan PAM.Es probable que solo tenga que editar un archivo diferente con algo similar para activar el módulo PAM apropiado.
Si utiliza el cifrado del directorio de inicio
Las versiones anteriores de Ubuntu ofrecían una opción sencilla de "cifrado de la carpeta de inicio" que cifraba todo el directorio de inicio hasta que ingrese su contraseña. Específicamente, esto usa ecryptfs. Sin embargo, dado que el software PAM depende de un archivo de Google Authenticator almacenado en su directorio de inicio de manera predeterminada, el cifrado interfiere con el PAM leyendo el archivo a menos que se asegure de que esté disponible encriptado al sistema antes de iniciar sesión. Consulte el archivo README para obtener más información.información sobre cómo evitar este problema si aún usa las opciones de encriptación del directorio de inicio obsoleto.
Las versiones modernas de Ubuntu ofrecen en su lugar encriptación de disco completo, que funcionará bien con las opciones anteriores. No necesita hacer nada especial
¡Ayuda, se rompió!
Debido a que acabamos de habilitar esto para los inicios de sesión gráficos, debería ser fácil de desactivar si causa un problema. Presione una combinación de teclas como Ctrl + Alt + F2 para acceder a un terminal virtual e inicie sesión con su nombre de usuario y contraseña. A continuación, puede usar un comando como sudo nano /etc/pam.d/ lightdm para abrir el archivo y editarlo en un editor de texto de terminal. Use nuestra guía para Nano para eliminar la línea y guardar el archivo, y podrá volver a iniciar sesión normalmente.

También puede forzar que se requiera Google Authenticator para otros tipos de inicios de sesión, potencialmente incluso todos los inicios de sesión del sistema, agregando la línea "auth required pam_google_authenticator.so" a otros archivos de configuración de PAM.Ten cuidado si haces esto. Y recuerde, es posible que desee agregar "nullok" para que los usuarios que no pasaron por el proceso de configuración todavía puedan iniciar sesión.
Puede encontrar más documentación sobre cómo usar y configurar este módulo PAM en el archivo README del software en GitHub.