¿Cómo puedo asegurar aún más mi sistema con la autenticación de 2 factores?


16

El título lo dice más o menos. He estado escuchando más sobre la autenticación de 2 factores, contraseñas de un solo uso, tokens rígidos y otras características de seguridad mejoradas. Con la disminución de la seguridad de usar solo una contraseña, quiero saber cómo puedo mejorar mi seguridad en Ubuntu. Estoy usando 14.04 LTS con Unity.

Respuestas:


30

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 sudosolicitudes, 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 sudosolicitud 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-autharchivo 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!!


Comentando para notas posteriores. ¡Bien escrito! +1 =)
Terrance

+1: esto es realmente genial y bien escrito.
Nathan Osman el

1
Y luego su teléfono decide que no tiene más energía y quiere apagarse. :) +1
Rinzwind

Para eso están los códigos reutilizables, @Rinzwind: D

Se agregaron instrucciones para habilitar dos factores en TTY.

1

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 ).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.