Installation d'un serveur de synchronisation avec RSYNC

rsync (pour remote synchronization ou synchronisation à distance), est un logiciel de synchronisation de fichiers. Il est fréquemment utilisé pour mettre en place des systèmes de sauvegarde distante. rsync travaille de manière unidirectionnelle c'est-à-dire qu'il synchronise, copie ou actualise les données d'une source (locale ou distante) vers une destination (locale ou distante) en ne transférant que les octets des fichiers qui ont été modifiés.

Ici, nous allons installer un serveur de synchronisation de sauvegarde distante.

Cette installation a été testé sur Debian 8

Installation et configuration de RSYNC

Normalement, RSYNC est installé d'origine, si ce n'est pas le cas vous pouvez l'installer avec la ligne suivante :

apt-get install rsync

Ensuite, on autorise le lancement de RSYNC avec la commande suivante :

sed -i -e 's/^[#]*\(RSYNC_ENABLE=\).*/\1true/' '/etc/default/rsync'

On ajoute un utilisateur rsync et un groupe rsync, puis on ajoute l'utilisateur rsync au groupe rsync.

useradd rsync
passwd rsync
groupadd rsync
gpasswd -a rsync rsync

Maintenant nous allons créer le répertoire /home/rsync avec les droits 755 pour l’utilisateur et groupe rsync.

mkdir /home/rsync
chown -R rsync:rsync /home/rsync
chmod -R 755 /home/rsync

Il ne reste plus qu'à créer un fichier de configuration pour le serveur rsync à l’emplacement /etc/rsyncd.conf avec cette ligne de commande :

nano /etc/rsyncd.conf

puis on ajoute les lignes suivantes au début du fichier :

uid = rsync
gid = rsync
use chroot = yes
syslog facility = local5

Vous pouvez avoir plus d'information sur le contenu de /etc/rsyncd.conf avec la commande man rsyncd.conf

Maintenant, passons à la configuration des répertoires, nous allons vous montrer plusieurs exemples, à vous de l'adapter en fonction de vos besoins.

Cas N°1 - Mono-Utilisateur

On ajoute le code suivant à la fin du fichier /etc/rsyncd.conf :

[share_rsync]
    path = /home/rsync/share
    comment = Synchro du répertoire share
    read only = false

Cas N°2 - Limiter l'accès à une ou plusieurs IPs

Ici nous allons limiter l'accès du serveur RSYNC qu'à quelques adresses IPs. Celles-ci ne pourront que lire le contenu du répertoire.

On ajoute le code suivant à la fin du fichier /etc/rsyncd.conf :

[share_serveur_ovh]
read only = true
path = /home/rsync/serveur-ovh
comment = Sauvegarde du serveur IVH
hosts allow = 5.37.24.12 191.11.22.0/24

Ici on autorise l'adresse IPv4 5.37.12.191 ou le sous-réseau 191.11.22.0/24 à venir se connecter sur le serveur de synchronisation pour venir lire le contenu.

Cas N°3 - Multi-utilisateurs avec mot de passe

On ajoute le code suivant à la fin du fichier /etc/rsyncd.conf :

[share_serveur_ovh_rw]
path = /home/rsync/serveur-ovh
comment = Synchronisation en mode écriture
read only = no
auth users = bernard, annick
secrets file = /etc/rsyncd.secrets

Puis on créé le fichier /etc/rsyncd.secrets avec la commande :

nano /etc/rsyncd.secrets

On ajoute le code suivant au fichier /etc/rsyncd.secrets :

bernard:zigouille25
annickick:123456789
josephine:tonton-flingueur

Lancement du serveur de synchronisation RSYNC

Et voilà, une fois votre configuration OK, vous pouvez lancer manuellement votre serveur de synchronisation RSYNC avec la commande suivante

service rsync start

Si tout est OK, vous devrez avoir un message du genre [ ok ] Starting rsync daemon rsync start. Vous pouvez aussi vérifier le contenu de syslog avec le code suivant

tail -n 25 /var/log/syslog

Vous devriez retrouver dans la liste la ligne suivante (j'ai remplacé le contenu aléatoire par blabla:

blabla .... rsyncd[blabla]: rsyncd version 3.0.9 starting, listenig on port 873

Pour être sûr que votre serveur de synchronisation démarre au prochain lancement de votre serveur, vous pouvez utiliser la commande suivante :

update-rc.d rsync enable

Notes de version

  • [23/11/2017] : Création de l'article
  • [30/11/2017] : Fin de l'article

Auteurs et sources