Acceso de usuario a dos pasos para Ubuntu usando Google Authenticator

Recientemente Google lanzó la autentificación a dos pasos para su sistema de correos electrónicos, básicamente es una aplicación de generación de códigos de 6 dígitos en tu teléfono móvil el cual permite tener una doble validación para acceder al correo electrónico de manera mas segura, al contar con un código numérico aleatorio que cambia a razón de un minuto y el cual debe ser ingresado posteriormente al ingreso de tu contraseña habitual.Esta doble validación también puede ser implementada en Ubuntu para autentificar a dos pasos el ingreso de los usuarios, herramienta que permitirá mantener a los curiosos fuera de tu computador aunque conozcan tu contraseña primaria.

Este es un aporte de Jairo J. Rodriguez, convirtiéndose así en uno de los ganadores de nuestra competencia semanal: «Compartí lo que sabés sobre Linux«. ¡Felicitaciones Jairo!

Aquí dejo un pequeño tutorial para realizar esta implementación:

Paso 1 : Instalar el Google Authenticator en tu móvil

Descarga el Google Authenticator en tu teléfono móvil. Para los usuarios de Android dejo aquí el siguiente enlace:

La aplicación también esta disponible para Iphone y Blackberry.

Paso 2 : Descargar el paquete para UBUNTU

Agrega a la lista de fuentes de paquetes el siguiente PPA ejecutando el comando a continuación desde una consola:

sudo add-apt-repository ppa:failshell/stable

Paso 3 : Actualiza las listas de APP

Ejecuta el siguiente comando para actualizar la base de datos de las fuentes PPA de tu sistema:

sudo apt-get update

Paso 4 : Instalar el modulo para el PAM (Pluggable Authentication Module)

Ejecuta el comando anexo, esto instalara en tu sistema dos archivos para establecer la autenticación a dos pasos: /lib/security/pam_google_authenticator.so y /usr/bin/google-authenticator.

sudo apt-get install libpam-google-authenticator

Paso 5 : Configurar la cuenta de acceso

Ahora es necesario ejecutar desde la consola el comando «google-authenticator» para configurar la cuenta desde la cual te has logueado. Una vez ejecutado el comando aparecerá en pantalla un código QR. Deberás usar la aplicación (Google Authenticator) recién instalada en tu móvil para poder obtener los códigos de autenticación asociados a tu login.

Te recomiendo hacer un «print screen» o pantallazo del código QR para que puedas posteriormente asociar otros dispositivos.

Paso 6: Configurar el PAM para el uso de autenticación a dos pasos

Abre una terminal y agrega la siguiente línea al archivo /etc/pam.d/sudo utiliza sudo vi o sudo gvim para realizar el cambio:

auth required pam_google_authenticator.so
Nota: Es recomendable dejar la sesión actual abierta ya que en caso de haber cometido algún error en la configuración podrás echar atrás todos los cambios.

Abre una nueva terminal y ejecuta:

sudo ls

El sistema solicitará la contraseña y luego a la solicitud de «Verification code:». Ingresa los dígitos observados en la aplicación Google Authenticator en tu móvil.

Tendrás unos tres minutos a partir del cambio del código numérico. Independientemente de que el código numérico cambie permanecerá activo por dos minutos adicionales.

Si todo va bien edita de nuevo el archivo /etc/pam.d/sudo eliminando la línea que agregaste «auth required pam_google_authenticator.so», guarda y sal.

Ahora para obtener la mayor protección implementado la validación a dos pasos agrega con sudo vi, sudo gvim o cualquier otro editor de tu preferencia pero siempre con sudo la línea «auth required pam_google_authenticator.so» al archivo «/etc/pam.d/auth» y de ahora en adelante cualquier validación requerirá de doble autentificación.

Si quieres ser menos restrictivo puedes utilizar cualquier otro archivo en el directorio /etc/pam.d, dependiendo de cuales sean tus necesidades de seguridad.


7 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Daniel dijo

    A mi no me funciona el PPA en Mint XFCE.
    Supongo que habrá que esperar unos días a que este disponible para esta distro.

  2.   Usemos Linux dijo

    Pues, en tu caso, entiendo que sería lightdm.
    Respecto de la «inviolabilidad», es eso… que alguien con apenas conocimientos técnicos y que sepa qué archivo buscar puede pasar por alto lo que en apariencia es un sistema de seguridad más complicado. Esto, siempre que esa persona tenga acceso físico a tu computadora. Por eso, este sistema es realmente útil en los casos en los que se realizan logins remotos, como al usar sshd.
    Saludos! Pablo.

  3.   Guillermo dijo

    En mi carpeta pam.d existen:

    /etc/pam.d/lightdm
    /etc/pam.d/kdm

    (Uso Ubuntu 12.04 y tengo instalado KDE, aunuqe mi escritorio es Gnome 3.4)

    Pero al agregar la autorización no me deja loguearme, me dice: «error critico», tuve que dejarlos como estaban desde la terminal en el «Recovery Mode»

    Lo demás sobre el sshd no me quedo muy claro, pero una recomendación para hacer realmente el sistema mas seguro y menos «inviolable» me serían de gran utilidad. Uso Linux desde hace unos 3 años entre muchos motivos por su robustes y seguridad y siempre busco la forma de poner todo mas difícil, agregar capas e seguridad, como dije un «TIP» de como usar adecuadamente la verificación en 2 pasos en ubuntu sería excelente. =)

  4.   Usemos Linux dijo

    Dependiendo del sistema que utilices sería una de estas opciones:
    /etc/pam.d/gdm
    /etc/pam.d/lightdm
    /etc/pam.d/kdm
    /etc/pam.d/lxdm
    etc.

    Igualmente, dejame aclarar que tiene más sentido utilizarlo con sshd, por ejemplo, que con para el login de la compu. Por la simple razón de que la llave secreta se guarda en una carpeta de tu home con lo que alguien que tenga acceso a tu compu puede iniciar desde un livecd, copiar la clave y generar un par de tokens propio. Sí, es verdad que «hace las cosas más difíciles» pero no es un sistema inviolable… aunque se muy cool.

    El mismo problema no existiría para procesos que requieren un login remoto, como sshd.

    Saludos! Pablo.

  5.   Guillermo dijo

    Ok, ya quedo, si solo lo quiero activar la verificacion en 2 pasos para el inicio de sesion a que archivo agrego «auth required pam_google_authenticator.so» en pam.d?

    Gracias Excelente Recurso!

  6.   KEOS dijo

    si funciona, yo tengo 12.04 y he agregado repos PPA

  7.   Guillermo dijo

    El PPA no funciona en Ubuntu 12.04 ¿Alguna solución?

    Saludps