LINUX:RSYNCD
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.
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".