Linux

CentOS 5.3

rsyncd.conf(5)


rsyncd.conf

NOM

rsyncd.conf − fichier de configuration pour le serveur rsync

SYNOPSIS

rsyncd.conf

DESCRIPTION

rsyncd.conf est le fichier de configuration d’exécution de rsync lorsque celui-ci est utilisé avec l’option --daemon. Dans ce cas, rsync devient un serveur surveillant le port TCP 873. Les connexions de clients rsync sont acceptées pour des sessions rsync soit anonymes, soit authentifiées.

Le fichier rsyncd.conf contrôle l’authentification, l’accès, l’enregistrement (log) et les modules disponibles.

FORMAT DU FICHIER

Le fichier est constitué de modules et de paramètres. Un module commence avec le nom du module entre crochets et continue jusqu’au début du module suivant. Les modules contiennent des paramètres sous la forme «nom = valeur».

Le fichier est organisé en lignes - c’est-à -dire que chaque ligne terminée par un saut de ligne (newline) représente soit un commentaire, un nom de module ou un paramètre.

Uniquement le premier signe égal dans un paramètre est significatif. Les blancs qui l’entourent sont oubliés. Les blancs précédant, succédant à un nom de module, un nom de paramètre ou ceux qui sont internes à ces noms ne sont pas pertinents. Les blancs entourant une valeur de paramètre sont oubliés. Un blanc à l’intérieur d’une valeur de paramètre est retenu tel quel.

