Installer un serveur rsync

Auteur : Olivier BOYER - oboyer () ajoute ! org

Mots clés

rsync, rsyncd, serveur, daemon, OpenBSD

Introduction

Ce document présente comment installer et configurer rsync pourqu'il s'exécute en mode serveur. Le produit est installé sur un système OpenBSD.

L’outil rsync, développé par Andrew Tridgell (initiateur du projet SAMBA) et Paul Mackerras du Département Informatique de l'Université Nationale Australienne à Canberra, est l’implémentation client-server du protocole de même nom. Son développement a commencé en 1997 et se continue toujours.

rsync(1) est un remplaçant simple et flexible de rcp(1). Le protocole RSYNC permet de ne transférer que la différence entre deux jeux de fichiers, la reprise sur erreurs, … Les connexions réseaux sont établies par défaut sur le port TCP 873.

Présentation de la maquette

  • Un serveur rsync sur un système OpenBSD 4.1

Note

Toutes les commandes présentées ici, sont à exécuter, sauf mention contraie, en tant qu'administrateur de la machine.

Pré-requis

  • Le système OpenBSD installé et fonctionnel.

Installer rsync

Installer le package

Pour installer rsync via les packages binaires d'OpenBSD, exécutez les commandes suivantes :

# PKG_PATH="ftp://ftp.irisa.fr/pub/OpenBSD/$(uname -r)/packages/$(uname -m)/"
# export PKG_PATH
# pkg_add rsync

Créer un utilisateur dédié

Dans cette maquette, rsync s'exécute sous l'identité d'un utilisateur dédié : _rsyncd. Pour créer cet utilisateur, procédez comme suit :

# useradd -m -c "rsync pseudo-user" -b "/var/empty" \
-s /sbin/nologin -u 873 -g =uid _rsyncd

Configurer rsync

Editer le fichier /etc/rsyncd.conf

#/etc/rsyncd.conf
# see rsyncd.conf(5)
#
## Global settings
uid = _rsyncd
gid = _rsyncd
use chroot = yes
read only = yes
max connections = 4
syslog facility = daemon
pid file = /var/run/rsyncd.pid
secrets file = /etc/rsyncd.secrets
strict modes = yes

#
## Shares
[foo]
        path = /share/foo
        comment = "foo share"
        auth users = userfoo

[bar]
        path = /share/bar
        comment = bar
        auth users = "bar share"

#EOF

Créer le fichier /etc/rsyncd.secrets

Ce fichier contient les utilisateurs du service de transferts de fichiers, et les mots de passe en clair.

Créez comme suit le fichier /etc/rsyncd.secrets :

#/etc/rsyncd.secrets
# see rsyncd.conf(5)

#user:password
userfoo:pa$$w0rd

# EOF

Fixer les permissions

# chown root:wheel /etc/rsyncd.conf
# chmod 644 /etc/rsyncd.conf
#
# chown root:_rsyncd /etc/rsyncd.secrets
# chmod 640 /etc/rsyncd.secrets

Intégrer le service au système

Créer un script de démarrage

Pour arrêter et redémarrer rsynd de manière simple, créez un script de démarrage.

Pour ce faire, créez le répertoire /etc/rc.d comme suit :

# mkdir /etc/rc.d
# chown root:wheel /etc/rc.d
# chmod 750 /etc/rc.d

Puis, créez comme suit, le fichier de démarrage /etc/rc.d/rsyncd.

Et enfin, positionnez les permissions :

# chown root:wheel /etc/rc.d/rsyncd
# chmod 740 /etc/rc.d/rsyncd

Modifier le fichier /etc/rc.conf.local

Pour gérer le service, ajoutez la ligne suivante à la fin du fichier /etc/rc.conf.local :

# Start rsyncd
rsyncd_flags="--daemon -4"    # for normal use: "--daemon"

Modifier le fichier /etc/rc.local

Pour lancer automatiquement le service au démarrage de la machine, ajoutez les lignes suivantes au début du fichier /etc/rc.local :

# Start rsyncd
if [ -x /etc/rc.d/rsyncd ]; then
        echo -n ' rsyncd'; /etc/rc.d/rsyncd start >/dev/null
fi

Modifier le fichier /etc/rc.shutdown

Pour arrêter le service à l'arrêt de la machine, ajoutez les lignes suivantes à la fin du fichier /etc/rc.shutdown :

# Stop rsyncd
if [ -x /etc/rc.d/rsyncd ]; then
        echo -n ' rsyncd'; /etc/rc.d/rsyncd stop >/dev/null
fi

Modifier le fichier /etc/changelist

Pour que le système OpenBSD surveille les modifications apportées au script de démarrage et aux fichiers de configuration du service, ajoutez les lignes suivantes au fichier /etc/changelist :

/etc/rc.d/rsyncd
/etc/rsyncd.conf
/etc/rsyncd.secrets

Exemples d'utilisation

Sur une machine distante, pour copier le contenu d'un partage, exécutez la commande suivante :

rsync <options> <utilisateur>@<serveur_rsync>::<nom_du_partage>

Par exemple :

$ cd /tmp
$ rsync -av userfoo@<serveur_rsync>::foo .

Si vous avez déjà une copie locale du partage, et que vous voulez le mettre à jour, utilisez la commande ci-dessous :

$ cd /tmp
$ rsync -av --delete userfoo@<serveur_rsync>::foo .

Liens

 
doc/openbsd/rsyncd.txt · Dernière modification: 2009/12/23 22:36 (édition externe)     Haut de page