Las copias de seguridad son un pilar fundamental en la gestión de datos y la prevención de pérdida de información valiosa. En un mundo donde nuestros archivos digitales son esenciales, ya sea para uso personal o profesional, la capacidad de recuperar datos críticos en caso de desastres, errores humanos o problemas técnicos es inestimable.

En este contexto, RClone se presenta como una herramienta imprescindible. RClone es una aplicación de línea de comandos que brinda la capacidad de sincronizar archivos entre dispositivos y servicios de almacenamiento en la nube. Su versatilidad, seguridad y compatibilidad multiplataforma lo convierten en una opción ideal para aquellos que desean asegurarse de que sus datos estén respaldados de manera efectiva y accesible en todo momento.

En este artículo, exploraremos cómo utilizar RClone para simplificar el proceso de creación de copias de seguridad, garantizando así la tranquilidad de saber que nuestros archivos más importantes están resguardados de manera segura y fácilmente accesibles en caso de necesidad.

¿Que ventajas tiene RClone?
  • Multiplataforma: RClone es compatible con una amplia gama de sistemas operativos, incluyendo Linux, macOS y Windows. Esto garantiza que puedas utilizar la misma herramienta independientemente del sistema que estés usando.
  • Seguridad: RClone ofrece transferencias cifradas y seguras, lo que significa que tus datos están protegidos durante su transferencia entre dispositivos y servicios en la nube. Esto es esencial para mantener la confidencialidad de la información.
  • Integración con cloud: RClone se integra con numerosos servicios de almacenamiento en la nube populares, como Dropbox, Google Drive, Amazon S3 y más. Esto te permite respaldar tus datos en tus servicios en la nube preferidos de manera sencilla y eficiente.
  • Open-Source: RClone es un software de código abierto, lo que significa que es transparente y está respaldado por una comunidad de usuarios y desarrolladores. Esto proporciona confianza en su calidad y permite su mejora continua.
  • Mantenimiento activo: La herramienta es mantenida tanto por su creador como por la comunidad, lo que garantiza actualizaciones regulares y la resolución de problemas, manteniéndola relevante y funcional.
  • Versatilidad: RClone ofrece una amplia gama de opciones y configuraciones, lo que lo hace adecuado para una variedad de necesidades de copia de seguridad, desde simples copias de seguridad locales hasta sincronización con múltiples servicios en la nube.
  • Automatización: Con RClone, puedes automatizar tus tareas de copia de seguridad y programar respaldos regulares, lo que te ahorra tiempo y asegura que tus datos estén siempre actualizados.
  • Facilidad de uso: Aunque es una herramienta de línea de comandos, RClone proporciona una interfaz de usuario intuitiva para la configuración inicial, lo que facilita su adopción incluso para usuarios menos experimentados.
    Estas ventajas hacen que RClone sea una elección sólida para gestionar tus copias de seguridad, proporcionando seguridad y tranquilidad al respaldar tus datos importantes.
Como tienes que instalarlo

WINDOWS

RClone es multiplataforma y dependiendo de tu sistema operativo se siguen diferentes pasos, para la instalación en Windows es un proceso sencillo:

  1. Entra en la web de RClone y descarga el archivo ejecutable de Windows.
  2. Ejecuta el archivo descargado y sigue las instrucciones del instalador.
  3. Una vez instalado puedes usarlo desde la línea de comandos de Windows.

MACOS

En macOS podemos instalarlo con el gestor de paquetes Homebrew, para ello en el terminal de macOS ejecutamos el siguiente comando:

brew install rclone

Para instalar Homebrew teneis las instrucciones en su web.

LINUX

Ahora bien, yo lo voy a usar en una máquina en la que tengo HomeAssitant y tengo que guardar sus copias de seguridad. En Linux se instala con estos comandos:

sudo apt-get update
sudo apt-get install rclone

A continuación vamos a configurarlo para que conecte con nuestro servicio en la nube, en este caso Dropbox:

rclone config

Como es la primera vez nos dirá que no hay configurado ningún servicio remoto, en el menú que aparece seleccionamos «n» (New remote).

No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> 

La configuración es facil, primero nos pide un nombre para esa configuración y luego nos da un listado de los servicios con los que está integrado, una vez seleccionado el servicio nos pide el id y el token de acceso pero la forma más sencilla de actuar es usando la configuración automática por lo que debemos dejarlos en blanco.

Storage> 9
** See help for dropbox backend at: https://rclone.org/dropbox/ **

OAuth Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id> 
OAuth Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret> 
Edit advanced config? (y/n)
y) Yes
n) No (default)
y/n> 

La auto configuración lo que va a hacer es abrir en un browser donde introducir las credenciales del servicio que vamos a usar para obtener la autorización para rclone.

Este proceso de configuración es bastante sencillo pero si lo haceis en una máquina remota como me sucede a mi hay que redireccionar esa llamada a vuestro browser local a través del ssh sino no saltaría la autenticación web del servicio:

ssh -L localhost:53682:localhost:53682 ubuntu@192.168.1.3

Una vez tenemos la configuración de la conexión en orden, RClone te da la posibilidad de usar una password para evitar que la conexión la use otro usuario. Mi recomendación es crear la contraseña pero sino quieres protegerla simplemente borra las líneas del script final que se refieren a la contraseña… aunque claro en estos tiempos toda seguridad es poca 😉

