lunes, 13 de octubre de 2014

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

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 AndroidiPhone oWindows 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".  

No hay comentarios:

Publicar un comentario