Confundido acerca de rsync, el puerto 873 y NAS

Confundido acerca de rsync, el puerto 873 y NAS

Estoy intentando configurar una copia de seguridad desde mi NAS (QNAP TS-469 Pro) en mi PC con Ubuntu 16.10, utilizando la "Estación de copia de seguridad" que ofrece el NAS.

Si me conecto por ssh al NAS y ejecuto los siguientes comandos, rsync funciona:

touch file.txt                             # Create "file.txt" on the QNAP 
rsync file.txt username@ipaddress:~        # Backup "file.txt" on the backup PC

Sin embargo, al configurar una copia de seguridad desde la GUI del NAS (en un navegador), aparece el error

Número de puerto no válido o el servicio está deshabilitado.

Leí algunas cosas sobre el puerto 873 o la ejecución de un demonio rsync, pero todo esto no me queda muy claro.

¿Por qué funciona la ejecución rsyncmanual y aparece un error con la "Backup Station"? Por supuesto, al final, me interesa que la copia de seguridad automática funcione.

Respuesta1

Rsync puede funcionar en dos modos diferentes:

  • vía SSH:Conexión Rsync (tanto para control como para transferencia de datos) dentro de un túnel SSH (básicamente usando pipes). Debido a la ubicuidad del acceso SSH y su seguridad, este suele ser el enfoque preferido. Sin embargo, para ser verdaderamente transparente y automatizado (sin necesidad de contraseña), era necesario configurar la autenticación RSA. Además, como todos los datos están cifrados mediante SSH, puede ser más lento que el otro enfoque;
  • a través del modo demonio (o servicio):En el sistema remoto, Rsync se ejecuta como un demonio/servicio, escuchando en el puerto TCP 873. Este modo no tiene cifrado incorporado y, por lo tanto, es más rápido y menos seguro que el túnel SSH. Es el modo utilizado por QNAP para copias de seguridad locales y remotas. Para permitir que QNAP use su PC como destino de copia de seguridad (es decir, hacer una copia de seguridad del NAS en la PC), debe habilitar el servicio Rsyncen tu computadora. Si bien no es difícil, seguramente es más complejo que un simple túnel SSH. Puedes encontrar más información en la red, por ejemplo.aquí.

Respuesta2

Probablemente te estés rsync over rsyncconfundiendo rsync over ssh.

Rsync sobre SSH(usando su configuración ssh)

rsync -av file.txt username@ipaddress:~

Este método atraviesa un canal SSH y está cifrado.

Rsync sobre Rsyncusando el protocolo rsync estándar

rsync -av file.txt ipaddress::myhome/.

Lo último supone que configuró rsyncd.conf e inició rsync como un demonio. Como demonio, toda la autenticación/seguridad se define en rsyncd.conf y no utiliza cifrado.

La manera más fácil de detectar la diferencia son los dos dos puntos después de la dirección y el nombre del recurso compartido después de los dos dos puntos.

Aquí tienes una solución realmente sencilla ypeligrosoejemplo de rsyncd.conf (simple, porque root y los permisos no son un problema. peligroso, porque se ejecuta como root y no como chroot)

uid = root
gid = root
use chroot = no
max connections = 64
lock file = /var/tmp/rsyncd.lock
syslog facility = local5
pid file = /var/tmp/rsyncd.pid 
strict modes = false
hosts allow = 192.168.120.2
timeout = 60
dont compress = *.xz *.gz *.tgz *.zip *.rpm *.bz2 *.7z *.rar *.jp* *.gif *.png *.avi *.mp* *.wmv *.asf *.flv *.m4v *.mkv *.mov *.ogm *.rm *.3g*
#refuse options = checksum delete
refuse options = delete
#
[myhome]
list = false
comment = "myhome"
path = /home/myself/mydir
read only = no

Y aquí estoy yo iniciando dicho demonio:

#!/bin/bash
set -o posix
set -u
# keep nagios happy
renice 19 -p $$ > /dev/null 2>&1
ionice -c3 -p $$ > /dev/null 2>&1
rsync --daemon --ipv4 --address=192.168.120.1 --config=/home/myhome/rsyncd.conf --log-file=/dev/shm/rsync.log

información relacionada