Configuración y creación del script

Para mi lo primero de todo es crear un archivo en el que tener la contraseña de acceso a la configuración del servicio de rclone y darle permisos para que solo nuestro usuario pueda usarlo. Para eso nos creamos un json sencillito de este estilo que podremos usar para añadir contraseñas de otros servicios:

{
    "SECRET_RCLONE_KEY": "1234567890"
}

y establecemos los permisos de acceso:

chmod 600 secrets_config.json

Quizás lo mejor sería usar otro servicio externo que me encriptase la password o algo parecido pero eso alargaría este post demasiado por lo que lo dejaré para otro momento.

Para poder leer el json desde el script que vamos a crear necesitamos una aplicación que se llama jq, simplemente hay que instalarla con el siguiente comando:

sudo apt-get install jq

Ahora lo que vamos a hacer es crear un archivo script.sh y le damos permisos de ejecución:

chmod +x script.sh

y ya solo queda editarlo:

sudo vim script.sh

lo que vamos a hacer es leer la pasword del archivo json que creamos previamente y luego hacer un .tar.gz con el contenido de la carpeta que queremos guardar y luego llamar a rclone con la password para que lo suba a dropbox:

#!/bin/bash

# Ruta al directorio de configuración de Home Assistant
HA_CONFIG_DIR="/docker/"

# Ruta donde se almacenarán las copias de seguridad localmente
BACKUP_DIR_LOCAL="/backupsDocker/"

# Ruta donde se almacenará la copia de seguridad en la nube (usando Rclone)
BACKUP_DIR_REMOTE="ConfigDropbox:Backups"

# Nombre de archivo de la copia de seguridad
BACKUP_FILENAME="docker-$(date +\%Y\%m\%d\%H\%M\%S).tar.gz"

# Ubicación del archivo de contraseñas de Rclone
RCLONE_CONFIG_FILE="/ruta_de_configuracion_rclone/rclone.conf"

# Leer la password del archivo de configuración local
RCLONE_CONFIG_PASS=$(jq -r .SECRET_RCLONE_KEY /ruta_de_secrets/secrets_config.json)

# Crear el archivo de copia de seguridad local
tar -czvf "$BACKUP_DIR_LOCAL/$BACKUP_FILENAME" -C "$HA_CONFIG_DIR" .
    
# Subir la copia de seguridad a la nube usando Rclone con la contraseña del archivo          
RCLONE_CONFIG_PASS=$RCLONE_CONFIG_PASS rclone --config "$RCLONE_CONFIG_FILE" copy "$BACKUP_DIR_LOCAL/$BACKUP_FILENAME" "$BACKUP_DIR_REMOTE"
          
# Eliminar copias de seguridad locales antiguas
find "$BACKUP_DIR_LOCAL" -type f -name "docker-*.tar.gz" -mtime +7 -exec rm {} \;

# Eliminar copias de seguridad antiguas en la nube
RCLONE_CONFIG_PASS=$RCLONE_CONFIG_PASS rclone --config "$RCLONE_CONFIG_FILE" delete "$BACKUP_DIR_REMOTE" --min-age 7d

Este script no crea ni comprueba que existan las carpetas en las que estamos extrayendo la información o copiandola, por lo que hay que tenerlo en cuenta antes de ejecutar el script y para arrancarlo manualmente simplemente se ejecuta de la siguiente forma:

sudo ./script.sh
Conclusiones

Para finalizar dejo aquí algunos puntos de mejora que creo que son interesantes al realizar copias de seguridad y mas concretamente con RClone:

  • Utiliza la encriptación proporcionada por RClone para cifrar tus copias de seguridad antes de subirlas a la nube. Además, considera utilizar servicios de almacenamiento en la nube que también ofrezcan su propia capa de encriptación, lo que proporciona una doble seguridad.
  • Asegúrate de utilizar contraseñas fuertes tanto para tus cuentas de servicios en la nube como para la configuración de RClone. Contempla usar servicios de administración de contraseñas y generadores de contraseñas seguras.
  • Almacena los archivos de configuración de RClone y las contraseñas de forma segura, fuera del alcance de personas no autorizadas. Utiliza permisos los adecuados en el sistema de archivos tal como se ha mostrado en el ejemplo.
  • Verificar las rutas de origen y destino. Un error en la configuración podría sobrescribir datos importantes.
  • Habilita la autenticación de doble factor en tus cuentas de servicios en la nube. Esto agrega una capa adicional de seguridad al requerir un código de autenticación temporal además de la contraseña.
  • Establece un sistema de monitorización para supervisar el estado de tus copias de seguridad.
  • Mantén RClone, el sistema y las herramientas que uses al día, las actualizaciones corrigen fallos de seguridad importantes.
  • A lo mejor es pasarse pero no estaría mal guardar cada cierto tiempo las copias de seguridad en dispositivos físicos, esto proporciona una capa de seguridad extra en caso de ataque a tus sistemas.
  • Prueba que puedes recuperar tus sistemas con las copias de seguridad que realizas.

Con estos consejos y una herramienta tan sencilla como RClone puedes fortalecer la seguridad de tus sistemas y garantizar su seguridad.

Hasta aquí todo, espero que os halla resultado interesante el artículo. Happy coding!!