News: Nuevo plugin de latch para sistemas basados en Unix, Linux y Mac

ElevenPaths  23 septiembre, 2014
El nuevo plugin de latch para Unix permite agrupar la funcionalidad ofrecida por plugins anteriores como el latch-plugin-ssh o latch-plugin-auth-ubuntu, añadiendo además, la posibilidad de proteger servicios como “sudo”, “su” y otros que utilicen autenticación PAM.

Hasta ahora, se disponía de un paquete de Latch para Ubuntu y otro para SSH, pero este nuevo plugin trata de ser más genérico. En el paquete del plugin, dentro de la carpeta examples/, se ofrecen ejemplos de cómo configurar diferentes servicios (sudo, ssh, el login…). Están organizados por sistemas en los que se ha probado el plugin: Debian, Ubuntu, CentOS, Fedora y OS X. En cualquier caso, es necesario configurar manualmente algunos ficheros específicos para poder integrar Latch en los servicios. Veamos cómo.

Compilando e instalando el paquete

Para poder compilar e instalar el código fuente del plugin, es necesario utilizar gcc y el make . En muchos sistemas vienen instalados por defecto, pero si no es así, se pueden instalar fácilmente con los siguientes comandos:

Para Debian/Ubuntu y CentOS/Fedora/RedHat respectivamente:

sudo apt-get install gcc make

sudo yum install gcc make


Además, son necesarias tres librerías: libpam-dev, libcurl-dev y libssl-dev. Para Debian/Ubuntu y CentOS/Fedora/RedHat respectivamente:

sudo apt-get install libpam0g-dev libcurl4-openssl-dev libssl-dev
yum install pam-devel libcurl-devel openssl-devel


En el caso de que el gestor de paquetes no encuentre alguna de las librerías y para usar las últimas versiones será conveniente actualizar el listado de paquetes disponibles.

Para Debian/Ubuntu y CentOS, Fedora o RedHat respectivamente:

sudo apt-get update
sudo yum update

Con los prerrequisitos necesarios, ya será posible compilar e instalar el paquete. Desde el directorio raíz del paquete, debemos ejecutar:

./configure && make && sudo make install



