--- title: "Copias de seguridad cifradas a S3 con Duplicati en Ubuntu" description: "Instala Duplicati en Ubuntu 24.04, crea una copia cifrada e incremental hacia un bucket S3, prográmala con retención y comprueba que puedes restaurarla." category: "Almacenamiento y Copia de Seguridad Avanzada" language: es source: https://cubepath.com/es/docs/almacenamiento-y-copia-de-seguridad-avanzada/copia-de-seguridad-de-duplicati-al-almacenamiento-en-la-nube updated: 2026-09-25 --- # Copias de seguridad cifradas a S3 con Duplicati en Ubuntu Duplicati es una herramienta de copias de seguridad de código abierto que cifra los datos con AES-256 en el propio servidor, los divide en bloques deduplicados y los sube a almacenamiento remoto como Amazon S3, Backblaze B2 o cualquier servicio compatible con S3. En este tutorial instalarás Duplicati como servicio en Ubuntu 24.04, crearás una copia diaria de `/etc`, `/home` y `/var/www` hacia un bucket S3, definirás una política de retención y harás una restauración de prueba para confirmar que la copia sirve. ## Requisitos previos - Un servidor con Ubuntu 24.04 LTS, por ejemplo un VPS de CubePath, con al menos 1 GB de RAM. - Un usuario no root con privilegios `sudo`. - Un bucket en un servicio compatible con S3 y un par de claves de acceso (Access Key ID y Secret Access Key) con permiso de lectura, escritura y listado sobre ese bucket. - Un cliente SSH en tu equipo local para abrir un túnel hacia la interfaz web. ## Paso 1: Instalar Duplicati Duplicati publica paquetes `.deb` en su página de descargas y en GitHub. Para un servidor sin entorno gráfico se usa la variante `cli`, que incluye el servidor web, el programador de tareas y las herramientas de línea de comandos, pero no el icono de bandeja. Consulta la última versión estable en [duplicati.com/download](https://duplicati.com/download). En el momento de escribir esta guía es la 2.4.0.0. Descarga el paquete para `x64` (usa `arm64` si tu servidor es ARM): ```bash cd /tmp wget https://github.com/duplicati/duplicati/releases/download/v2.4.0.0_stable_2026-09-03/duplicati-2.4.0.0_stable_2026-09-03-linux-x64-cli.deb ``` Instálalo con `apt` para que resuelva las dependencias (OpenSSL e ICU): ```bash sudo apt update sudo apt install ./duplicati-2.4.0.0_stable_2026-09-03-linux-x64-cli.deb ``` Comprueba la versión instalada: ```bash dpkg -s duplicati | grep Version ``` ```output Version: 2.4.0.0 ``` El paquete instala los binarios en `/usr/bin` (`duplicati-server`, `duplicati-cli`, `duplicati-server-util`...), la unidad `duplicati.service` y el archivo de opciones `/etc/default/duplicati`. ## Paso 2: Arrancar el servicio La unidad de systemd ejecuta `duplicati-server` como root, lo que le permite leer cualquier archivo del sistema. Actívala y arráncala: ```bash sudo systemctl enable --now duplicati ``` Verifica que está activa y en qué dirección escucha: ```bash systemctl status duplicati --no-pager sudo ss -tlnp | grep 8200 ``` ```output LISTEN 0 512 127.0.0.1:8200 0.0.0.0:* users:(("duplicati-serve",pid=2143,fd=312)) ``` Por defecto la interfaz web solo escucha en `127.0.0.1:8200`. Déjalo así: no abras el puerto 8200 en el cortafuegos. Accederás a través de un túnel SSH. ## Paso 3: Acceder a la interfaz web por túnel SSH Desde tu equipo local, abre un túnel que redirija el puerto 8200 local al del servidor. Sustituye `your_user` y `your_server_ip` por tus datos: ```bash ssh -L 8200:127.0.0.1:8200 your_user@your_server_ip ``` Mientras esa sesión esté abierta, la interfaz estará disponible en `http://localhost:8200` en tu navegador. Duplicati exige contraseña para la interfaz web y, si no has definido ninguna, genera una aleatoria al arrancar. Define la tuya desde el servidor (en otra terminal SSH) con la utilidad incluida: ```bash sudo duplicati-server-util change-password ``` La herramienta te pedirá la nueva contraseña. Usa una robusta y guárdala en tu gestor de contraseñas. Después inicia sesión en `http://localhost:8200` con ella. > Nota: si la utilidad no consigue conectar con el servidor, revisa el registro con `sudo journalctl -u duplicati -n 50 --no-pager`. Al arrancar sin contraseña conocida, Duplicati escribe ahí un enlace de inicio de sesión de un solo uso que puedes abrir a través del túnel para cambiar la contraseña desde **Configuración**. ## Paso 4: Preparar el bucket de destino Antes de crear la tarea, reúne estos datos de tu proveedor S3: | Dato | Ejemplo | |------|---------| | Servidor (endpoint) | `s3.eu-west-1.amazonaws.com` o el endpoint de tu proveedor | | Bucket | `your_bucket` | | Carpeta dentro del bucket | `duplicati/web01` | | Región | `eu-west-1` | | Access Key ID / Secret | las claves creadas para Duplicati | Crea unas claves exclusivas para este servidor con permisos limitados a ese bucket. Si el servidor se ve comprometido, podrás revocarlas sin afectar a otros sistemas. ## Paso 5: Crear la tarea de copia de seguridad En la interfaz web pulsa **Añadir copia de seguridad** y elige **Configurar una nueva copia de seguridad**. El asistente tiene cinco pantallas. ### General - **Nombre**: por ejemplo `web01-diaria`. - **Cifrado**: `AES-256 encryption, built in`. - **Frase de contraseña**: genera una larga, por ejemplo con `openssl rand -base64 32` en el servidor. > Advertencia: sin la frase de contraseña no hay forma de recuperar los datos. Guárdala fuera del servidor (gestor de contraseñas o caja fuerte) antes de continuar. ### Destino - **Tipo de almacenamiento**: `S3 compatible`. - Rellena servidor, bucket, región, carpeta y las claves de acceso del paso anterior. - Pulsa **Probar conexión**. Debe responder que la conexión funciona. Si la carpeta no existe, Duplicati ofrecerá crearla. ### Datos de origen Selecciona las rutas que quieres proteger, por ejemplo: - `/etc/` - `/home/` - `/var/www/` En **Filtros** añade exclusiones para lo que no aporta nada al restaurar, como `*/.cache/` o `*/node_modules/`. No incluyas `/proc`, `/sys`, `/dev` ni `/run`: son sistemas de archivos virtuales. ### Programación Activa **Ejecutar automáticamente** y elige una hora de poco tráfico, por ejemplo cada día a las 03:00. El programador forma parte de `duplicati-server`, así que no necesitas cron. ### Opciones - **Tamaño del volumen remoto**: deja el valor por defecto (50 MB) salvo que tengas un motivo para cambiarlo. - **Retención de copias**: elige **Retención de copias inteligente**, o **Personalizada** con un valor como `7D:1D,4W:1W,12M:1M`. Esa cadena significa: una versión diaria durante 7 días, una semanal durante 4 semanas y una mensual durante 12 meses. Las versiones que quedan fuera se borran del bucket automáticamente tras cada copia. Guarda la tarea y pulsa **Ejecutar ahora** para lanzar la primera copia completa. Las siguientes serán incrementales: solo se suben los bloques que hayan cambiado. ## Paso 6: Verificar la copia Cuando termine, la página de inicio mostrará la fecha de la última copia correcta, el número de versiones y el tamaño en destino. Revisa también el registro del servicio por si hubo avisos: ```bash sudo journalctl -u duplicati --since "1 hour ago" --no-pager | tail -n 20 ``` Duplicati puede descargar una muestra de volúmenes y comprobar sus hashes. Desde la tarea, abre el menú y usa **Verificar archivos**. Para hacerlo desde la terminal, exporta la tarea en **Exportar > Como línea de comandos**: obtendrás la URL de almacenamiento con todas las opciones. Con ella puedes ejecutar una verificación completa: ```bash sudo duplicati-cli test "s3://your_bucket/duplicati/web01?..." all --passphrase="your_passphrase" ``` Sustituye la URL por la que te dio la exportación. Una verificación sin errores indica que los volúmenes remotos están completos y se pueden descifrar. > Consejo: el comando exportado contiene las claves S3 y la frase de contraseña. No lo guardes en archivos legibles por otros usuarios ni en el historial de la shell; puedes anteponer un espacio al comando si `HISTCONTROL` incluye `ignorespace`, que es el valor por defecto en Ubuntu. ## Paso 7: Hacer una restauración de prueba Una copia que nunca se ha restaurado no está comprobada. Restaura `/etc/ssh` en una carpeta temporal y compárala con el original. 1. En la interfaz, entra en **Restaurar** y elige la tarea `web01-diaria`. 2. Selecciona la versión más reciente y marca la carpeta `/etc/ssh/`. 3. En **Restaurar en**, elige **Elegir ubicación** e indica `/tmp/restore-test`. 4. Marca **Restaurar permisos de lectura y escritura** y pulsa **Restaurar**. Compara el resultado con el original: ```bash sudo diff -r /etc/ssh /tmp/restore-test/ssh && echo "Restauración idéntica" ``` ```output Restauración idéntica ``` Borra la carpeta de prueba al terminar: ```bash sudo rm -rf /tmp/restore-test ``` Guarda también una copia de la configuración de la tarea (**Exportar > A archivo**, con cifrado). Si pierdes el servidor, podrás importarla en una instalación nueva de Duplicati y restaurar directamente desde el bucket. ## Solución de problemas **La interfaz responde con un error de nombre de host no permitido.** Duplicati solo acepta peticiones dirigidas a `localhost` o a la IP de escucha. Si accedes por el túnel SSH usando `http://localhost:8200` no deberías verlo. Si necesitas otro nombre, añádelo en `/etc/default/duplicati` con `DAEMON_OPTS="--webservice-allowed-hostnames=your_hostname"` y reinicia con `sudo systemctl restart duplicati`. **El servicio no arranca y el registro menciona ICU.** Duplicati necesita la biblioteca ICU del sistema. En Ubuntu 24.04 instálala con `sudo apt install libicu74` y reinicia el servicio. **La copia falla con `AccessDenied` o `403`.** Las claves no tienen permiso de listado o escritura sobre el bucket o la carpeta. Revisa la política asociada a las claves y vuelve a pulsar **Probar conexión** en la pantalla de destino. **Bases de datos en ejecución.** Duplicati copia archivos; los ficheros de datos de MySQL o PostgreSQL en uso pueden quedar inconsistentes. Programa un volcado (`mysqldump`, `pg_dump`) antes de la hora de la copia e incluye el directorio de volcados en los datos de origen. ## Conclusión Tienes Duplicati funcionando como servicio en Ubuntu 24.04, con copias diarias cifradas en el servidor antes de salir hacia S3, una política de retención que limpia las versiones antiguas y una restauración comprobada. Como siguientes pasos, configura notificaciones por correo en **Configuración > Opciones predeterminadas** para enterarte de los fallos, programa una restauración de prueba periódica y añade una segunda tarea hacia otro proveedor si quieres cumplir la regla 3-2-1.