Sustituyendo los servicios de nube pública de terceros por Syncthing
#syncthing #nube
2024-12-30
Cuando hablamos de servicios de nube pública, si le preguntas a un usuario ¿qué es la nube? suelen dar todo tipo de respuestas pero sólo una es válida y común a todas las nubes: "la nube es el ordenador de otra persona". Si nos preocupa la seguridad y privacidad o si somos responsables del tratamiento de datos deberíamos usar únicamente una nube cifrada para asegurarnos de que ni el prestatario del servicio pueda acceder al contenido de nuestros archivos y también deberíamos exigir incluso contractualmente garantías referentes a la continuidad del servicio y certificación de borrado de datos si llega el momento de dar de baja el servicio. Pero lo más usual es que tanto usuarios domésticos como la mayoría de autónomos e incluso pequeñas empresas simplemente pasen de todo y acaben contratando los servicios de nube no cifrada y gratuitos, casi siempre de las GAFAM, sin exigir ninguna garantía. Sólo los más metidos en esto de la privacidad usarán esos servicios con algún software de cifrado como Cryptomator. En mi caso hace relativamente poco di de baja el servicio de nube de OneDrive, ya redacté un artículo sobre la pesadilla que me supuso dejar ese servicio y sus nulas garantías:
La cuestión es que ya seamos simples usuarios o pequeños empresarios, acabamos usando servicios sin garantías, en muchos casos simplemente porque son gratis, sin cuestionarnos ni dónde están nuestros datos, cómo se tratan y ni siquiera saber si al darte de baja tus datos se borrarán de forma efectiva. En este artículo voy a intentar dar una solución radical perfectamente válida para la mayoría de usuarios: prescindir de cualquier servicio de nube, pero también de montarnos nuestra propia nube ya sea en un NAS, VPS o lo que sea. Para ello aprovecharemos las características de Syncthing, que es un software de sincronización de archivos.
Qué tipo de nube podemos sustituir con Syncthing
Syncthing es un software de sincronización, así que sólo lo podremos usar para sustituir la nube si sólo la usamos para tener copias de respaldo, no tiene más funcionalidades. Pero sorprendentemente te permite sincronizar en dispositivos no confiables, lo veremos más adelante.
Si usamos servicios de nube para hacer trabajo colaborativo en el que se requiera por ejemplo una suite ofimática online, como es el caso de la suite de Microsoft, no podremos sustituir ese servicio por Syncthing. En el caso de que necesites una nube para trabajo colaborativo te recomiendo usar un servicio cifrado, por ejemplo una instancia de CryptPad o incluso montarte tu propia instancia en tu servidor:
Si sois de los que os gusta compartir archivos, videos y fotos con un par de clicks desde vuestro OneDrive o Google Drive, tampoco podrás sustituir ese servicio por Syncthing. Si quieres compartir archivos tendrás que usar otras vías como el email, una app de mensajería o algún servicio para compartir archivos cifrándolos antes de enviarlos, claro. Te dejo links a algunos servicios para compartir archivos, hay muchos más:
Y si lo que quieres es compartir archivos de forma completamente anónima, te recomiendo usar OnionShare, cifrándolos y borrando los metadatos antes de compartir por si acaso:
Desde el pc tienes muchas opciones de software para eliminar metadatos y cifrar, desde el móvil te propongo estas:
Requisitos para sustituir tu nube de respaldo por Syncthing
- Disponer de varios dispositivos entre los que sincronizaremos nuestros archivos, pueden ser tuyos y también dispositivos no confiables de otras personas con los que quieras sincronizar pero no quieras que tengan acceso al contenido de tus archivos.
- Todos los dispositivos deberán tener espacio libre suficiente para poder sincronizar nuestros archivos
Instalación de Syncthing y configuración para que arranque al iniciar el sistema y funcione en segundo plano:
Me remito a mi artículo:
Syncthing, la mejor forma de sincronizar carpetas entre dispositivos.
Aquí tienes las instrucciones de la web de Syncthing para instalar en Debian y derivadas:
Guía de configuración
Redacto la guía para el caso de sincronización entre dos PCs, PC1 y PC2, en el caso de querer sincronizar nuestros archivos del móvil en un PC deberemos instalar Syncthing en el móvil, aquí tienes el enlace, las configuraciones a hacer son muy similares pero cambian algo los menús, lo importante es que te quedes con los conceptos sobre cómo configurar Syncthing:
Los desarrolladores de Syncthing anunciaron que dejan el desarrollo de la versión para Android, pero tenemos Synching-Fork que sigue con el desarrollo y funciona francamente bien.
- Deberás instalar Syncthing en todos los equipos en los que quieras sincronizar tus archivos, también deberás configurarlo para que arranque al inicio del sistema y funcione en segundo plano.
- Tras reiniciar tu PC, abre un navegador web y accede al panel de control y configuración de Syncthing accediendo a esta url local. Es posible que te salga un error, es porque el certificado de esa web local es autogenerado por Syncthing para que la conexión entre tu navegador y Syncthing sea cifrada, si es así deberás aceptar la excepción para ver el panel de control del Syncthing.
- Vemos tres zonas en el panel de control: a la izquierda las carpetas que estamos sincronizando (el programa crea una por defecto pero podemos elegir la que queramos de nuestro sistema), a la derecha arriba los datos del equipo actual y abajo un listado con los dispositivos en los que estamos sincronizando nuestros archivos.
- Dale nombre a este PC, accede arriba a la derecha a "Acciones" y "Ajustes" y dale un nombre al equipo, por ejemplo PC1
- Ahora vamos a configurar un nuevo dispositivo con el que sincronizar. En el menú de arriba "Acciones" pulsamos sobre "Mostrar ID". Nos saldrá una ventana con el identificador de nuestro equipo actual y un QR. Copiamos el identificador y lo mandamos por email u otra vía al otro dispositivo con el que queremos sincronizar.
- Sin apagar el PC1 ni salir del panel de control de Syncthing abrimos el otro PC en el que queremos tener una copia sincronizada de nuestros archivos y accedemos al panel de control de Syncthing como hemos hecho en PC1. Ve a "Acciones" y "Ajustes" y pon el nombre PC2 a ese equipo. Nos vamos abajo a la derecha accedemos a "Añadir un dispositivo", pegamos el identificador de PC1 y guardamos.
- Fíjate en el panel de control de PC1, te saldrá una pantalla para que aceptes el nuevo dispositivo. Comprueba que el identificador que te muestra es correcto y acepta. Ahora ambos dispositivos se conocen y podrán establecer conexiones cifradas.
- Vamos a configurar que una carpeta de PC1 ese sincronice con PC2, por ejemplo la carpeta ~/trabajo. En el PC1, que suponemos es el que tiene una carpeta ~/trabajo llena de archivos nos vamos al panel de control de Syncthing, pulsamos en "Agregar carpeta". Especificamos una etiqueta para la carpeta, por ejemplo "Trabajo" y su ruta "/home/usuario/trabajo".
- Sin salir de esa ventana, accede a la pestaña "Compartiendo" y selecciona los dispositivos con las que quieres compartir, en este caso PC2.
- Sin salir nos vamos a la pestaña "Versioneado de Archivos". Aquí configuramos qué queremos que suceda cuando en otro dispositivo se borra un archivo, en mi caso siempre opto por la opción de "Versioneado de archivos de la papelera" y "Limpiar tras" 30 días. Con esto lo que consigo es que si borro un archivo de la carpeta ~/trabajo en PC2 también se borrará en PC1 pero mantendrá una copia del archivo en la carpeta ~/trabajo/.stversions de PC1 durante 30 días, por si acaso. Y al revés, si borro un archivo de la carpeta ~/trabajo de PC1 se borrará de la carpeta ~/trabajo de PC2 pero mantendrá una copia de ese archivo durante 30 días en la carpeta ~/tabajo/.stversions de PC2. Es decir, además de sincronizar podemos recuperar copias de los archivos en caso de error. Syncthing permite otras modalidades de versioneado, en mi caso con la papelera tengo suficiente.
- Una vez has seleccionado la carpeta que quieres sincronizar, con quien la quieres sincronizar y la modalidad de versioneado, aceptas y mira la pantalla de PC2, te saldrá un mensaje para que aceptes sincronizar esa carpeta, comprueba que la ruta de la carpeta en PC2 es la correcta y acepta.
- Ahora la carpeta ~/trabajo ya está sincronizada entre PC1 y PC2, en principio no tienes nada más que configurar.
Respaldo de archivos en dispositivos no confiables
Ojo, esta característica está todavía en Beta. Yo llevo usándola más de un año sin problemas pero te recomiendo precaución.
Imagina que puedes disponer de un dispositivo, PC3, en casa de un familiar o amigo y quieres usarlo para tener otra copia de tus archivos allí pero no quieres que esa persona pueda acceder al contenido de esos archivos, estaríamos hablando entonces de sincronizar archivos en un dispositivo No Confiable. En este caso añadiremos en PC1 ese dispositivo no confiable PC3 y a la hora de configurar la carpeta de PC1 que queremos sincronizar en PC3 simplemente deberemos poner una password, al ponerla el simbolido del candado saldrá cerrado. Después en PC3 aceptamos la sincronización de esa carpeta. En este caso los archivos de ~/trabajo de PC1 se cifrarán localmente en PC1 con la password que has configurado y se almacenarán cifrados en PC3.
Si accedes a la carpeta ~/trabajo de PC3 verás que sólo hay unas carpetas y archivos cifrados, incluso el nombre de los archivos está cifrado. Para esta caso de sincronización con dispositivos no confiables la sincronización es unidireccional, es decir, lo que hay en PC1 se sincroniza en PC2 pero si haces cambios en PC3 simplemente creo que te cargas el tinglado, así que no cambies nada de la carpeta ~/trabajo de PC3. Tampoco para este caso hay versioneado en la carpeta de PC3, si borras algo en PC1 se borra en PC3, no hay una carpeta ~/trabajo/.stversions en PC3.
Recuperación de archivos del dispositivo no confiable
Hay dos métodos de recuperación:
- Recuperación remota en otro PC, instala Synthing en otro PC, por ejemplo PC4, añade el dispositivo no confiable PC3 y crea en PC4 la carpeta en la que quieres recuperar tus archivos. Después sincroniza esa carpeta con PC3 cambiando el nombre de "ID de carpeta" por el mismo que tiene en PC3 e introduce la contraseña de cifrado que pusiste en su día. Después espera y tus archivos sin cifrar aparecerán en esa carpeta de PC4.
- Recuperación a partir de la copia cifrada que hay en PC3, debes tener acceso a ese PC o que te faciliten la carpeta donde están tus archivos cifrados, fíjate que dentro esté la carpeta .stfolder y contenga el archivo "syncthing-encryption_password_token", ese archivo contiene el ID de la carpeta y un token de verificación. Descifra el contenido de la carpeta con este comando:
syncthing decrypt --to <plaintext-destination> --password <your-password> <encrypted-folder-path>
Mi caso de uso de cifrado en dispositivos no confiables
En mi caso tengo un disco externo en el ordenador de un familiar en otro municipio, con Syncthing instalado y configurado para que sincronice varios de mis carpetas más sensibles. Ya he hecho algunas pruebas de recuperación de los archivos y por ahora todo ok, aún así para este caso de uso recomiendo prudencia, en la web de Syncthing esta funcionalidad todavía sale en beta.
Más configuraciones y consejos
Si exploras un poco los menús tanto del panel de control del cliente de escritorio como del cliente de Android verás que Syncthing tiene muchísimas opciones de configuración. Un consejo, a menos que sepas muy bien qué estás haciendo no vale la pena tocar nada, el programa ya viene muy bien configurado por defecto.
Ventajas de sustituir la nube por Syncthing
- Dejas de depender de servicios de terceros
- El tráfico de datos es cifrado entre tus dispositivos, no es posible un ataque de MITM
- En general el funcionamiento de Syncthing es muy bueno, te llegas a olvidar de que está funcionando
Desventajas de sustituir la nube por Syncthing
- Como te he comentado esto no sustituye las suites ofimáticas online para trabajo colaborativo, tampoco la facilidad que nos las nubes públicas para compartir archivos
- Aunque en general funciona muy bien no lo hace en tiempo real, verás que entre ordenadores en local se suelen establecer conexiones TCP LAN o QUIC LAN que prácticamente funcionan en tiempo real pero en el móvil suele establecer conexiones RELAY WAN que serán más lentas.
- Ten precaución, en al caso de que por ejemplo necesites sincronizar desde el PC con otro dispositivo que tengas que llevarte fuera, antes de apagar el PC vigila que realmente se ha sincronizado con el otro dispositivo.
Podéis poneros en contacto conmigo para preguntarme lo que queráis o sugerir cambios. Esto de Syncthing está muy bien pero como véis hay que dedicarle tiempo.
This work by SL1200 is licensed under CC BY-NC-SA 4.0
Source