Cómo configurar el demonio rsync en Linux

Cómo configurar el demonio rsync en Linux

En un artículo anterior vimos algunos ejemplos básicos de cómo usar rsync en Linux para transferir datos de manera eficiente. Como vimos, para sincronizar los datos con una máquina remota podemos usar tanto un shell remoto como ssh o el demonio rsync. En este artículo nos centraremos en la última opción, y veremos cómo instalar y configurar rsyncd En algunas de las distribuciones de Linux más utilizadas.

En este tutorial aprenderás:

  • Cómo instalar y configurar el demonio rsync

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Independiente de la distribución
Software
  • Rsync
  • Rsyncd (el demonio rsync)
Otro No se necesitan requisitos especiales para seguir este tutorial
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Instalación

Instalación del demonio rsync es realmente fácil, ya que el paquete y sus dependencias están disponibles de forma predeterminada en todos los principales repositorios de distribuciones de Linux. En Debian y Archinux, Los archivos relacionados con el demonio rsync se incluyen el rsync Paquete, así que todo lo que tenemos que hacer, es instalar el último. En Debian podemos usar el Administrador de paquetes APT:

$ sudo apt-get install rsync

En Archlinux, en cambio, usamos Pacman:

$ sudo Pacman -S RSYNC

En distribuciones como Fedora, en su lugar, rsyncd, El Daemon Rsync, se distribuye en su propio paquete, rsync-daemon. En versiones recientes de la distribución, para instalarla, podemos usar el DNF gerente de empaquetación. El paquete RSYNC principal se instalará como una dependencia:



$ sudo dnf instalación rsync-daemon 

El archivo de configuración rsyncd

Una vez rsyncd está instalado, podemos configurarlo utilizando el /etc/rsyncd.confusión archivo. El archivo ya está incluido en los paquetes de Archlinux y Fedora, mientras que en Debian debe crearse desde cero. Aquí está el contenido del archivo en Fedora:

# /etc /rsyncd: archivo de configuración para el modo RSYNC Daemon # Consulte RSYNCD.Página de conf Man para más opciones. # Ejemplo de configuración: # uid = nadie # gid = nadie # use chroot = sí # max conexiones = 4 # pid file =/var/run/rsyncd.pid # excluir = perdido+encontrado/ # transferencia logging = sí # timeout = 900 # ignorar no legible = sí # no compress = *.Gz *.TGZ *.cremallera *.Z *.Z *.RPM *.deb *.BZ2 # [ftp] # path = /home /ftp # comment = ftp área de exportación 

Todos los parámetros se comentan y se muestran como un ejemplo de configuración: representan un buen punto de partida para nuestra discusión. Lo primero que debemos notar es cómo un rsyncd módulo se define:

[ftp] ruta = /home /ftp comment = ftp área de exportación

Un módulo se define en una "estrofa" que comienza con la declaración del nombre del módulo entre los soportes cuadrados, en este caso [ftp]. Un módulo está asociado con un directorio en el sistema de archivos, especificado con el camino argumento. Todos los parámetros proporcionados dentro de la estrofa son local, Entonces se aplican solo al módulo relacionado; Configuración proporcionada antes de las estrofas, son global. Echemos un vistazo rápido a algunos de ellos.



Parámetros globales

Como acabamos de decir, los parámetros globales son los definidos al comienzo del /etc/rsyncd.confusión archivo, antes de cualquier definición del módulo, o opcionalmente dentro de un [global] sección. Aquí discutiremos algunos de los más interesantes.

El parámetro "archivo pid"

Este parámetro se usa para especificar la ruta de un archivo donde el rsyncd Pid (ID de proceso) se escribirá. Por defecto, el lanzamiento de Daemon se abortará si el archivo especificado ya existe. Es posible cambiar este comportamiento y dejar que el archivo se sobrescriba, en su lugar, lanzando el demonio rsync con el --dparam = pid - archivo = archivo opción.

El parámetro "puerto"

Al usar este parámetro global, podemos especificar un puerto alternativo para el demonio rsync. El valor predeterminado es TCP puerto 873. Esta opción se puede anular cuando se inicia el demonio, utilizando el --puerto opción.

El parámetro "Dirección"

Podemos usar el global DIRECCIÓN Parámetro para especificar la dirección que escuchará el demonio rsync. La dirección especificada en el archivo se puede anular iniciando el demonio con el --DIRECCIÓN opción, proporcionando la dirección deseada como argumento.

Además de los parámetros que vimos anteriormente, en la sección global, podemos especificar también parámetros del módulo. Cuando lo hagamos, los valores de parámetros especificados se convertirán en los predeterminados para todos los módulos.

Parámetros del módulo

