LINUX:RSYNCD

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour à la Sauvegarde


But

Le programme "rsync" présenté ci-dessus, comprend une version serveur. Il existe principalement sous Linux mais une version sous Windows existe via le portage de Linux sous Windows nommé Cygwin.


Principe

Ce serveur est configuré pour mettre à disposition certains répertoires à certains utilisateurs qui peuvent y accéder à travers le réseau via "rsync" client utilisé de façon analogue comme présenté dans l'article précédent mais en utilisant une connexion "rsync". Il doit s'authentifier par mot de passe. Par défaut, le port TCP 873 est utilisé.


RSYNCD sous Windows

Une version sous Windows existe; il est intégré au portage de Linux sous Windows nommé "Cygwin".


Installation

On peut télécharger le module d'installation à l'URL "https://github.com/backuppc/cygwin-rsyncd". A droite de l'écran, il y a un lien pour le télécharger. Le fichier se nomme "cygwin-rsyncd-3.2.3.1_installer.exe" lors de l'écriture de cet article. L'installation est rapide et ne demande aucune information. Il s'installe dans le répertoire "C:\rsyncd". Le service "RsyncServer" est installé et actif directement.


LINUX:Rsyncd.service.png


Configuration

La configuration du serveur se trouve dans lez fichier "C:\rsyncd<rsyncd.conf".

Voici un exemple:


# global
use chroot = false
max connections = 2
log file = C:/rsyncd/rsyncd.log
#pid file = C:/rsyncd/rsyncd.pid
lock file = C:/rsyncd/rsyncd.lock
# partage
[genealogie]
   path = /cygdrive/c/adebast/genealogie
   comment = Espace pour la généalogie
   strict modes = false
   auth users = rsauvegarde
   secrets file = C:/rsyncd/rsyncd.secrets
   hosts allow = 192.168.1.2
   read only = true
   list = false
   charset=utf-8

L'espace "genealogie" est accessible par l'utilisateur "rsauvegarde" qui va récupérer les fichiers à partir de la machine ayant l'adresse IP 192.168.1.2. Cet accès n'est quand lecture seule; la machine distante ne peut y écrire ("read only = true"). Cet espace se trouve dans le répertoire "C:\adebadt\genealogie". Ce chemin doit être présenté sous la forme Unix; c'est à dire avec des slashs ("/") comme séparateurs et non des back-slashs ("\"). Le nommage du disque "C:\" est spécifique à Cygwin: "/cygdrive/c/" en minuscule.

On peut ajouter autant d'espaces que désirés.


L'utilisateur "rsauvegarde" n'est pas un utilisateur défini sous Windows ou Linux. RSYNCD a ses propres utilisateurs. Les couples "utilisateurs/mots de passe" sont repris dans le fichier "C:/rsyncd/rsyncd.secrets". Dans ce fichier, chaque ligne comprend deux zones séparées par le signe ":", le nom d'utilisateur en premier, le mot de passe en second. Exemple:


rsauvegarde:Faucon999Noir


Après modification du fichier de configuration, il faut redémarrer le service.


Remarque: Par soucis de sécurité, il est fortement conseillé de ne donner l'accès au répertoire "C:\rsyncd" qu'à l'administrateur et au système.


Firewall

Comme on veut accéder à ce service depuis l'extérieur, il faut ouvrir ce port dans le firewall de Windows.


RSYNCD sous Linux

Le principe est identique que sous Windows.


Installation

Il faut installer le paquet prévu pour le démon:

dnf install rsync-daemon


Configuration

La configuration est similaire à celle de Windows. Le fichier de configuration est "/etc/rsyncd.conf".

Voici un exemple:


# global
max connections = 2
# limiter à IPV4
address=0.0.0.0
uid = sauvegarde
gid = sauvegarde
use chroot = true
log file = /var/log/rsyncd.log
lock file = /run/rsyncd.lock
pid file = /run/rsyncd.pid
# partage
[genealogie]
   path = /produc/genealogie
   comment = Espace pour la généalogie
   strict modes = false
   auth users = rsauvegarde
   secrets file = /etc/rsyncd.secrets
   hosts allow = 192.168.1.2
   read only = true
   list = false
   charset=utf-8

Il important de définit le couple "uid" et "gid", c'est à dire définir l'utilisateur et le groupe au niveau du système Linux où s'exécute ce service. Il définit les droits d'accès à l'arborescence mise à disposition. Si cet utilisateur ou ce groupe n'a pas de droit sur un fichier ou un répertoire, celui-ci ne pourra pas être accessible. Dans l'exemple, nous avons choisi le couple "sauvegarde:sauvegarde" car dans l'article précédent, nous avions décrit sa création.

L'utilisateur "rsauvegarde" n'est pas un utilisateur défini sous Windows ou Linux. RSYNCD a ses propres utilisateurs. Les couples "utilisateurs/mots de passe" sont repris dans le fichier "/etc/rsyncd.secrets". Dans ce fichier, chaque ligne comprend deux zones séparées par le signe ":", le nom d'utilisateur en premier, le mot de passe en second. Exemple:


rsauvegarde:Faucon999Noir


Service

Pour activer le service:

systemctl enable rsyncd.service

Pour lancer le service:

systemctl start rsyncd.service


Firewall

Comme sous Windows, il faut ajouter une règle dans la table FILTER pour la chaîne INPUT:

-A INPUT -p tcp -m tcp --dport 873 -s 192.168.1.2 -m conntrack --ctstate NEW -j ACCEPT

Nous avons limité l'accès à la machine ayant l'adresse IP 192.168.1.2 selon notre exemple de configuration.


Utilisation

Supposons que la machine où le service RSYNCD s'exécute a l'adresse IP 192.168.1.30. Nous exécutons une commande "rsync" sur la machine client ayant l'adresse IP 192.168.1.2.

Voici le script:


#!/bin/bash
MANAGER=/manager/rsyncd
cd $MANAGER
OPTION="-rtz --stats --password-file=${MANAGER}/password.txt --delete "
MACHINE=192.168.1.30
UTILISATEUR=rsauvegarde
REPERTOIRE=genealogie
/usr/bin/rsync ${OPTION} --log-file=${MANAGER}/log/rsyncd.log ${UTILISATEUR}@${MACHINE}::${REPERTOIRE} /travail/${REPERTOIRE}/

Voici le fichier "password.txt" contenant le mot de passe de l'utilisateur "rsauvegarde":


Faucon999Noir

Remarquez les "::" entre l'identification de connexion et le répertoire en partage.


L'intérêt de cette approche est:

  • Il est plus sécurisé et restrictif.
  • Il est adapté pour une utilisation d'un logiciel de sauvegarde: backuppc
  • On peut, de façon centralisée et unifiée, récupérer les fichiers à sauvegarder de diverses machines aussi bien Linux que Windows.
  • Il est plus performant que d'utiliser le protocole SMB comme le fait "robocopy.exe".




retour à la Sauvegarde