Rsync: configuración del usuario rsync y sus permisos

Rsync: configuración del usuario rsync y sus permisos

Configuraré rsync entre dos servidores web. Mi objetivo es tener una copia de seguridad de los datos de mi servidor principal en el secundario en caso de que el servidor principal falle. Mi pregunta se relaciona con la configuración en el servidor principal de una cuenta de usuario para fines de rsync.

Por razones obvias, no quiero utilizar mi cuenta de usuario "root" aquí. Por lo tanto, mi objetivo es configurar otra cuenta que se utilizará únicamente para fines de rsync. Según tengo entendido, este usuario necesitará permisos de lectura para todos los archivos que necesitaré transferir (configuración de Apache, archivos de usuario de Linux, www-data).

¿Cuál es la mejor manera de configurar dichos permisos? ¿Debo otorgar privilegios de root al usuario de rsync o hay alguna forma más segura de crear un usuario para dicha copia de seguridad?

Respuesta1

Si la red que conecta ambos servidores es segura (por ejemplo, una red local en su oficina), puede usar rsync en modo demonio para conectarse como root. De esta manera no utilizas ssh para realizar la conexión.

En el sistema secundario, cree un archivo /etc/rsyncd.confcon el siguiente contenido:

[all]
  path = /
  read only = no
  uid = 0
  gid = 0
  hosts allow = primary-host
  auth users = backupuser
  secrets files = /etc/rsyncd.secrets
  exclude = /tmp/ /var/tmp/ /var/cache/ /proc/ /sys/ /dev/ /run/ /boot/

Ahora cree un archivo /etc/rsyncd.secretscon, por ejemplo:

backupuser:thisisasecretpassword

Haga que el archivo solo sea legible por root:

# chown root /etc/rsyncd.secrets; chmod 400 /etc/rsyncd.secrets

Ahora debe asegurarse de que rsync se inicie como un demonio; eso depende de su distribución, con Debian edita /etc/default/rsyncy cambia la RSYNC_ENABLElínea RSYNC_ENABLE=truey ejecuta /etc/init.d/rsync start(si ejecuta systemd, ejecute systemctl enable rsync; systemctl start rsync).

Ahora puede ejecutar rsync en el host principal y enviar todo lo que necesite para replicar al secundario haciendo, por ejemplo:

# rsync -ai /var/www/ backupuser@secondary-host::all/var/www/

Rsync le pedirá la contraseña secreta en este caso.

información relacionada