FFSend: Compartir ficheros de forma segura desde la línea de comandos

Aprendemos a utilizar la herramienta FFSend, que utiliza Firefox Send, desde la terminal de comandos en GNU/Linux. De esta manera vamos a poder compartir ficheros y carpetas de forma fácil y segura, desde la línea de comandos, a través de un enlace seguro, cifrado y privado, mediante un solo comando simple.

Los archivos se comparten mediante el servicio de Send de Firefox y puede ser hasta de 2 GB de tamaño. Los ficheros compartidos se pueden descargar utilizando la misma herramienta, o bien a través de un navegador web.

Los ficheros siempre están cifrados en el cliente y los secretos se comparten con el host remoto. Se puede especificar una contraseña opcional o se le puede aplicar una duración de tiempo. Incluso limitar el número de descargas o poner el enlace disponible no más de 24 horas.

Veamos sus principales características:

  • Herramienta de línea de comandos completa y amigable
  • Sube o descarga ficheros de forma segura.
  • Siempre cifrado en el lado del cliente.
  • Posibilidad de contraseña provisional, generación y límites de descargas, de forma configurable.
  • Acortador de URL compartido incorporado y generador de código QR.
  • Soporte versiones de servidor Firefox antiguas y nuevas.
  • Historial de seguimiento de los ficheros para una fácil gestión.
  • Posibilidad de utilizar hosts de envío personalizados.
  • Inspeccionar o borrar archivos compartidos.
  • Informe de errores.
  • Streaming de cifrado y carga/descarga
  • Diseñado para utilizar scripts sin interacción.

Además se está trabajando para realizar una integración completa con una cuenta de Firefox.

Instalación de FFSend en GNU/Linux

La herramienta es multiplataforma, ya que está disponible para GNU/Linux, macOS y Microsoft Windows. En el caso del sistema del Ñu y el Pingüino, debemos tener instalados los herramientas de OpenSSL y certificados CA.

En sistemas Debian, Ubuntu, Linux Mint y similares:

  1. apt install openssl ca-certificates

También se puede añadir el soporte para el portapapeles con “xclip”.

En Debian, Ubuntu, Linux Mint y similares:

  1. apt install xclip

Para sistemas RHEL, Centos, Scientific Linux

  1. yum install xclip

Si usamos Fedora

  1. dnf install xclip

En OpenSUSE:

  1. zypper -i xclip

En sistemas Arch y derivados:

  1. pacman -S xclip

Ahora sí, ya podemos instalar el producto.

Al igual que con otros productos existen diferentes formas de instalación. La primera es utilizar el paquete SNAP

  1. snap install ffsend
  2. Ffsend –help #Para obtener ayuda

Otra forma es utilizar las ficheros precompilados.

Una vez descargado, realizamos los siguientes pasos:

  1. # Renombramos el fichero binario ffsend
  2. mv ./ffsend-* ./ffsend
  3. # Marcamos el binario como ejecutable
  4. chmod a+x ./ffsend
  5. # Move binary into path, to make it easily usable
  6. sudo mv ./ffsend /usr/local/bin/
  7. ffsend --help

Y ya podemos empezar.

Probando FFSend, mi experiencia

Las pruebas han sido en una distribución Ubuntu 18.04, en un VPS en Clouding.io

He utilizado el paquete suministrado por SNAP, la instalación ha sido muy fácil.

  1. root@servubuntu:~# snap search ffsend
  2. Name    Version  Publisher  Notes  Summary
  3. ffsend  0.2.38   timvisee   -      Easily and securely share files from the command line.
  4. root@servubuntu:~# snap install ffsend
  5. ffsend 0.2.38 from Tim Visée (timvisee) installed

La primera prueba era crear un enlace sin contraseña para el fichero (magnet de Torrent) del fabuloso curso que hizo en su día el amigo Jen0f0nte, publicado en Colaboratorio.net, sobre Fotografía Libre de Alta Calidad.

Utilizamos el parámetro «upload«, como sigue:

  1. root@servubuntu:~# ffsend upload fotografia_libre.zip
  2. Upload complete                                    Share link: 
  3. https://send.firefox.com/download/f294a4bd57/#owXf2RW51OEzo-CyT5w_bA

Si probamos el enlace (ni trampa ni cartón amigo!), podemos ver el fichero disponible consultando la URL:

