Cómo cifrar tus datos en la nube con Rclone

Actualizada:

Ya te he contado cómo instalar Rclone en Rocky Linux para gestionar copias de seguridad, pero en este artículo voy a profundizar más en un aspecto muy interesante de este programa: puede crear copias de seguridad encriptadas en un almacenamiento en la nube que tengas configurado, por ejemplo en Backblaze B2 o Amazon S3.

¡Ojo! Antes de comenzar a crear un espacio remoto cifrado con Rclone, tienes que haber creado una conexión remota con tu espacio de almacenamiento online, es decir, si usas B2 de Backblaze, tienes que haber creado previamente la conexión a un bucket remoto sin encriptar. Te he contado cómo hacerlo en cómo instalar Rclone en Rocky Linux:

Pones rclone config en línea de comandos y sigues los pasos que te indican:

Configurando nuevos servicios en rclone en Rocky Linux
No remotes found, make a new one?
n) New remote
q) Quit config
n/q> n
name> algoentremanos
Type of storage to configure.
Choose a number from below, or type in your own value
[snip]
XX / Backblaze B2
\ "b2"
[snip]
Storage> b2
Account ID or Application Key ID
account> Pones tu account ID que ha generado en Backblaze
Application Key
key> Pones tu Application Key que has generado en Backblaze
Endpoint for the service - leave blank normally.
endpoint>
Remote config
--------------------
[remote]
account = tu account ID
key = tu Application Key
endpoint =
--------------------
y) Yes this is OK
  • En mi caso personal, he creado dos conexiones cifradas, una a Backblaze B2 y otra al servicio de almacenamiento online Jottacloud. Primero he creado a conexión a ambos servicios sin cifrado.

Cómo cifrar tus datos en la nube con Rclone

  • Vamos a usar la opción Crypt de su configuración. Esta función encripta tus archivos mientras se cargan en la nube y también los desencripta cuando los descargas. Mientras estén en tu almacenamiento online, estarán completamente cifrados.
  • El cifrado se realiza utilizando NaCl SecretBox, basado en el cifrado XSalsa20 y Poly1305 para la integridad. Los nombres (nombres de archivos y directorios) también se cifran de forma predeterminada, pero esto puede dar problemas en algunas ocasiones y, es posible desactivarse.

Empezamos. Vuelves a poner:

rclone config

Y comienzas la configuración, que es muy sencilla de seguir paso a paso:

Le das a new remote (n) y eliges un nombre


n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> b2cifrado

Seleccionas la opción crypt, o el número que te pongan.

Elegimos la opción Crypt en Rclone para cifrar nuestras subidas de archivos.
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
(En mi caso fue el numero 13) / Encrypt/Decrypt a remote
   \ "crypt"
[snip]
Storage> crypt

Seleccionas la ruta en remoto. ¡Ojo! Crea una carpeta previamente en el almacenamiento remoto (carpetacifrada, por ejemplo). Es la que vas a cifrar. Mejor no cifrar la ruta raíz. Si ya tienes un remote de B2 en Rclone, llamado b2, se pone lo siguiente. Muy importante poner los dos puntos en la ruta.

Remote to encrypt/decrypt.
Normally should contain a ':' and a path, eg "myremote:path/to/dir",
"myremote:bucket" or maybe "myremote:" (not recommended).
Enter a string value. Press Enter for the default ("").
remote> b2:carpetacifrada/

Ciframos los nombres de archivos. Puedes elegir la opción 1 (standard), pero te tienes que asegurar que todos tus archivos tienen menos de 143 caracteres para no tener problemas en el espacio remoto (los sistemas de almacenamiento en la nube tienen límites en la longitud del nombre del archivo y la longitud total de la ruta). Esta es la información para Backblaze B2.

  • Off:
    • No oculta los nombres de los archivos ni la estructura de directorios
    • Permite nombres de archivo más largos (~246 caracteres)
  • Standard:
    • Nombres de archivo cifrados
    • Los nombres de los archivos no pueden ser tan largos (~143 caracteres)
    • Los nombres de archivos idénticos tendrán nombres idénticos
  • Ofuscación:
    • Es una simple “rotación” del nombre del archivo
    • Dificulta que las herramientas de escaneo automatizado capten los patrones de nombres de archivo.
