BackupPC: transferencias vía rsync y otros

Las primeras copias de seguridad las estoy efectuando usando tanto rsyncd como rsync vía ssh.

rsyncd

Este método es relativamente fácil de implementar. En el lado cliente se instala y configura el programa rsyncd de manera que publique los directorios bajo etiquetas. Se puede limitar el acceso a ellos tanto por origen de la conexión como por usuario.

[docs]
        comment = Archivo de documentos personales y compartidos
        path    = /var/docs
        use chroot = yes
        read only  = yes
        list    = yes
        auth users = backuppc
        ignore errors = no
        ignore nonreadable = yes
        transfer logging = yes
        timeout = 600
        refuse options = dry-run
        dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

La desventaja es quizás que cada vez que quieras incluir un nuevo juego de archivos debes definir otro recurso en el archivo de configuración. Además, las conexiones vía rsyncd no van cifradas y es necesario añadir una capa con ssh.

rsync y ssh

En este caso se crea una conexión ssh con una cuenta administrativa (puede ser incluso root) y se obtiene un acceso más directo al sistema de archivos. Tan directo que no hay diferencia entre definir una copia así o usar rsync directamente. Todas las opciones de inclusión y exclusión se aplican y el resultado es el mismo con la excepción de que los archivos se almacenan en el servidor de copias bajo un mecanismo de deduplicación que ahorra mucho espacio.

La conexión ssh es la que tiene más mala leche. Hay que partir de lo siguiente:

  • La cuenta que crea la conexión desde el servidor es el usuario predeterminado: backuppc.
  • La cuenta con la que se conecta en el cliente debe tener suficientes privilegios para leer los archivos que hay que salvar. El superusuario es una opción, pero también se puede jugar con una cuenta intermedia y emplear sudo.
  • La conexión no es interactiva. No se responde a cuestiones acerca de si la IP o el host está reconocido o no en la configuración local de ssh y los procesos de copia terminan todos abrúptamente si se encuentran algo así. Los registros ayudan, claro, pero es mejor hacer pruebas primero en local para ver si por esa parte falla.

Así que lo ideal es proceder de esta forma:

  1. Crear una clave SSH desde el usuario backuppc
  2. Transferir la versión pública a la cuenta administrativa del cliente
  3. Asegurarse de que en el lado cliente se aceptan conexiones con claves.
  4. Asegurarse de que el cliente es conocido por parte de ssh en el servidor.

Para esto último es conveniente refrescar la clave ECDSA de la máquina cliente usando lo siguiente:

backuppc@backups:~/.ssh$ ssh-keyscan -t ecdsa -H cliente >> known_hosts