Table des matières

Activité : synchronisation distante de fichiers

Présentation

Les solutions de mise en oeuvre de redondance de services nécessitent la duplication de données sur des serveurs distincts éventuellement éloignés sur des sites distants.

Certaines solutions de sauvegarde en réseau utilisent par ailleurs des outils de duplication de données pour réaliser des sauvegardes incrémentales d'informations ou pour diffuser sur plusieurs machines le contenu d’un répertoire de référence.

Vous allez mettre en oeuvre le logiciel de synchronisation de fichiers en ligne de commande Rsync. Celui-ci :

Rsync permet alors :

Vous allez mettre en place une synchronisation de données :

  • entre deux deux dossiers situés sur deux serveurs Linux Debian différents,
  • entre un dossier situé sur un serveur Linux et un dossier situé sur serveur Windows.

Pour des raisons de sécurité, l'accès à distance en SSH avec le compte root est interdit. Pour le permettre, le fichier /etc/ssh/sshd_config doit être modifié :

Sous la ligne suivante :

# PermitRootLogin prohibit-password

Ajoutez la ligne par (sans le #):

PermitRootLogin yes

Puis redémarrez le service SSH :

# service ssh restart

Première maquette à réaliser

Installer Rsync

# apt update
# apt install rsync

Découvrir Rsync

Syntaxe de base :

rsync [option] /chemin/vers/source /chemin/vers/destination

Copie distante en utilisant SSH :

rsync [option] -rsh=ssh /chemin/vers/source [user]@[host]:/chemin/vers/destination

Pour transférer des données vers un serveur distant, le serveur OpenSSH doit être installé :

# apt install openssh-server

Tableau des options

OPTIONSACTION
-r visite récursive des répertoires
-l copie les liens symboliques comme liens symboliques
-p préserve les permissions
-t préserve les dates
-g préserve le groupe
-o tous les fichiers des *-from/filtres sont séparés par 0
-D préserve les périphériques (root uniquement)
-a mode archivage; identique à -rlptgoD (pas -H)
-v De nombreuses informations sont affichées lors du transfert.
-z Compresse le fichier pour un meilleur transfert par le reseau.
–delete ATTENTION ! Si le fichier (ou son contenu) n'existe plus dans “source”, il sera supprimé dans “destination”.

Exemples

rsync -avz /root/dossier /root/sauvdossier
rsync -avz -rsh=ssh /root/dossier [root]@[@ip]:/root/sauvdossier

Il sera nécessaire d'indiquer le mot de passe du compte

Par défaut le compte root ne peut se connecter à distance au szerveur en SSH. POur changer cela, il faut modifier le fichier /etc/sshd/sshd_config

Authentification par clé SSH

Afin de ne pas avoir à fournir le mot de passe à chaque exécution de rsync, le serveur source va s'authentifier sur le serveur destination avec une clé SSH.

Il faut définir le serveur source comme un client SSH de confiance. Pour cela :

# ssh-keygen -t rsa
# ssh-copy-id -i /root/.ssh/id_rsa.pub btssio@AdresseIPserveurDestination

Vérifiez qu vous pouvez vous connecter sans mot de passe :

#ssh btssio@AdresseIPserveurDestination

Tutoriel : Configurer une authentification avec un couple de clés privée/publique SSH

Script de sauvegarde

Pour automatiser la sauvegarde, vous allez créer un script de sauvegarde simple /root/script/rsync.sh contenant :

rsync -avz -rsh=ssh /root/dossier [btssio]@[@ip]:/home/btssio/sauvdossier

Sauvegardes automatisées depuis le cron du serveur

Il est conseillé d'effectuer les sauvegardes à des moments de la journée où les serveurs sont peu sollicités. Pour cela, il faut inscrire des appels à la commande de sauvegarde dans le cron de l'utilisateur root du serveur.

# crontab -e

    15 * * * * /root/scripts/rsync.sh

Deuxième maquette à réaliser

Configuration du serveur Linux

Les serveurs Microsoft Windows utilisent le protocole SMB (Server Message Block) pour partager des fichiers et des imprimantes. Ce protocole a été créé à l'origine par IBM, puis repris par Microsoft. Ce protocole a ensuite été renommé en protocole CIFS (Common Internet FileSystem). Lors de la sortie de Windows Vista, Microsoft a repris la dénomination SMB pour sa nouvelle version SMB 2. SMB et CIFS désignent donc, pour l'essentiel, le même protocole.

Pour accéder à ces serveurs Windows, il faut utiliser un client SMB. Le projet Samba consiste à fournir les paquets logiciels pour les distributions Linux afin de :

Installation d'un client SMB/CIFS

 # apt install smbclient

lister les partages d'un serveur Windows

 # smbclient -L nomserveur -U login_Windows

Il vous demandera de taper le mot de passe pour le domaine Windows

Accéder à un partage et aux fichiers

Exemple pour télécharger un fichier situé dans le dossier de la classe :

# smbclient //DC1-serveur/B2classe -U login_Windows
smb: \> ls
smb: \> cd répertoire_distant
smb: \> get fichier.txt
smb: \> quit

Le fichier téléchargé est ensuite disponible dans le dossier root.
La commande put permet de déposer un fichier présent dans le dossier root sur le serveur;

Monter un partage ponctuel sur le client Debian

Il est possible de monter sur un client Linux Debian, un partage situé sur un serveur Windows en installant le paquet smbfs :

# apt install cifs-utils
# mkdir /mnt/B2classe
# mount -t cifs -o user=login_Windows,password=password,rw //DC1-serveur/B2classe /mnt/B2classe

Vous pouvez alors, depuis votre client Debian, parcourir le partage situé sur le serveur Windows, en lecture et en écriture.

Pour démonter le montage :

# umount /mnt/B2classe

Monter un partage permanent sur le client Debian

Pour rendre ce montage permanent; il faut mettre à jour le fichier /etc/fstab de montage des partitions.

Attention : la modification incorrecte du fichier /etc/fstab rendra vos partitions inutilisables !

# sudo cp /etc/fstab /etc/fstab_sauvegarde
//DC1-serveur/B2classe /mnt/B2classe/ cifs username=login_Windows,password=password,uid=root,gid=root,fmask=777,dmask=777 0 0

Explications :

  • //DC1-serveur/B2classe : nom du dossier partagé auquel vous voulez accéder.
  • /mnt/B2classe/ : point de montage sur le client Debian (Le dossier doit exister).
  • username : identifiant utilisateur Windows.
  • password : mot de passe de l'identifiant utilisateur Windows.
  • uid et gid : nom d’utilisateur Linux et nom du groupe Linux.
  • droits fmask (fichiers) et dmask (dossiers) à 777 pour permettre d’accéder à tous les fichiers du disque réseau.

A faire : modifiez votre script pour avoir une sauvegarde de votre dossier Situé sur le client Debian, sur le serveur Windows.

Ressources