Los parámetros del módulo son los especificados dentro de una sección del módulo y se aplican solo a esa sección. Veamos algunos de ellos.

El parámetro de "ruta"

Este parámetro es obligatorio y debe proporcionarse para cada módulo. Se utiliza para especificar la ruta del directorio puesto a disposición por el módulo mismo.

El parámetro de "comentario"

El parámetro "Comentario" es opcional: podemos especificar una cadena que se mostrará cerca del nombre del módulo, cuando el cliente solicita una lista de los disponibles.

Haga que un módulo lea o escriba solo

Por defecto, todos los módulos se crean como de solo lectura. Esto significa que un cliente solo puede usarlo como fuente para la transferencia. Este comportamiento se puede cambiar estableciendo el parámetro "solo leer" a No o FALSO. El módulo también se puede hacer solo por escrito, utilizando el escribir solamente parámetro y proporcionar o verdadero como valor. Si este último parámetro se activa, el cliente no podrá descargar archivos desde el módulo. Para leer archivos del módulo o escribirle, los permisos de UNIX estándar también deben respetarse, por lo que, el usuario se ejecuta la transferencia como, debe permitirse realizar la acción deseada.

Los parámetros UID y GID

El uid y aturdir Parámetros combinados, definir los privilegios que tendrá la transferencia. El primero se usa para definir al usuario la transferencia se ejecuta como cuando el demonio se ejecuta como root (si el demonio se ejecuta con los privilegios de un usuario normal, el usuario no cambiará). El usuario puede ser identificado por su nombre de usuario, o su identificación numérica. Este último define uno o más nombre de grupo o ID de grupo que se utilizará para la transferencia.

El valor predeterminado para ambas opciones es nadie, lo que significa que cuando el demonio se ejecuta como raíz, las transferencias se ejecutarán con los privilegios del nadie usuario y el nadie Grupo (en Debian el grupo de nadie no existe - nogroup se usa en su lugar).

El parámetro "usar chroot"

Mediante el uso del usar chroot Parámetro, podemos definir si RSYNC debe verse a la ruta del módulo definida antes de que se inicie la transferencia. Esto se puede usar para hacer cumplir la seguridad, pero para aprovecharla, el demonio debe configurarse para ejecutarse con privilegios raíz. Por defecto, esta opción está configurada en .

El parámetro "Conexiones máximas"

Este es otro parámetro muy útil, y se usa para definir el número máximo de conexiones simultáneas admitidas por el demonio. El valor predeterminado utilizado para el parámetro es 0, lo que significa que no se establece ningún límite. Si el valor proporcionado es un número negativo, las conexiones están deshabilitadas por completo.

Excluir e incluir archivos de la transferencia

A veces es posible que deseemos excluir algunos archivos de la transferencia: podemos lograr la tarea utilizando el excluir Parámetro, que acepta una lista de patrones separados por espacios. Los archivos coincidentes por los patrones no se sincronizarán. El incluir El parámetro funciona de la misma manera, pero se usa para definir explícitamente las inclusiones.



Otra forma de excluir o incluir explícitamente los archivos es mediante el uso del excluir de y incluir desde parámetros. Con estos parámetros podemos especificar la ruta de los archivos que contienen patrones de exclusión e inclusión, respectivamente. Los archivos deben contener un patrón por línea.

El excluir, incluir, excluir de y incluir desde Los parámetros pueden aparecer solo una vez dentro de un módulo.

El parámetro "Tiempo de espera"

Cuando usamos el rsync cliente podemos proporcionar el--se acabó el tiempo opción para establecer un tiempo de espera máximo de E/S en segundos: si no se transfieren datos en el tiempo especificado, la transferencia se aborta. El se acabó el tiempo opción del demonio rsync se puede usar para anular el tiempo de espera definido por el cliente. Esto puede ser útil para evitar esperar a un cliente muerto indeterminadamente. El tiempo de espera se expresa en segundos: 0 es el valor predeterminado, y significa que no hay tiempo de espera.

El "ignorar no legible" y "no comprimir"

El ignorar no legible La opción se usa instruir a rsync para ignorar archivos que el usuario no es legible la transferencia se está ejecutando como. El no comprimir La opción, en su lugar, se utiliza para proporcionar una lista separada de espacio de patrones insensibles a las casos utilizados para seleccionar archivos que no deben comprimirse durante la transferencia. Esto puede ser especialmente útil para evitar comprimir archivos ya comprimidos.

Los parámetros "Hosts permiten" y "Hosts niegan"

Mediante el uso del Los anfitriones permiten y Los anfitriones niegan Parámetros, podemos especificar una lista de patrones separados por comas que se igualarán con el nombre de host o IP de los clientes, para permitir o negar el acceso a ellos, respectivamente. Los dos parámetros se pueden combinar y aparecer juntos dentro de un módulo: los patrones de "permitir" se verifican antes de los "negar". Por defecto, todos los hosts pueden conectarse.

Ejemplo de una configuración de módulo

Hagamos un ejemplo y creemos un módulo en un servidor RSYNC. Lo primero que debemos hacer es permitir el tráfico entrante en TCP puerto 873. Si estamos usando Firewalld, podemos agregar el preconfigurado rsyncd servicio a la zona que estamos utilizando:

$ sudo firewall-cmd --Permanent --add-service rsyncd && sudo firewall-cmd--Reload

Si estamos usando UFW, en su lugar, podemos ejecutar:

$ sudo UFW Permitir 873/TCP

Una vez que configuramos el firewall, podemos continuar y definir un módulo. Aquí está nuestra configuración:

[LinuxConfig] ruta =/mnt/data/rsync comment = "Ejemplo de un módulo de demonio rsync" solo lee = false excluye = *.TXT

Llamamos a nuestro módulo "LinuxConfig" y asociamos el /mnt/data/rsync directorio. También proporcionamos un comentario. Establecimos el módulo legible y redactado estableciendo el solo lectura parámetro a falso y, a través del excluir Parámetro, proporcionamos un patrón para excluir todos los archivos con el .TXT extensión.

Antes de usar nuestro módulo necesitamos iniciar el demonio. Podemos ejecutar rsync como demonio invocando el programa con el --demonio opción, o simplemente podemos usar Systemd para lograr la tarea (debajo del capó, el servicio Systemd ejecuta el mismo comando). Bajo distribuciones basadas en Debian, se llama al servicio rsync; En Fedora y Archlinux, se llama rsyncd:

$ sudo systemctl iniciar rsync

Para hacer que RSYNC comience automáticamente al arranque, debemos usar el SystemCTL permitir subcomando:

$ sudo systemctl habilitar rsync

Establecimos el /mnt/data/rsync directorio como propiedad de la nadie usuario y el nogroup Grupo (es una máquina Debian). Aquí está su contenido:

$ ls/mnt/data/rsync csv1.texto CSV1.texto txt2.TXT 

Como podemos ver, el directorio contiene dos .TXT archivos y uno .CSV. Si usamos el módulo como fuente en la transferencia, solo el "CSV1.El archivo CSV ”se incluirá:

$ rsync -av rsync: // 192.168.0.39/LinuxConfig/ . Recibir lista de archivos incrementales ./ CSV1.CSV 

La exclusión entran en vigencia también cuando usamos el módulo como destino. Digamos, creamos el "CSV2.CSV "y" Text3.archivos de txt "en nuestro directorio de trabajo actual:

$ touch csv2.Texto CSV3.TXT


Si ahora ejecutamos RSYNC y usamos nuestro directorio de trabajo actual como fuente y el módulo como destino, podemos ver cómo el demonio se niega a recibir el "Text33.archivo txt ", ya que coincide con el patrón de exclusión especificado:

$ rsync -av . rsync: // 192.168.0.39/Linuxconfig enviando un error de lista de archivos incrementales: Daemon se negó a recibir el archivo "Text33.TXT" ./ CSV2.CSV 

Observe que en los comandos anteriores usamos un URL RSYNC Para especificar la dirección IP del servidor y el nombre del módulo que queremos usar. ¿Cómo podemos obtener una lista de todos los módulos disponibles en una máquina?? Es muy fácil, solo ejecutamos el comando rsync especificando solo la dirección del servidor en la URL:

$ rsync rsync: // 192.168.0.39 LinuxConfig "Ejemplo de un módulo de demonio rsync" 

Se mostrarán todos los módulos disponibles y los comentarios asociados; En este caso, solo el "LinuxConfig".

Conclusión

En este artículo vimos cómo instalar y configurar el demonio rsync, en algunas de las distribuciones de Linux más utilizadas. Vimos y aprendimos a usar algunos de los parámetros globales y específicos del módulo disponibles para cambiar el comportamiento del demonio rsyncd. Finalmente vimos un ejemplo de configuración de módulo. Para un conocimiento más profundo de rsyncd, siempre podemos consultar el manual oficial. Es solo cuestión de correr:

$ man rsyncd.confusión

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Cosas para instalar en Ubuntu 22.04
  • Archivos de configuración de Linux: los 30 principales más importantes
  • Mastering Bash Script Loops
  • Descarga de Linux
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • Cómo arrancar dual Kali Linux y Windows 10
  • Ubuntu 20.04 trucos y cosas que quizás no sepas