Ciframos los nombres de archivos en Rclone con Crypt
How to encrypt the filenames.
Enter a string value. Press Enter for the default ("standard").
Choose a number from below, or type in your own value.
   / Encrypt the filenames.
 1 | See the docs for the details.
   \ "standard"
 2 / Very simple filename obfuscation.
   \ "obfuscate"
   / Don't encrypt the file names.
 3 | Adds a ".bin" extension only.
   \ "off"
filename_encryption>1

Ciframos los nombres de los directorios (lo mismo que antes: ten en cuenta que debes asegurarte que el número total de caracteres no supere los 143 en toda la ruta hacia tus archivos).

  • True: cifra la ruta entera
  • False: solo cifra los nombres de archivos
Cifrado de ruta completa con directorios en rclone crypt
Option to either encrypt directory names or leave them intact.

NB If filename_encryption is "off" then this option will do nothing.
Enter a boolean value (true or false). Press Enter for the default ("true").
Choose a number from below, or type in your own value
 1 / Encrypt directory names.
   \ "true"
 2 / Don't encrypt directory names, leave them intact.
   \ "false"
directory_name_encryption> 1
  • ¿Cómo podemos asegurarnos que ninguno de nuestros archivos supera los 143 caracteres? Pues tienes varias opciones. Por un lado, puedes crear un script que compruebe todos los nombres de archivos de los cuales vas a hacer un backup online. Pero hay una solución más fácil: Puedes comprimir tu copia de seguridad en unos pocos archivos y ponerles nombres muy cortos.

Superimportante. Selecciona y pon tú mismo las dos contraseñas. Que sea larga y segura, con símbolos, números y letras, más de 25 caracteres. Guárdalas en tu gestor de contraseñas. Como las pierdas, estás listo…

Generamos dos contraseñas para cifrar nuestros archivos al subirlos al almacenamiento remoto.

Password or pass phrase for encryption.
y) Yes type in my own password
g) Generate random password
y/g> y
Enter the password:
password:
Confirm the password:
password:

Password or pass phrase for salt. Optional but recommended.
Should be different to the previous password.
y) Yes type in my own password
g) Generate random password
n) No leave this optional password blank (default)
y/g/n> y

Terminamos la configuración y confirmamos los datos:

#No hace falta. Ponemos n.
Edit advanced config? (y/n)
y) Yes
n) No (default)
y/n>n

#Configuración final mostrada en pantalla
Remote config
--------------------
[b2cifrado]
type = crypt
remote = b2:carpetacifrada/
password = *** ENCRYPTED ***
password2 = *** ENCRYPTED ***
--------------------
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d>y

Y ya hemos creado un almacenamiento remoto cifrado llamado b2cifrado, al que podemos acceder mediante línea de comandos en nuestro servidor.

¿Cómo podemos iniciar la operación de cifrado de nuestros archivos?

En mi caso, suelo usar el comando sync (sincroniza dos directorios, y borra los archivos del destino que no estén presentes en origen).

Este fue mi primer intento, y tuve problemas de memoria que pararon la sincronización y mataron el proceso de Rclone en el servidor:

rclone sync /backup/ b2cifrado: --transfers 16 --b2-chunk-size 256M --buffer-size 256M --log-file=/ruta/a/rclone-sync.log --log-level INFO --progress --fast-list

En el segundo intento todo fue mejor:

rclone sync /backup/ b2cifrado: --transfers 8 --b2-chunk-size 128M --buffer-size 128M --log-file=/ruta/a/rclone-sync.log --log-level INFO --fast-list

