Mostrando entradas con la etiqueta glftpd. Mostrar todas las entradas
Mostrando entradas con la etiqueta glftpd. Mostrar todas las entradas

23 diciembre 2013

Configurar Latch para proteger un servidor FTP

La empresa 11Paths ha presentado Latch, una servicio que hace las funciones de lo que han denominado pestillo digital, por el paralelismo al proteger al usuario incluso aunque le hayan robado sus llaves.

El sistema es brillantemente sencillo, se basa en minimizar el tiempo de exposición para lo que permite habilitar y deshabilitar el acceso a una cuenta, sea del tipo que sea, mediante una aplicación móvil.

Imaginamos que yo soy usuario de una página web que requiere usuario y contraseña. Si alguien obtiene esos datos podrá conectar sin problemas haciéndose pasar por mi. Me robará mi información. Latch es un interruptor que deja inactiva la cuenta cuando yo no la uso, además me avisará con una notificación en mi móvil si alguien trata de identificarse con mis credenciales y el acceso esta bloqueado.

Funciona de tal forma que a los sistemas en la nube de Latch nunca le llegarán datos del usuario, ni el nombre de usuario, ni la contraseña. Nada. Tan solo ordenes de activar y desactivar una aplicación.

Si eres un usuario es tan sencillo como descargar la aplicación móvil para iPhone, Android o Windows Phone y registrarte con un usuario y contraseña de Latch. Las webs o servicios que añadan soporte te pedirán que introduzcas un código que se genera desde el móvil para emparejarlos. Una vez hecho, en el móvil se mostrará un interruptor para abrir o cerrar el acceso.

En el caso de que quieras integrarlo en tu pagína web es tan sencillo como llevar a cabo un par de peticiones REST a su API, que está perfectamente documentada en la web desarrolladores de Latch. También hay SDKs para los lenguajes más populares como python, php, java, .NET, ruby o C. Si quieres usarlo en algún blog es aun más fácil, ya que tienen plugins para  los gestores de contenidos más conocidos, como Joomla, Wordpress, Drupal o incluso tiendas online como Prestashop. Tres clicks y está funcionando.

Para probarlo a fondo lo he integrado en el servicio GLFTPD, creando un par de scripts en bash. Los pasos han sido sencillos.

Lo primero fue darme de alta como desarrollador y crear un ApplicationID y Secretkey para mi aplicación. Estos datos son necesarios para hacer llamadas a la API, que tan solo permite tres funciones: emparejar/desemparejar dispositivos y comprobar el estado de un usuario.

Añadir una nueva aplicación.

Para activar el servicio los usuarios deben emparejar sus móviles y mi FTP, para luego poder comprobar si está habilitado o deshabilitado el acceso. Así que para registrarlos cree un script que pide el código que genera el móvil. Con este código del móvil, junto al ApplicationID y el Secret genero una petición HTTP contra el servicio de Latch que devuelve un hash de usuario denominado AccountID y que guardaré en un nuevo fichero con una relación de usuario:hashAccountID



El script de registrar se llamará mediante un comando FTP del tipo "SITE", que más tarde configuraré en el GLFTPD.

El funcionamiento del registro funcionaría tal y como muestra las siguientes imagenes:

Fase de registro en Latch 1.

Fase de registro en Latch completada.

El siguiente paso es comprobar mediante otra petición HTTP si el usuario está habilitado o no justo después de que introduzca la contraseña. Para ello GLFTPD ejecutará un script (status.sh) en el que verificar el AccountID justo después de recibir el comando FTP "PASS". Si el usuario no se ha dado de alta (o no es usuario de Latch) se le deja pasar. Si es usuario y está a "off", se le bloquea el acceso mediante un "sleep" hasta que de timeout. Si está en "on" pues se le deja pasar.



Cuando un usuario tiene desactivado el servicio y trata de conectar, en el móvil se muestra la alerta y se prohíbe el acceso:

Aplicación Latch con bloqueo activado.


MEEEC! El servicio está protegido.

También hay que habilitar un comando "SITE" para aquellos que quieran dejar de usar el servicio (¡seguro que ninguno!). Para ello, otro script.

Y por último, configurar el servidor GLFTPD (glftpd.conf) para que use los scripts. Por supuesto, hará falta hacer que 'wget' funcione dentro del chroot del servidor ftp.




Leer más...
  翻译: