Illustration Rsync par Walker Cahall
Présentation
Ce didacticiel vous guidera dans la configuration d'un démon rsync sur votre serveur Linux. Vous voudrez peut-être un démon rsync si vous avez des fichiers que vous souhaitez mettre à disposition afin que n'importe qui (ou seulement vous-même) puisse télécharger des fichiers existants ou télécharger de nouveaux fichiers. Ce guide passera en revue à la fois l'exécution de rsync en tant que son propre démon et son exécution via xinetd.
Prérequis
– Un serveur Linux avec rsync installé – si vous n'avez pas encore de serveur, pourquoi ne pas créer un serveur VPS robuste et fiable en moins de 30 secondes.
– (Facultatif) Xinetd installé.
– Autorisations appropriées pour lire et/ou écrire sur le démon rsync (ce tutoriel montrera les commandes exécutées en tant qu'utilisateur root).
Configuration d'un démon Rsync
Tout d'abord, à l'aide de votre éditeur de texte préféré, vous devrez créer le fichier de configuration /etc/rsyncd.conf
, si vous n'en avez pas déjà. Vous trouverez ci-dessous un exemple de nos paramètres de configuration de base et des explications pour chacun.
pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsync.log port = 12000 [files] path = /home/public_rsync comment = RSYNC FILES read only = true timeout = 300
pid file
:Le fichier d'ID de processus utilisé par le démon.
lock file
:Le fichier de verrouillage du démon.
log file
:L'emplacement du fichier journal.
port
:Si vous ne souhaitez pas que le démon rsync s'exécute sur son port par défaut (873), vous pouvez spécifier un nouveau port ici. Assurez-vous que ce port est ouvert dans votre pare-feu. Rsync utilise le protocole TCP pour ses transferts.
[files]
:C'est le nom du module. Le nom utilisé ici est celui que vous allez mettre dans la commande rsync pull comme première partie de la source (/files/../..). Vous pouvez lui donner le nom que vous voulez et en avoir autant que vous le souhaitez.
path
:Le chemin d'accès aux fichiers associés à ce module.
comment
:Commentaire descriptif pour ce module.
read only
:Cela indique au démon que le répertoire de ce module est en lecture seule. Vous ne pouvez pas télécharger dessus. Pour le téléchargement uniquement, utilisez upload only =true.
timeout
:temps, en secondes, que le démon rsync attendra avant de mettre fin à une connexion morte.
Ceci n'est qu'une configuration de base. Pour une liste plus détaillée des options, consultez la page du manuel.
Exécuter Rsync en tant que démon
Maintenant, avec cette configuration de base, nous pouvons démarrer le démon par lui-même en exécutant ce qui suit :
rsync --daemon
Vous pouvez vérifier que le démon est en cours d'exécution avec :
ps x | grep rsync
Si vous avez quelque chose de bizarre dans la sortie, comme une déclaration indiquant non confiné, vous pouvez avoir SELinux bloquant le démon. Vous devrez travailler pour ajouter rsync pour qu'il soit accepté par SELinux afin que vous puissiez exécuter le démon.
.
Maintenant que le démon rsync est en cours d'exécution, il est prêt à accepter les connexions. Si vous ne savez pas comment vous connecter à partir d'un client rsync, consultez notre guide sur la connexion avec rsync.
Pour arrêter le démon, vous pouvez exécuter un kill
commande.
kill `cat /var/run/rsyncd.pid`
.
Exécuter Rsync via Xinetd
Si vous utilisez déjà xinetd pour gérer les services, vous pouvez également ajouter le contrôle du démon rsync. Bien que xinetd offre un meilleur contrôle central sur les processus en cours d'exécution, notez que cela ne signifie pas nécessairement une plus grande sécurité.
Tout d'abord, modifiez le fichier xinet.d pour rsync, s'il existe déjà (sinon, vous pouvez le créer et utiliser l'exemple de configuration ci-dessous). Modifiez le disabled
ligne vers no
. Vous voudrez également ajouter le port
ligne avec le port par défaut (873) ou votre port personnalisé.
Remarque :Si vous utilisez un port personnalisé, vous devrez également modifier le port rsync dans le fichier de service (
/etc/services
) à votre port personnalisé.
.
À l'aide de votre éditeur de texte préféré, créez ou modifiez /etc/xinetd.d/rsync
comme ci-dessous :
# default: off # description: The rsync server is a good addition to an ftp server, as it \ # allows crc checksumming etc. service rsync { disable = no flags = IPv6 socket_type = stream port = 12000 wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID }
Il ne vous reste plus qu'à redémarrer xinetd et le démon rsync devrait s'exécuter.
/etc/init.d/xinetd restart
.
Test des répertoires Rysnc
Pour tester votre connexion au démon rsync et trouver les chemins disponibles, connectez-vous simplement de votre client à l'hôte rsync en utilisant la méthode suivante. Cette méthode n'exécute qu'une partie d'une commande pull mais vous révèlera les chemins.
rsync -rdt rsync://IPADDR:RsyncPort/
Trouver le chemin du fichier
Cette commande vous montrera quels répertoires vous sont ouverts. Si vous ne connaissez pas le nom du fichier, vous pouvez répéter le processus (en ajoutant le chemin du fichier) jusqu'à ce que vous trouviez le ou les fichiers souhaités.
rsync -rdt rsync://IPADDR:RsyncPort/DirectoryName
Plus de chemins de fichiers découverts
Et une fois que vous avez trouvé le fichier, vous pouvez terminer la commande et l'extraire.
rsync -rdt rsync://IPADDR:RsyncPort/DirectoryName/File /DestinationDirectory/
Chemin complet trouvé
Ajout de noms d'utilisateur et de mots de passe au démon Rsync
Vous pouvez rendre votre démon rsync plus sécurisé en ajoutant un nom d'utilisateur et un mot de passe dans son fichier de configuration. Ouvrez /etc/rsyncd.conf
avec votre éditeur de texte préféré, et entrez ces paramètres sous le module.
[files] path = /home/public_rsync comment = RSYNC FILES read only = true timeout = 300 auth users = rsync1,rsync2 secrets file = /etc/rsyncd.secrets
auth users
:Liste des utilisateurs, séparés par des virgules. Ils ne doivent pas nécessairement exister sur le système, mais ils doivent exister dans le fichier des secrets.
secrets file
:Chemin d'accès à votre fichier de secrets contenant la liste des noms d'utilisateur et des mots de passe.
Ensuite, toujours à l'aide de votre éditeur de texte préféré, ouvrez ou créez votre /etc/rsyncd.secrets
dossier. Utilisez le format suivant username:password
.
rsync1:9$AZv2%5D29S740k rsync2:Xyb#vbfUQR0og0$6 rsync3:VU&A1We5DEa8M6^8
Une fois que vous avez enregistré ce fichier, sécurisez-le afin que seul l'utilisateur root puisse le lire ou le modifier.
chmod 600 /etc/rsyncd.secrets
Notez que nous avons ajouté un utilisateur rsync3 que nous n'avons pas spécifié dans le paramètre auth users dans /etc/rsyncd.conf
. Vous verrez pourquoi ci-dessous.
Désormais, lors de la connexion à ce démon rsync, vous devrez vous assurer d'utiliser le nom d'utilisateur approprié.
Utilisateur rsync valide
Si vous essayez de vous connecter avec un utilisateur non autorisé dans les utilisateurs d'authentification, vous obtiendrez l'erreur ci-dessous.
Utilisateur rsync invalide
N'oubliez pas que les utilisateurs autorisés doivent apparaître à la fois dans le fichier /etc/rsyncd.conf
et le /etc/rsyncd.secrets
files.
.
Et c'est tout pour les bases d'un démon rsync. Vous devriez maintenant être en mesure de créer un démon rsync de base et d'avoir des répertoires spécifiés pour le téléchargement, le téléchargement ou les deux ! Veuillez revenir ici pour plus de mises à jour et pour envisager un serveur d'hébergement VPS Linux leader du marché d'Atlantic.Net.
En savoir plus sur nos services d'hébergement VPS et nos serveurs privés virtuels.