Toutes les lignes commençant par un dièse (#) sont ignorées, de même que les lignes ne contenant que des blancs.

Toutes les lignes finissant par un \ sont «continuées» sur la ligne suivante comme c’est le cas habituellement sous UNIX.

Les valeurs suivant le signe égal dans les paramètres sont soit une chaîne de caractères (les guillemets ne sont pas nécessaires) soit un booléen, qui peut être entré comme yes/no, 0/1, ou true/false. La casse (minuscule/MAJUSCULE) n’est pas significative dans les valeurs booléennes, mais est préservée dans les valeurs chaîne de caractères.

DÃMARRER LE DÃMON RSYNC

Le démon rsync est démarré en spécifiant l’option --daemon à rsync.

Le démon rsync doit être exécuté avec les privilèges root si vous voulez utiliser chroot, pour l’attacher à un port ayant un numéro inférieur à 1024 (comme c’est le cas pour le port par défaut 873), ou pour fixer les propriétés de fichiers. Dans les autres cas, il doit juste avoir la permission de lire et d’écrire les données appropriées, enregistrer (log), et verrouiller les fichiers.

Vous pouvez le démarrer soit via inetd, ou bien comme un démon autonome. Dans ce cas, vous pouvez exécuter la commande «rsync --daemon» à partir d’un script de démarrage approprié.

Lorsque lancé via inetd, vous devez ajouter une ligne similaire à celle qui suit dans /etc/services:

rsync 873/tcp

et une ligne unique ressemblant à celle qui suit dans /etc/inetd.conf:

rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon

Remplacez «/usr/bin/rsync» par le chemin où vous avez installé rsync dans votre système. Vous devrez alors envoyer un signal HUP à inetd pour lui dire de relire son fichier de configuration.

Notez que vous ne devriez pas envoyer au serveur rsync un signal HUP pour le forcer à relire /etc/rsyncd.conf. Le fichier est relu à chaque connexion d’un client.

OPTIONS GLOBALES

Les premiers paramètres dans le fichier (avant une en-tête [module]) sont les paramètres globaux.

Vous pouvez également inclure n’importe quel paramètre de module dans la partie globale du fichier de configuration; dans ce cas la valeur fournie va servir à outrepasser la valeur par défaut de ce paramètre.

motd file

L’option «motd file» vous permet de spécifier un «message du jour» (message of the day) à afficher aux clients à chaque connexion. Il contient en général des information sur le site et des notes légales. Par défaut il n’y a pas de fichier motd.

log file

L’option «log file» dit au démon rsync d’enregistrer les messages dans ce fichier plutôt que d’utiliser syslog. Ceci est particulièrement utile sur des systèmes (tels AIX) où syslog() ne fonctionne pas pour des programmes chrootés.

pid file

L’option «pid file» dit au démon rsync d’écrire sont numéro de processus dans ce fichier.

syslog facility

L’option «syslog facility» vous permet de spécifier un nom de facilité (facility) syslog à utiliser lors de l’enregistrement des messages du serveur rsync. Des noms courants sont auth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security, syslog, user, uucp, local0, local1, local2, local3, local4, local5, local6 et local7. La valeur par défaut est daemon.

socket options

Cette option va permettre aux personnes qui aiment sur-optimiser leur systèmes de s’amuser un peu. Vous pouvez fixer toutes sortes d’options de socket qui pourraient accélérer les transferts (ou les ralentir!). Lisez le manuel de l’appel système setsockopt() pour des détails sur les options que vous pourriez utiliser. Par défaut aucune option de socket spéciale n’est utilisée.

OPTIONS DES MODULES

Après les option globales vous devriez définir un certain nombre de modules, chaque module exporte une arborescence de répertoires en tant que nom symbolique. Les modules sont exportés en spécifiant un nom de module entre crochets [module] suivit par les options pour ce module.

comment

L’option «comment» spécifie une chaîne de caractères de description qui est affichée à côté du nom de module lorsque les clients obtiennent une liste de modules disponibles. Par défaut il n’y a pas de commentaire.

path

L’option «path» spécifie le répertoire du système de fichiers du serveur à rendre disponible dans ce module. Vous devez spécifier cette option pour chaque module dans /etc/rsyncd.conf.

use chroot

Si «use root» est vrai, alors le serveur va chrooter vers «path» avant de démarrer le transfert des fichiers avec le client. Ceci a l’avantage d’apporter des protections supplémentaires contre des trous de sécurité possibles dus à l’implémentation, mais a le désavantage de nécessiter les privilèges du superutilisateur et de ne pas pouvoir suivre les liens symboliques pointant en dehors du nouveau chemin racine lors des lectures. Lorsque «use root» est faux, pour raisons de sécurité, les liens symboliques devraient uniquement être des chemins relatifs pointant vers d’autres fichiers à l’intérieur du chemin racine, et le premier slash est enlevé des chemins absolus. La valeur par défaut pour «use chroot» est vrai.

max connections

L’option «max connections» vous permet de spécifier le nombre maximum de connexions simultanées à ce module de votre serveur rsync que vous autorisez. Tout client qui tente de se connecter lorsque le maximum a été atteint va recevoir un message lui disant de réessayer plus tard. La valeur par défaut est 0 ce qui signifie pas de limite.

lock file

L’option «lock file» spécifie le fichier à utiliser pour supporter l’option «max connections». Le serveur rsync utilise des verrouillages d’enregistrements sur ce fichier pour assurer que la limite max connections n’a pas été dépassée. Le défaut est /var/run/rsyncd.lock.

read only

L’option «read only» détermine si les clients vont être autorisés à envoyer des fichiers ou non. Si «read only» est vrai, toutes les tentatives d’envoi vont échouer. Si «read only» est faux, les envois vont être possibles si les permissions de fichier sur le serveur le permettent. Par défaut tous les modules sont «read only».

list

L’option «list» détermine si ce module doit être listé lorsqu’un client demande la liste de modules disponibles. En fixant cela à faux vous pouvez créer des modules cachés. Par défaut tous les modules sont listables.

uid

L’option «uid» spécifie le nom ou l’id de l’utilisateur qui va être pris pour les transferts de fichiers de et vers le module lorsque le démon est exécuté par root. En combinaison avec l’option «gid», ceci détermine les permissions des fichiers disponibles. Par défaut l’uid vaut -2, ce qui correspond normalement à l’utilisateur «nobody».

gid

L’option «gid» spécifie le nom ou l’id de groupe qui va être pris pour les transferts de fichiers de et vers le module lorsque le démon est exécuté par root. Ceci complète l’option «uid». Par défaut le gid vaut -2, ce qui est normalement le groupe «nobody».

exclude

L’option «exclude» vous permet de spécifier une liste de motifs (séparés par des espaces) à ajouter à la liste d’exclusion. Ceci est équivalent à un client qui spécifie ces motifs avec l’option --exclude excepté que la liste d’exclusion n’est pas passée au client et ne s’applique donc qu’au serveur. Une seule option «exclude» peut être spécifiée, mais vous pouvez utiliser «-» et «+» devant les motifs pour spécifier exclusion/inclusion.

Notez que cette option n’est pas conçue pour une sécurité renforcée, il est bien possible qu’un client peut trouver un moyen de passer outre cette liste d’exclusion. Si vous voulez absolument vous assurer que certains fichiers ne peuvent pas être accédés alors utilisez les options uid/gid en combinaison avec les permissions des fichiers.

exclude from

L’option «exclude from» spécifie un nom de fichier sur le serveur qui contient des motifs d’exclusion, un par ligne. Ceci est équivalent à un client qui spécifie l’option --exclude-from avec un fichier équivalent excepté que les motifs d’exclusion résultants ne sont pas passés au client et ne s’appliquent donc qu’au serveur. Voyez également ci-dessus la note concernant la sécurité de l’option exclude.

include

L’option «include» vous permet de spécifier une liste de motifs (séparés par des espaces) que rsync ne doit pas exclure. Ceci est équivalent à un client qui spécifie ces motifs avec l’option --include. Ceci est utile car permet de construire des règles d’exclusion/inclusion complexes. Une seule option «include» peut être spécifiée, mais vous pouvez utiliser «+» et «-» devant les motifs pour alterner inclusion/exclusion.

Consultez la section sur les motifs d’exclusion dans le manuel de rsync pour des informations sur la syntaxe de cette option.

include from

L’option «include from» spécifie un nom de fichier sur le serveur qui contient des motifs d’inclusion, un par ligne. Ceci est équivalent à un client qui spécifie l’option --include-from avec un fichier équivalent.

auth users

L’option «auth users» vous permet de spécifier une liste de noms d’utilisateurs (séparés par des virgules et des espaces) qui vont être autorisés à se connecter à ce module. Les noms d’utilisateurs n’ont pas besoin d’exister sur le système local. Les noms d’utilisateurs peuvent contenir des caractères joker du shell. Si «auth users» a une valeur, alors le client devra répondre à une demande de nom d’utilisateur et mot de passe pour se connecter au module. Un protocole d’authentification de réponse à cette demande est utilisé pour cet échange. Les noms d’utilisateurs et les mots de passes sont enregistrés sous forme textuelle dans le fichier spécifié par l’option «secret file». Par défaut tous les utilisateurs peuvent se connecter sans mot de passe (ceci s’appelle «rsync anonyme»).

secrets file

L’option «secret file» spécifie le nom du fichier qui contient la paire nom-d’utilisateur:mot-de-passe utilisée pour l’authentification pour ce module. Ce fichier est uniquement consulté si l’option «auth users» est spécifiée. Ce fichier est organisé en lignes et contient des paires nom-d’utilisateur:mot-de-passe séparés par un unique double point. Toute ligne commençant par un dièse (#) est considérée comme un commentaire et est oubliée. Les mots de passe peuvent contenir tous les caractères mais soyez prévenu que de nombreux systèmes d’exploitation limitent la longueur des mots de passe qui peuvent être entrés du côté client, ainsi vous pourriez trouver des mots de passe plus longs que 8 caractères qui ne fonctionnent pas.

Il n’y a pas de valeur par défaut pour l’option «secret file», vous devez choisir un nom (comme /etc/rsyncd.secrets). Normalement le fichier ne doit pas être lisible par les «autres» ; voyez «strict modes».

strict modes

L’option «strict modes» détermine si oui ou non les permissions du fichier secret doivent être vérifiées. Si «strict modes» est vrai, alors le fichier secret ne doit pas être lisible par les utilisateurs ayant un numéro identificateur différend de celui sous lequel tourne le démon rsync. Si «strict modes» est faux la vérification n’est pas faite. La valeur par défaut est vrai. Cette option a été ajoutée pour pouvoir utiliser rsync avec le système d’exploitation Windows.

hosts allow

L’option «hosts allow» vous permet de spécifier une liste de motifs à faire correspondre au nom d’hôte et à l’adresse IP d’un client qui veut se connecter. Si aucun des motifs ne correspond, alors la connexion est rejetée.

Chaque motif peut être dans une des cinq formes:

o

une adresse IP décimale avec des points. Dans ce cas les adresses IP des machines entrantes doivent correspondre exactement.

o

une paire adresse/masque sous la forme a.b.c.d/n où n est le nombre bits dans le masque de réseau. Toutes les adresses qui correspondent à l’adresse IP masquée vont être autorisées à entrer.

o

une paire adresse/masque sous la forme a.b.c.d/e.f.g.h où e.f.g.h est un masque de réseau en notation décimale avec points. Toutes les adresses IP qui correspondent à l’adresse IP masquée vont être autorisées à entrer.

o

un nom d’hôte. Le nom d’hôte déterminé par une consultation inverse doit correspondre (casse pas importante) au motif. Une correspondance exacte uniquement est permise.

o

un motif de nom d’hôte utilisant des jokers. Ceux ci sont vérifiés pour correspondance en utilisant les règles de vérification de correspondance des noms de fichiers sous Unix. Si le motif correspond alors le client est autorisé à entrer.

Vous pouvez aussi combiner «hosts allow» avec une option «hosts deny» séparée. Si les deux option sont spécifiées alors l’option «hosts allow» est vérifiée en premier et une correspondance résulte en une possible autorisation de connexion du client. L’option «hosts deny» est ensuite vérifiée et une correspondance signifie que l’hôte est rejeté. Si l’hôte ne corresponds ni aux motifs de «hosts allow» ni aux motifs de «hosts deny» alors il est autorisé à se connecter.

Par défaut il n’y a pas d’option «hosts allow», ce qui signifie que tous les hôtes peuvent se connecter.

hosts deny

L’option «hosts deny» vous permet de spécifier une liste de motifs qui sont vérifiés pour correspondance avec le nom d’hôte et l’adresse IP d’un client qui veut se connecter. Si le motif correspond alors la connexion est rejetée. Voyez l’option «hosts allow» pour plus d’informations.

Par défaut il n’y a pas d’option «hosts deny», ce qui signifie que tous les hôtes peuvent se connecter.

ignore errors

L’option «ignore errors» dit à rsyncd d’ignorer les erreurs d’entrée-sortie sur le serveur lors de la décision d’exécuter ou non la phase de suppression du transfert. Normalement rsync ignore l’étape --delete si des erreurs d’entrée-sortie ont eu lieu pour prévenir d’une suppression désastreuse due à un défaut temporaire de ressources ou autres erreurs d’entrée-sortie. Dans certains cas ce test est contre-productif et vous pouvez utiliser cette option pour empêcher ce comportement.

ignore nonreadable

Ceci dit au serveur rsync d’ignorer complètement les fichiers qui ne sont pas lisibles par l’utilisateur. Ceci est utile pour les archives publiques qui peuvent avoir certains fichiers non lisibles dans leurs répertoires que l’administrateur système désire cacher.

transfer logging

L’option «transfer logging» permet l’enregistrement (log) des téléchargements de chaque fichiers dans un format assez similaire à celui utilisé par les démons ftp. Si vous désirez personnaliser le format de l’enregistrement, consultez l’option de format d’enregistrement.

log format

L’option «log format» vous permet de spécifier le format utilisé pour l’enregistrement des transferts de fichiers lorsque celle-ci est active. Le format est une chaîne de caractères contenant des séquences d’échappement d’un caractère, préfixées par un caractère (%).

Les préfixes reconnus sont:

o

%h pour le nom de l’hôte distant

o

%a pour l’adresse IP de l’hôte distant

o

%l pour la longueur du fichier en octets

o

%p pour le numéro de processus de cette session rsync

o

%o pour l’opération, qui est soit «send», soit «recv»

o

%f pour le nom de fichier

o

%P pour le chemin du module

o

%m pour le nom du module

o

%t pour la date et heure courante

o

%u pour le nom d’utilisateur authentifié (ou bien chaîne de caractère nulle)

o

%b pour le nombre d’octets transférés

o

%c lors de l’envoi de fichiers, ceci donne le nombre d’octets de la somme de contrôle reçus pour ce fichier

Le format de journalisation par défaut est «%o %h [%a] %m (%u) %f %l», et «%t [%p] » est toujours ajouté au début lorsque l’option «log file» est utilisée.

Un script perl appelé rsyncstats et permettant de résumer ce format est inclus dans le paquetage du code source de rsync.

timeout

L’option «timeout» vous permet d’outrepasser les choix des clients pour le temps d’attente avant échec d’entrée sortie de ce module. Grâce à cette option vous pouvez vous assurer que rsync ne va pas attendre indéfiniment un client décédé. Le temps d’attente est spécifié en secondes. Un valeur nulle signifie qu’il n’y a pas d’attente avant échec, ceci est le comportement par défaut. Un bon choix pour des serveurs rsync anonymes est peut être 600 (10 minutes d’attente).

refuse options

L’option «refuse options» vous permet de spécifier une liste d’options de la ligne de commande rsync qui vont être refusées par le serveur rsync. Les noms complets des options doivent être utilisés (i.e., vous devez utiliser «checksum» et non «c» pour désactiver l’utilisation des sommes de contrôle). Lorsqu’une option est refusée, le serveur affiche un message d’erreur et quitte. Pour empêcher toutes les compressions, vous pouvez utiliser «dont compress = *» (voir ci-dessous) au lieu de «refuse options = compress» pour éviter de retourner une erreur à un client qui demande la compression.

dont compress

L’option «dont compress» vous permet de sélectionner les noms de fichiers qu’il ne faut pas compresser, en utilisant des motifs avec jokers. La compression est coûteuse en utilisation CPU, ainsi il est en général bon de ne pas essayer de compresser les fichiers qui ne se compressent pas beaucoup, comme les fichiers déjà compressés.

L’option «dont compress» prends une liste de motifs avec jokers séparés par des espaces. Tous les noms de fichiers correspondant un des motifs ne seront pas compressés pendant le transfert.

La valeur par défaut est

*.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

ROBUSTESSE DE L’AUTHENTIFICATION

Le protocole d’authentification utilisé dans rsync est un système de challenge-réponse basé sur MD4 128 bit. Alors que je pense que personne n’a jamais montré un cassage par force brute de ce type de systèmes, vous devez prendre conscience que ceci n’est pas un système d’authentification de «robustesse militaire». Il devrait être assez bon pour la plupart des besoins mais si vous voulez réellement une sécurité de qualité supérieure alors je recommande que vous exécutiez rsync pardessus ssh.

Notez également que le protocole du serveur rsync ne fournit actuellement aucun cryptage des données qui sont transférées à travers le lien de réseau. L’authentification uniquement est fournie. Utilisez ssh comme transport si vous voulez le cryptage.

Les prochaines versions des rsync supporteront peut être SSL pour une meilleure authentification et cryptage, mais ceci est en cours d’étude.

EXEMPLES

Un fichier rsyncd.conf simple qui permet de faire du rsync anonyme vers une aire ftp /home/ftp serait:

[ftp]
        path = /home/ftp
        comment = aire d’export ftp

Un exemple plus sophistiqué serait:

uid = nobody
gid = nobody
use chroot = no
max connections = 4
syslog facility = local5
pid file = /var/run/rsyncd.pid

[ftp]
        path = /var/ftp/pub
        comment = aire ftp entiere (approx 6.1 GB)

[sambaftp]
        path = /var/ftp/pub/samba
        comment = aire ftp Samba (approx 300 MB)

[rsyncftp]
        path = /var/ftp/pub/rsync
        comment = aire ftp rsync (approx 6 MB)

[sambawww]
        path = /public_html/samba
        comment = pages WWW Samba (approx 240 MB)

[cvs]
        path = /data/cvs
        comment = depot CVS (necessite authentification)
        auth users = tridge, susan
        secrets file = /etc/rsyncd.secrets

Le fichier /etc/rsyncd.secrets ressemblerait à quelque chose comme ceci:

tridge:mypass
susan:herpass

FICHIERS

/etc/rsyncd.conf

VOIR AUSSI

rsync(1)

DIAGNOSTICS

BOGUES

Le serveur rsync n’envoie pas tous les types de messages d’erreur au client. Ceci signifie qu’un client peut être mystifié quant à la raison de l’échec d’un transfert. L’erreur aura été enregistrée par syslog sur le serveur.

Reportez les bogues svp! Le système de suivi de bogues de rsync est en ligne à http://rsync.samba.org/

VERSION

Ce manuel est à jour pour la version 2.0 de rsync.

CRÃDITS

rsync est distribué sous la licence publique GNU. Consultez le fichier COPYING pour plus de détails.

Le site ftp primaire de rsync est ftp://rsync.samba.org/pub/rsync.

Un site WEB est disponible à http://rsync.samba.org/

Nous serions ravis d’avoir de vos nouvelles si vous appréciez ce programme.

Ce programme utilise l’excellente bibliothèque de compression zlib écrite par Jean-loup Gailly et Mark Adler.

REMERCIEMENTS

Merci à Warren Stanley pour son idée originale et son patch pour le serveur rsync. Mercis à Karsten Thygese pour ses nombreuses suggestions et la documentation!

AUTEURS

rsync a été écrit par Andrew Tridgell et Paul Mackerras. Ils peuvent être contactés par email à tridge@samba.org et Paul.Mackerras@cs.anu.edu.au

TRADUCTION

Denis Mertz, 2002.


rsyncd.conf(5)