Tras esto, se habrá creado una librería dinámica “pam_latch.so” en la ruta  “/usr/local/lib/” que hay que situar en el directorio PAM de nuestro sistema operativo. Este directorio varía en función del sistema, aunque habitualmente se encontrará en “/lib/security/”, “/lib64/security/” o “/lib/*/security/”. En Mac OS X, el directorio PAM se encuentra en “/usr/lib/pam/”.

sudo mv /usr/local/lib/pam_latch.so $PAM_DIR

Listado de librerías dinámicas PAM en Ubuntu 13.10

También hay que mover otros dos archivos binarios (latch y latch-shell), que tras la instalación se encontrarán en /usr/local/bin/. El siguiente paso es modificar los permisos con estos dos comandos:

sudo mv /usr/local/bin/latch /usr/local/bin/latch-shell /usr/bin/
sudo chmod 4755 /usr/bin/latch /usr/bin/latch-shell

Archivos binarios de Latch en /urs/bin/

Y por último, hay que configurar el servicio que se desea proteger. Para ello, nos situamos en la carpeta /etc/pam.d/ (donde se encuentran todos los archivos de configuración PAM), y editamos el fichero de configuración correspondiente. Veamos el ejemplo concreto para Ubuntu, aunque el proceso es similar en el resto de sistemas operativos.

Ejemplo: Login en Ubuntu 13.10

Para proteger el login en Ubuntu 13.10, hay que modificar tres ficheros: lightdm-autologin, lightdm y login.
En primer lugar, es recomendable hacer una copia de seguridad de todos los ficheros que vamos a modificar, y así en el caso de querer desinstalar el plugin, será posible restaurar la configuración anterior fácilmente.

Abrimos los ficheros y añadimos nuestro módulo de autenticación de Latch a la configuración. Generalmente, se debe añadir justo después del módulo PAM que autentica:

auth required pam_latch.so config=/etc/latch/latch.conf accounts=/etc/latch/latch.accounts operation=login otp=yes

Es importante destacar que si nos fijamos en la variable “operation”, hemos puesto la etiqueta “login”. Esta etiqueta es la que utilizaremos cuando configuremos el plugin más adelante.

Fichero de configuración PAM lightdm después de añadir el módulo PAM de Latch

Podemos fijarnos en la carpeta examples/ubuntu/etc/pam.d/ para ver cómo configurar el resto de ficheros.

Configuración del plugin

Una vez completada la instalación, debemos configurar nuestro plugin. Para ello, es necesario en primer lugar obtener el “Application ID”, el “Secret” y crear las operaciones necesarias para el plugin. En este caso, únicamente vamos a crear una operación (Login), pero es probable que en el futuro queramos crear más operaciones para así proteger cada uno de los servicios con un cerrojo (“latch”) independiente.

Para obtener el “Application ID” y el “Secret” (fundamentales para integrar Latch en una aplicación), es necesario contar con una cuenta de usuario desarrollador en la página de Latch accediendo a la sección “Área de desarrolladores”. Activada la cuenta, el usuario ya está en disposición de crear aplicaciones con Latch y acceder a la documentación para desarrolladores, incluyendo los SDKs y los plugins existentes. Para ello el usuario debe iniciar sesión en la página web de Latch y acceder de nuevo a la sección “Área de desarrolladores”, desde donde podrá observar sus aplicaciones, a través de la sección “Mis aplicaciones” del menú lateral. Desde el botón “Añadir una nueva aplicación”, el usuario indicará el nombre que desea que aparezca en la aplicación móvil.

Al crear la aplicación, se muestran dos datos fundamentales: el “ID de aplicación” y el “Secreto”. Además existen otros parámetros adicionales entre los que están el icono de la aplicación que aparecerá en el dispositivo del usuario, si se incluirán operaciones internas (en caso de que se crearan) y si la aplicación va a soportar o no OTP (One Time Password). En este ejemplo añadimos una operación (a la que hemos llamado Login) y establecemos el OTP como opcional. El ID que aparece es el que tendremos que añadir dentro del fichero de configuración “latch.conf”.

Detalle de la página donde se añade la nueva aplicación, tras crear la operación “Login”

Una vez finalizada la configuración y guardados los cambios, la nueva aplicación aparecerá en el listado de aplicaciones del usuario. El desarrollador podrá editarla en el momento que desee. El ID de la aplicación aparecerá tachado, pero su valor sigue siendo válido y también debe ser utilizarlo para configurar nuestro plugin.

Detalle de la página que nos permite editar la aplicación que acabamos de crear.

Edición del fichero de configuración “latch.conf”

Una vez que ya tenemos nuestros datos de configuración, abrimos el fichero de configuración “latch.conf” que tras la instalación se  ha creado en /etc/latch/, y lo editamos con los parámetros obtenidos.

Fichero de configuración “latch.conf” tras la instalación del plugin

Para este ejemplo, únicamente será necesario configurar el app_id, el secret_key y la operación que hemos creado (login) con su “OperationId” generado previamente.

Detalle de las operaciones predefinidas por defecto en el fichero de configuración de Latch

Usando el plugin

Para empezar a utilizar latch en nuestro sistema, es necesario en primer lugar parear nuestra cuenta. Necesitamos lógicamente tener descargada la aplicación de Latch en el móvil para Android, iPhone o Windows Phone y después seguir los siguientes pasos:

  • Desde la aplicación móvil de Latch, generamos el código de pareado, presionando previamente sobre “añadir nuevo servicio” en la parte inferior de la aplicación.

Captura que muestra cómo generar un nuevo código de pareado en la aplicación móvil

  • En el equipo, abrimos un terminal y ejecutamos el comando “latch -p “, utilizando el código de pareado generado en el paso anterior. 

Terminal en el que se ejecuta el comando de pareo de cuenta de Latch.

Ahora el usuario ya puede bloquear y desbloquear su login, así como configurar la autenticación con una contraseña de un solo uso, añadiendo una protección extra al acceso a nuestro sistema. 

Pantalla de autenticación en Ubuntu 13.10 con la opción OTP de Latch activada,
tras haber introducido la contraseña correctamente

Para desparear la cuenta, abrir un terminal y ejecutar el comando “latch -u”. 

Iván Martín Vedriel
ivan.martin@11paths.com

Comentarios

  1. Buenas tardes,

    Estoy usando Ubuntu 14.04 cuando ingreso al directorio /etc/pam.d para buscar los ficheros: lightdm-autologin, lightdm y login. estos no esta.

    Estos son los que me aparecen:

    accountsservice chsh common-session gdm gnome-screensaver passwd su
    atd common-account common-session-noninteractive gdm-autologin login polkit-1 sudo
    chfn common-auth cron gdm-launch-environment newusers ppp xscreensaver
    chpasswd common-password cups-daemon gdm-password other samba

    Agradezco su ayuda,

  2. Buenos días!

    $PAM_DIR lo entendemos como una ruta relativa que el propio usuario en función de donde tenga instalados los ficheros debe sustituir por el valor real.

    En Ubuntu 14.04 si usted no ha modificado nada tendría que sustituir el $PAM_DIR por la ruta:

    PAM_DIR=/lib/*/security

    Por lo que la línea en concreto quedaría de la siguiente manera:

    sudo mv /usr/local/lib/pam_latch.so /lib/*/security

    Reciba un cordial saludo del equipo de Eleven Paths.

  3. Buenos días,
    He instalado y configurado satisfactoriaente Latch para Ubuntu 14.04.
    Donde no he conseguido que funcione es en la pantalla de sesión bloqueada y solo funciona en la pantalla de inicio de sesión (y por supuesto sudo, su y sshd).

    ¿Hay alguna manera de activarlo para el "Lock Screen"?

    Gracias.

  4. Buenas tardes,

    Tengo un Mac OSX Yosemite 10.10.1 y he seguido los pasos para la instalación de latch, concretamente la operación su. Una vez terminado y pareado con el terminal, abra o cierre el cerrojo todo sigue igual, siempre puedo ejecutar el comando.

    – ¿Hay alguna actualización/incompatibilidad con este OSX?
    – ¿Ha cambiado alguna cosa con respecto a cuando se publicó el post?

    Gracias

  5. Buenas tardes,

    He conseguido latchear el 'su' en Ubuntu 14 aunque me encontraba con un error a la hora de parear la aplicación con el movil. En concreto en el momento de usar el comando 'latch -p'.
    He tenido que apuntar manualmente a los ficheros de configuración, dejo el comando por si resulta util:
    latch -f /etc/latch/latch.conf -a /etc/latch/latch.accounts -p 'código de pareado'

    Un saludo y gracias por vuestro trabajo

  6. Buenas, he configurado tal y como indican pero hasta ahora nada. He modificado el archivo sshd del directorio /etc/pam.d y he agregado el archivo password-auth-sshd-latch, incluso copiado los archivos binarios latch y latch-ssh-cmd, pero sigue logueando pese a que esta bloqueado. Que podria estar mal o que podria revisar.

Deja un comentario

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