Opciones (tienes más opciones en https://rclone.org/b2/ y en https://rclone.org/docs/):

–transfers 8: Define el número de archivos que se transferirán simultáneamente. En este caso, hasta 8 transferencias concurrentes. Puedes probar entre 10 y 30 para B2 dependiendo de los recursos de tu servidor (RAM y CPU). El valor por defecto es de solo 4.

–b2-chunk-size 128M: Establece el tamaño de los chunks (partes) para las subidas de archivos grandes. Aquí se define un tamaño de 128 megabytes por chunk. Si tienes archivos grandes, auméntalo y vete probando.

–buffer-size 128M: Define el tamaño del buffer en memoria para cada archivo en transferencia. Relacionado con el número de transferencias simultáneas y consumo de RAM (8 x 128 = 1024M de RAM).

–log-file=/ruta/a/rclone-sync.log: Especifica el archivo donde se guardará el log de la operación. Bueno para ver si hay errores de ejecución.

–log-level INFO: Establece el nivel de detalle de los logs. INFO proporciona información útil sobre el progreso y las acciones realizadas.

–progress: Muestra una barra de progreso en la salida estándar mientras se realiza la sincronización. Por si quieres ver que está pasando las primeras veces que llevas a cabo el trabajo.

–fast-list: Intenta obtener la lista completa de archivos de una sola vez (o en menos llamadas), reduciendo el número total de solicitudes API. En servicios como B2 que te cobran por estas cosas, es mejor tenerlo activado siempre. Te puede interesar: Cómo optimizar el coste de Backblaze B2 Transactions Class C con Rclone y –fast-list.

Tienes que ir jugando un poco con estos parámetros para adaptarlos a tu servidor.

Después de hacer la transferencia, te recomiendo que utilices este comando:

rclone cryptcheck /ruta b2cifrado:ruta --fast-list  

crypcheck es un comando para comprobar la integridad de una instancia remota cifrada en rclone.

Si vas a comprobar muchos archivos, usa la opción –fast-list para realizar menos transacciones.

Otras cosas a tener en cuenta

Toda la información para acceder a tus instancias cifradas en servidores de almacenamiento online se va a guardar en el archivo rclone.conf, y no está cifrado por defecto. Si estás en un entorno inseguro, debes cifrar el archivo de configuración con un password.

¿Quieres usar tu configuración de Rclone en otro dispositivo? Solo tienes que instalar Rclone en el segundo servidor u ordenador y luego transferir una copia de rclone.conf. Lo primero que tienes que hacer es averiguar donde está la configuración de Rclone en tu sistema con este comando:

rclone config file

Cuando tengas la ruta, copia el archivo y llévatelo a tu otro ordenador. Vuelve a poner el mismo comando y copia en esa ruta el archivo rclone.conf que ya tenías configurado en tu primer sistema. ¡Listo!

¿Cómo recuperas tus archivos cifrados? Sencillo. Con un comando como este:

rclone copy b2cifrado:ruta /ruta/en/tu/ordenador/

Rclone se va a encargar de desencriptar los archivos mientras los descarga.


Descubre más desde algoentremanos.com

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Foto del autor

Ivan Benito

Apasionado de la lectura y los viajes, experto en tecnología e informática y fan de la privacidad online. Desde el año 2007 me he dedicado al SEO, a escribir y a crear páginas web con WordPress sobre todo tipo de temáticas. Si tienes alguna duda y necesitas ayuda... ¡Pregúntame!

Si tienes preguntas, quieres que hagamos una review de una app, programa o producto, simplemente mándanos un e-mail mediante nuestro formulario de contacto. Te contestaremos en el menor tiempo posible. ¡Muchas gracias y salU2! Algoentremanos realiza reviews de manera profesional y en muchas ocasiones recibimos compensación de las compañías cuyos productos revisamos. Probamos cada producto a fondo y otorgamos altas calificaciones solo a los mejores. La propiedad de Algoentremanos.com es independiente y las opiniones expresadas aquí son solo nuestras. Algunos enlaces del artículo son afiliados: pueden generar un beneficio a algoentremanos.com. Saber más.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.