Ahora subiremos de nivel, asignaremos una contraseña al fichero, utilizando el parámetro «–password»

  1. root@servubuntu:~# ffsend upload 0-ninja-collectd-influxdb-grafana.pdf --password
  2. Password:
  3. Upload complete                                        Share link: 
  4. https://send.firefox.com/download/18dcba943d/#-Dv9-EnjxOHGatKMShzVKw

En este caso he utilizando el documento de la guía creada por el colega Emiliano de Linuxito.com, sobre Collectd, InfluxDB y Grafana.

En primera instancia nos pedirán la contraseña:

Petición de contraseña para acceder a fichero con Firefox Send

Una vez puesta ya podemos acceder:

Si ya no nos interesa compartir el fichero lo podemos eliminar, utilizando el parámetro «delete» :

  1. root@servubuntu:~# ffsend delete https://send.firefox.com/download/3493f7a605/#K5uKfpOD7SJeoGJochI55g
  2. File deleted

Supuestamente con el parámetro «–downloads» podemos limitar el número de descargas hasta 20. Pero a mi no me ha dejado indicar más de 1, otro número diferente me muestra un mensaje de error. Tenemos una «issue» abierta al respecto. Comentan «Parece que el límite de descarga actual para usuarios no autenticados se ha reducido a solo 1, en el servicio público send.firefox.com. Por lo tanto, el servidor rechaza la cuenta de descargas de 2 con el error 400 que se muestra«, aunque esperan que la herramienta en breve pueda dar soporte a la autentificación de los usuarios.

Una vez hemos subido un fichero y ya lo tenemos cifrado con una contraseña asignada, por ejemplo el libro sobre el editor Writer dentro de la suite Libre Office, creado por El Pingüino Tolkiano, llamado «Domando al escritor«, podemos descargarlo en la consola utilizando el parámetro «download«. Veamos un ejemplo:

  1. root@servubuntu:~# ffsend upload dae-final-2018-10-05.pdf --downloads 1 --password
  2. Password:
  3. Upload complete                                                                 Share link:  https://send.firefox.com/download/8b9d7076e4/#vgsgNfICqTt7Sm2BdTGQSQ
  4. root@servubuntu:~# ffsend download https://send.firefox.com/download/8b9d7076e4/#vgsgNfICqTt7Sm2BdTGQSQ
  5. Password:
  6. Download complete

Otro parámetro es «history«, que muestra información de todos los enlaces compartidos.

  1. root@servubuntu:/# ffsend history
  2. #  LINK                                                                  EXPIRY 
  3. 1  https://send.firefox.com/download/8b9d7076e4/#vgsgNfICqTt7Sm2BdTGQSQ  23h57m 
  4. 2  https://send.firefox.com/download/aa5d490b38/#G9JSQ70t_Nyd3Fv4u7eiKQ  23h45m 
  5. 3  https://send.firefox.com/download/029477837c/#AigQS2_Tz3FaLOJMw3LrEA  23h45m 
  6. 4  https://send.firefox.com/download/94d12e8ee0/#MOfk2WmFth37XanP3Qp2Eg  23h44m 
  7. 5  https://send.firefox.com/download/4d58a81502/#pYTc9TAD2yVvAG_NiLv-dw  23h44m

También, con «info» nos muestra información de un enlace:

  1. root@servubuntu:/# ffsend info https://send.firefox.com/download/4d58a81502/#pYTc9TAD2yVvAG_NiLv-dw
  2. ID:         4d58a81502
  3. Downloads:  0 of 1
  4. Expiry:     23h43m (85424s)

Y esto es todo.

Conclusión

Está claro que tanto la iniciativa de Firefox Send como la de la herramienta FFSend son muy interesantes, siempre son de agradecer para tener unas comunicaciones más seguras.  Aún así la herramienta la encuentro bastante verde, ya que solo he conseguido instalarla sin problemas en Ubuntu 18.04; en Centos 7 ha sido imposible, por un largo número de errores, que me hicieron desistir. Además todavía tiene cosas a mejorar y a pulir, como indicar el número máximo de descargas o la integración de usuarios. Mantendré el proyecto en observación, quizás más adelante realice una actualición de este artículo.

Podéis consultar la página web del proyecto en GitHub.