Cuando los backups fallan
Era un martes a las 2 de la mañana. Un script mal escrito empezó a recorrer /home y borró archivos de configuración de decenas de usuarios. El equipo tenía backups… pero estaban en el mismo servidor. Y ese servidor ya estaba comprometido.
Esta historia se repite más veces de las que se cuenta en público. Casi nunca es por falta de herramientas, sino por una arquitectura de respaldos negligente.
Esta guía te muestra cómo montar una estrategia de backups seria y robusta con BorgBackup en Debian 13: deduplicada, cifrada de extremo a extremo, automatizada y —sobre todo— recuperable cuando realmente lo necesites.
¿Por qué BorgBackup?
Borg no es el único software de backups, pero sí uno de los pocos que combina varias características clave en una sola herramienta:
- Deduplicación a nivel de bloque: solo guarda los cambios entre snapshots, lo que reduce drásticamente el espacio necesario.
- Cifrado zero-knowledge del lado del cliente: tus datos salen cifrados del servidor. El proveedor remoto nunca puede acceder a ellos.
- Compresión eficiente: soporta LZ4 (priorizando velocidad) y Zstandard (mejor ratio).
- Montaje vía FUSE: puedes explorar cualquier backup como si fuera un sistema de archivos normal.
Cómo funciona internamente (sin complicaciones)
Antes de ejecutar el primer comando, vale la pena entender el flujo:
- Chunking: Borg divide los archivos en bloques de tamaño variable.
- Deduplicación local: compara esos bloques con los que ya tiene y solo envía los nuevos.
- Cifrado: cada bloque se cifra con la clave del repositorio antes de salir.
- Transmisión por SSH: usa el SSH estándar, sin dependencias extra.
- Almacenamiento remoto: el destino solo recibe bloques opacos que no puede descifrar.
Este diseño explica por qué los backups incrementales de Borg son tan eficientes. Puedes modificar 10 archivos de 1 GB y, si solo cambiaron 50 MB en total, Borg solo transmitirá esos ~50 MB.
Requisitos previos
- Servidor con Debian 13 (nuestro caso) y acceso root.
- Conexión a internet.
- Una cuenta en BorgBase (nuestro caso) o un servidor SSH propio.
- 10-15 minutos para la configuración inicial.
1. Instalación
BorgBackup está disponible directamente en los repositorios de Debian 13:
apt update && apt install borgbackup -y
Verifica la versión instalada:
borg --version
2. Generación de claves SSH
Para la automatización necesitamos acceso SSH sin contraseña:
ssh-keygen -t ed25519 -a 100 -C "root@tu-servidor-borg"
Se generarán dos archivos:
| Archivo | Uso |
|---|---|
/root/.ssh/id_ed25519 | Clave privada (nunca sale del servidor) |
/root/.ssh/id_ed25519.pub | Clave pública (la subirás al destino) |
Puedes ver la clave pública con:
cat /root/.ssh/id_ed25519.pub
3. Configuración del repositorio remoto
Opción A: BorgBase (recomendada para la mayoría)
BorgBase es un servicio diseñado específicamente para Borg.
- Sube tu clave pública en el panel de control.
- Crea un nuevo repositorio.
- Asigna permisos Full Access a la clave.
- Copia la URL del repositorio (formato:
[email protected]:repo).
Opción B: Servidor SSH propio (self-hosted)
Cualquier servidor Linux con Borg instalado sirve. Solo necesitas un directorio vacío para el repositorio y acceso SSH con clave.
4. Inicialización del repositorio
Este comando se ejecuta una sola vez:
export BORG_RSH='ssh -i ~/.ssh/id_ed25519'
borg init --encryption=repokey-blake2 usuario@repo:repo
Borg te pedirá una passphrase.
Importante: sin esta passphrase y la clave del repositorio, los datos son irrecuperables para siempre. Guárdalos en un lugar seguro y fuera del servidor.
5. Primer backup manual
borg create --stats --progress --compression lz4 \
usuario@repo:repo::home-{now:%Y-%m-%d} \
/home
La primera ejecución enviará todos los datos. Las siguientes solo enviarán los cambios. Al final verás estadísticas detalladas de deduplicación y compresión.
6. Automatización con script
Script de respaldo (/root/backupborg.sh)
#!/bin/bash
export BORG_RSH='ssh -i ~/.ssh/id_ed25519'
export BORG_PASSPHRASE='TU_CONTRASEÑA_SEGURA'
REPO='usuario@repo:repo'
# Crear backup
borg create --stats $REPO::home-{now:%Y-%m-%d_%H%M} /home
# Política de retención
borg prune -v --list \
--keep-daily=7 \
--keep-weekly=4 \
$REPO
# Liberar espacio
borg compact $REPO
Nota de seguridad: Tener la passphrase en el script es un compromiso práctico. El archivo debe tener permisos muy restrictivos (chmod 700). Si necesitas mayor seguridad, considera systemd credentials, pass o un secret manager.
Aplica los permisos:
chmod 700 /root/backupborg.sh
Programación con cron
crontab -e
Añade:
00 03 * * 0 /root/backupborg.sh >> /var/log/borg_backup.log 2>&1
(Ejecuta cada domingo a las 3:00 AM). Revisa el log después de la primera ejecución.
7. Plan de recuperación ante desastres (DRP)
Este es el punto donde fallan la mayoría de las estrategias de backup.
Exportar la clave de recuperación
borg key export --paper usuario@repo:repo > llave_recuperacion.txt
Guarda este archivo fuera del servidor (papel, gestor de contraseñas offline, USB en otro sitio físico).
Qué necesitas para recuperar
Exactamente tres elementos:
- Acceso SSH al repositorio (clave privada).
- La passphrase.
- La clave del repositorio (o el paper key).
Si falta cualquiera de los tres, los datos son inaccesibles.
Operaciones de recuperación
Listar backups:
borg list $REPO
Restaurar un backup completo:
borg extract $REPO::home-2025-06-15 /ruta/destino
Explorar sin extraer (con FUSE):
borg mount $REPO::home-2025-06-15 /mnt/borg-restore
ls /mnt/borg-restore
borg umount /mnt/borg-restore
Recomendación fuerte: realiza al menos un simulacro de recuperación completa antes de necesitarlo de verdad. La presión es mala consejera.
8. Self-hosted vs. Servicio gestionado
Self-hosted (NAS, otro servidor, Raspberry Pi)
Ventajas:
- Control total.
- Sin costos recurrentes.
- Sin dependencia de terceros.
Desventajas importantes:
- Requiere mantenimiento constante.
- Vulnerable a desastres físicos o fallos simultáneos.
- Sin alertas automáticas si algo falla silenciosamente
BorgBase (nuestro caso)
Ventajas:
- Infraestructura profesional y monitorizada.
- Modo append-only (un servidor comprometido no puede borrar backups antiguos).
- Alertas automáticas.
- Panel visual claro y estadísticas útiles.
- Optimizado para Borg.
Desventajas:
- Costo mensual según uso.
- Dependes de un proveedor externo (aunque el cifrado mitiga el riesgo).
Criterio clave: si tu servidor de backups puede caer al mismo tiempo que el principal (mismo proveedor, mismo datacenter), el self-hosting pierde su principal ventaja. Un servicio externo resuelve el problema del aislamiento.
Tener un buen respaldo es parte de la seguridad
BorgBackup en Debian 13, especialmente combinado con BorgBase, ofrece una de las soluciones más equilibradas actualmente: eficiente en almacenamiento y ancho de banda, extremadamente segura gracias al cifrado zero-knowledge, y confiable en operación diaria.
Sin embargo, la mejor herramienta del mundo no sirve de nada si nunca la has probado en un escenario real de recuperación.
La verdadera diferencia la marca la disciplina operativa: configura el backup, automatízalo, protege tus claves y, sobre todo, practica la restauración al menos una vez.
Hazlo bien desde el principio. Cuando llegue el momento en que realmente necesites recuperar tus datos, agradecerás haber invertido ese tiempo extra.
Tema Relacionado: Infraestructura Linux/VPS