Copias de seguridad · 5 min read · Jan 02, 2026
Copias de seguridad automatizadas con rdiff-backup
¡Este es un “copy & paste” HowTo!
La forma más fácil de seguir este tutorial es usar un cliente de línea de comandos/cliente SSH (como
PuTTY
para Windows) y simplemente copiar y pegar los comandos (excepto donde tengas que proporcionar tu propia información como direcciones IP, nombres de host, contraseñas,…). Esto ayuda a evitar errores tipográficos.
Copias de seguridad automatizadas con rdiff-backup
Versión 1.0
Autor: Falko Timme
Este tutorial describe cómo hacer copias de seguridad automatizadas de servidores con la herramienta rdiff-backup. rdiff-backup te permite hacer copias de seguridad a través de una red usando SSH para que la transferencia de datos esté encriptada. El uso de SSH hace que rdiff-backup sea muy seguro porque nadie puede leer los datos que se están transfiriendo. rdiff-backup realiza copias de seguridad incrementales, ahorrando así ancho de banda.
Por favor, encuentra más información sobre las características de rdiff-backup aquí: http://www.nongnu.org/rdiff-backup/index.html
El problema es que SSH requiere una contraseña para iniciar sesión, lo cual no es bueno si deseas ejecutar rdiff-backup como un trabajo cron. La necesidad de una contraseña requiere interacción humana, que no es lo que queremos. Por ejemplo, para hacer una copia de seguridad del directorio /boot de server1.example.com, escribirías rdiff-backup [email protected]::/boot boot en tu servidor de copias de seguridad (en este tutorial lo llamamos backup.example.com) que intentaría guardar el directorio /boot de server1.example.com en el directorio boot de backup.example.com. Ahora, esto es lo que sucede:
| rdiff-backup@backup:~$ rdiff-backup [email protected]::/boot boot Contraseña: ----------------------------------------------------------------- Habilidades detectadas para el sistema de archivos fuente (solo lectura): Listas de control de acceso Apagado Atributos extendidos Apagado Recursos estilo Mac OS X Apagado Información del Finder de Mac OS X Apagado ----------------------------------------------------------------- Advertencia: no se puede cambiar la propiedad en el sistema de archivos en boot/rdiff-backup-data ----------------------------------------------------------------- Habilidades detectadas para el sistema de archivos de destino (lectura/escritura): Caracteres que necesitan comillas '' Cambio de propiedad Apagado Enlace duro Activado fsync() directorios Activado Permisos de inc de directorio Activado Listas de control de acceso Apagado Atributos extendidos Apagado Recursos estilo Mac OS X Apagado Información del Finder de Mac OS X Apagado ----------------------------------------------------------------- rdiff-backup@backup:~$ |
Ves, en la línea 2 se te pide la contraseña de root de server1.example.com.
Pero afortunadamente hay una solución: el uso de claves públicas. Creamos un par de claves (en nuestro servidor de copias de seguridad backup.example.com), una de las cuales se guarda en un archivo en el sistema remoto (server1.example.com). Después de esto, no se nos pedirá más una contraseña cuando ejecutemos rdiff-backup. Esto también incluye trabajos cron, que es exactamente lo que queremos.
Oh, como ya habrás adivinado por lo que he escrito hasta ahora, el concepto es que iniciamos las copias de seguridad de server1.example.com directamente desde backup.example.com; server1.example.com no tiene que hacer nada para ser respaldado.
Este howto está destinado a ser una guía práctica; no cubre los antecedentes teóricos. Estos se tratan en muchos otros documentos en la web.
¡Este documento viene sin garantía de ningún tipo! Quiero decir que esta no es la única forma de configurar un sistema así. Hay muchas maneras de lograr este objetivo, pero este es el camino que elijo. No emito ninguna garantía de que esto funcione para ti!
Paso 1: Instalar rdiff-backup en server1.example.com y backup.example.com
Primero tenemos que instalar rdiff-backup en ambos server1.example.com y backup.example.com. En sistemas Debian, puedes hacer esto simplemente ejecutando
apt-get install rdiff-backup
En otras distribuciones, la instalación es diferente (en Fedora podría ser algo como yum install rdiff-backup, en Mandriva urpmi rdiff-backup, y en SuSE deberías usar yast para instalar rdiff-backup).
Paso 2: Crear las claves en backup.example.com
En backup.example.com, creamos un grupo y un usuario no privilegiado llamado rdiff-backup. Este usuario rdiff-backup ejecutará las copias de seguridad. ¡No queremos que root ejecute las copias de seguridad por razones de seguridad!
groupadd -g 3500 rdiff-backup
useradd -u 3500 -s /bin/false -d /backup -m -c “rdiff-backup” -g rdiff-backup rdiff-backup
El segundo comando crea el usuario rdiff-backup con el directorio home /backup (que se crea automáticamente por este comando si no existe ya) que no tiene permitido iniciar sesión en la shell (nuevamente por razones de seguridad). Si el ID de grupo y el ID de usuario 3500 ya están en uso en tu sistema, reemplázalos por otro ID (libre).
Luego ejecuta
su -m rdiff-backup
Con este comando te conviertes en el usuario rdiff-backup en la shell. ¡Todos los siguientes comandos deben ejecutarse como el usuario rdiff-backup!
Crea las claves:
cd /backup
ssh-keygen -t rsa
Verás algo como esto:
| rdiff-backup@backup:~$ ssh-keygen -t rsa Generando par de claves rsa públicas/privadas. Ingresa el archivo en el que guardar la clave (/backup/.ssh/id_rsa): Directorio creado '/backup/.ssh'. Ingresa la frase de contraseña (vacío para no usar frase de contraseña): Ingresa la misma frase de contraseña nuevamente: Tu identificación ha sido guardada en /backup/.ssh/id_rsa. Tu clave pública ha sido guardada en /backup/.ssh/id_rsa.pub. La huella digital de la clave es: 88:18:4e:55:e9:27:8e:2a:44:4b:03:bd:9d:0f:fc:48 rdiff-backup@backup |
Está bien guardar la clave en /backup/.ssh/id_rsa así que simplemente puedes presionar enter. Es importante que no ingreses una frase de contraseña, de lo contrario la copia de seguridad no funcionará sin interacción humana, así que nuevamente presiona enter. Al final se crean dos archivos: /backup/.ssh/id_rsa y /backup/.ssh/id_rsa.pub.
A continuación, crea el archivo /backup/.ssh/config con el siguiente contenido:
| host server1_backup hostname server1.example.com user root identityfile /backup/.ssh/id_rsa compression yes cipher blowfish protocol 2 |
El valor de host es lo que usamos más tarde para iniciar la copia de seguridad. Puedes usar cualquier nombre que desees (por ejemplo, server1_backup, esta_es_la_maquina_que_quiero_resguardar, etc.) (pero no debe contener espacios; los guiones bajos están bien).
Cambia los permisos de ese archivo:
chmod -R go-rwx /backup/.ssh
Ahora copiamos nuestra clave pública a server1.example.com:
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Esto se verá así:
| rdiff-backup@backup:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] 23 La autenticidad del host 'server1.example.com (1.2.3.4)' no puede ser establecida. La huella digital de la clave RSA es c7:19:55:7a:54:ce:93:c8:b6:f9:0e:e3:65:24:64:11. ¿Estás seguro de que deseas continuar conectándote (sí/no)? sí Advertencia: 'server1.example.com' (RSA) se ha añadido permanentemente a la lista de hosts conocidos. Contraseña: Ahora intenta iniciar sesión en la máquina, con "ssh '[email protected]'", y verifica en: .ssh/authorized_keys para asegurarte de que no hemos añadido claves extra que no esperabas. rdiff-backup@backup:~$ |
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.