sauvegarde de serveurs Linux

Avec Webmin

Pendant le contexte de première année en AP, une des compétences acquises lors des différentes missions de ce contexte est la sauvegarde du site web de l'entreprise.

Pour ce faire, il y existe plusieurs outils qui donne le même résultat et l'outil utilisé à ce moment est webmin.

webmin est un paquet qui s'installe sur l serveur et permet en web de gérer une multitudes de paramètres du serveur dont la configuration de sauvegardes.

T

Voici la page web d'accueil de webmin après la connexion.

Afin de confugurer la sauvegarde de notre serveur sur un serveur distant, il nous faut aller sur la barre d'outils sur la gauche, cliquer sur webmin puis backup configuration files et nous allons se retrouver sur cette page.

T

On va aller ensuite cliquer sur scheduled backups

T

On arrive sur cette page qui va nous permettre de configurer la sauvegarde du serveur vers un distant.

Dans cette exemple, j'ai un site internet se trouvant dans /var/www/html et je souhaite faire des sauvegardes tout les jours à minuit.

Dans la liste des modules à backup, on peut sélectionner le module de configuration d'apache.

Ensuite, on va sélectionner la façon avec laquelle nous voulons faire la sauvegarde de notre site internet.

On choisi SSH Server et on va au préalable créer un nouvel utilisateur sur le serveur accueillant les sauvegarde avec la commande adduser.

Ensuite on rempli la case correspondant à l'IP, le chemin de sauvegarde, l'utilisateur pour faire les sauvegardes ainsi que son mot de passe.

Dans la case included in backup, on ve venir cocher la case other listed files et on va venir indiquer que la sauvegarde doit en plus de la configuration d'apache sauvegarder tout ce qui se trouve dans /var/www

T

Cette partie là sert à configurer l'interval de temps pour les sauvegardes mais on va sélectionner dailt (at midnight) afin de faire une sauvegarde tout les jours à minuit.

une fois que la configuration est finie, on clique sur create et dans l'onglet scheduled backups va apparaître le backup que l'on vient de faire.

on va revenir cliquer dessus et aller tout en bas afin de cliquer sur save and backup now afin de tester si le backup fonctionne.

T T

Ici, on voit que notre sauvegarde est bien sur le serveur distant et maintenant, on va retourner sur l'interface web de webmin et on va aller dans l'onglet restore now.

T

Dans cet onglet qui sert à faire la restauration des sauvegarde, on va venir sélectionner le module que nous avons sauvegardé aisni que les fichiers se trouvant dans le dossier /var/www. Ensuite on va venir mettre l'adresse de notre serveur de sauvegarde ainsi que le nom du fichier de sauvegarde dans son chemin complet (ici /home/adrien/backup-) et l'utilisateur et son mot de passe.

On va venir cocher la case just show what will be restored qui va permettre de montrer ce qui serait restauré et ensuite on clique sur restore now et on devrait obtenir cela :

T

Avec Rsnapshot

Pour le contexte aeroclub en seconde année, on a évolué vers une soltution travaillée lors des TP qui est Rsnapshot.

pour installer Rsnapshot sur une machine Debian 10, il suffit de faire :

  • apt install rsnapshot
  • avant d'aller configurer rsnapshot, on va créer une clé ssh sur le serveur qui va servir de serveur de sauvegarde avec :

  • ssh-keygen -b 4096
  • on va faire enter à chaque étape et nous devrions avoir cela à la fin

    T

    Ensuite, on va copier la clé publique sur le serveur à sauvegarder. Dans cette exemple on souhaite sauvegarder tout ce qui se trouve dans /etc et /var. De ce fait on va copier la clé publique sur l'utilisateur root du serveur à sauvegarder avec la commande suivante :

  • ssh-copy-id [email protected]
  • on rentre le code root et ensuite nous devrions avoir la possibilité de pouvoir se connecter sur le root du serveur distant en faisant ssh [email protected] et nous devrions être connecté sans devoir utiliser le mot de passe.

    Ensuite, on va aller configurer rsnapshot en faisant :

  • nano /etc/rsnapshot.conf
  • La première chose que nous pouvons configurer est l'endroit ou les sauvegarde vont être stockées sur le serveur.

    T

    Ici, la sauvegarde ira dans /home/adrien/rnsapshot.

    T

    Ensuite, on va venir trouver la ligne cmd_ssh afin de la décommenter.

    T

    Ici, on configure les intervalles de sauvegardes avec les différents niveau et le nombre de sauvegardes pour chaque niveau.

    T

    Ici, on sauvegarde depuis l'utilisateur root sur le serveur ayant l'adress ip 10.21.50.2 les dossiers /var et /etc.

    Il faut bien faire attention car les espaces entre le mot backup et root ne sont pas des espaces mais des intendations et il faut uniquement utiliser des intendations.

    Dans le cas ou le port ssh de notre serveur distant n'est pas le 22, la ligne de backup va ressemble à ceci :

    T

    Ensuite quand nous avons fini de configurer rsnapshot on peut ressortir de rsnapshot.conf afin de faire la commande suivante

  • rsnapshot configtest
  • Cette commande permet de vérifier si la syntaxe dans le fichier rsnapshot.conf est correcte et si oui elle retournera

    T

    Ensuite, on peut venir effectuer la commande suivante :

  • rsnapshot hourly
  • Cette commande déclenche la première sauvegarde et va durer plus ou moins de temps suivant ce qu'il y a à sauvegarder.

    Ensuite, lorsque la sauvegarde est finie, on peut se rendre dans le dossier ou nous avons demandé à rsnapshot que les sauvegardes se fasse.

    T

    on retrouve un dossier s'appelant hourly.0 qui correspondra toujours à la sauvegarde la plus récente.

    lorsque nous navigons dans ce dossier hourly.0, on devrait avoir le dossier 50.2 qui correspond au dossier que nous avons défini pour mettre les sauvegardes du serveur 10.21.50.2 et à l'intérieur de ce dossier on retouvera normalement les dossier /var et /etc du serveur distant.

    T

    On voit bien que la sauvegarde fonctionne mais afin de l'automatiser, on va aller dans /etc/cron.d

    T

    on fait nano rsnapshot

    T

    Ici on retrouve des crontab de base qui sont commentées et selon les besoins il faut les décommenter et si désir les associer avec différents paliers.

    Dans le cas de l'aeroclub, on fait une sauvegarde des serveurs toutes les heures.

    Prenons la situation suivante : je suis dans /var/www et je fait un rm -r html/. le dossier html a été effacé sauf que ce n'est pas ce que je voulait.

    pour restaurer ma bêtise, il faut aller sur le serveur rsnapshot et faire :

  • rsync -avz /home/adrien/rsnapshot/hourly.0/50.2/var/www/ [email protected]:/var/www
  • Cette commande permet de faire la synchronisation dans le dossier hourly.0/50.2/var/www qiu se trouve sur le serveur rsnapshot avec ce qu'il y a dans /var/www sur le serveur distant et de faire la copie des fichiers manquants si nécessaire.