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 :
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
# apt update # apt install 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
OPTIONS | ACTION |
---|---|
-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”. |
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
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
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
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
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 :
# apt install smbclient
# smbclient -L nomserveur -U login_Windows
Il vous demandera de taper le mot de passe pour le domaine Windows
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;
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
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 :
A faire : modifiez votre script pour avoir une sauvegarde de votre dossier Situé sur le client Debian, sur le serveur Windows.