Serveur de sauvegarde -- BackupPC

::TOC::

Ce billet est le deuxième volet de ma recherche du système de sauvegarde.

Crevons le suspense de suite, je retiens cette solution, mais j'y apporterai des compléments (liés aux limitation de backupPC)

Comme je dédierai un petit [1] serveur à cette fonction (il est en commande). Là pour ce mémo, je pars d'une débian sans interface graphique, ni rien, fraichement (ré-)installée.

Quelques screens sont faits de chez moi avec le test depuis une fedora et une debian dans une virtual box, d'autres, depuis le test en live du LAN du travail. Sur les impressions d'écran les IP ne sont pas toujours cohérentes avec l'ordre du tutoriel, n'y faites pas attention.

Installer apache (basique, sans php) et backuppc

Le Gui de backupPc fonctionne avec des scripts CGI, pas besoin de base de donnée mysql, ni de PHP.

En root exécuter:

apt-get install apache2 apache2-doc backuppc

Il va installer plein de dépendances, dont samba qui vous pose cette question:

Backup-PC-samba.jpeg

Là je suis dans mon réseau de virtualbox, donc je laisse workgroup, cependant lors des tests effectués au travail, j'avais mis le nom du domaine windows.

Ensuite il propose d'auto-configurer un VHOST apache:

Backup-PC-apache.jpeg

Appuyez la barre espace pour cocher "apache" puis tab et entrée pour valider :p

Notez le mot de passe qu'il vous indique!

Backup-PC-apache-htpassword.jpeg

Si comme moi (lors de la première installation avant de rédiger ce billet) vous avez oublié le mot de passe, vous pouvez le changer ainsi:

htpasswd /etc/backuppc/htpasswd backuppc

Rendez vous sur la page d'admin de BackupPc

l'adresse est http://IpDuServeurDeBackup/backuppc dans mon cas: http://192.168.0.31/backuppc/

Backup-PC-auth.jpeg

Vous l'aurez compris, c'est une identification par un .htpassword seulement. Dans l'état actuel, ce serait une jolie négligence d'ouvrir l'interface sur le Web. Je reviendrai en fin du billet sur la façon de sécuriser un peu mieux cette interface (https) si j'ai le temps.

La première chose que je fais, c'est passer l'interface en français. aller dans "Edit Config" puis l'onglet "CGI" pour passer l'interface en Français.

BackupPC-french.jpeg

Cliquez sur le gros bouton save qui est apparu.

Maintenant on va configurer les sauvegardes.

On va voir comment sauver une machine sous windows, puis un linux.

Si vous avez un contrôleur du domaine, avec un active directory correctement configuré, créez un compte "sauveur" avec un mot de passe bien bourrin et donnez donnez lui les droits administrateurs afin qu'il puisse passer partout.

Le Lan dans lequel j'installerai BackupPc a les particularités suivantes:

  • Les clients sont des adresses dynamiques (DHCP), mais une stratégie de profils itinérants est déployée, ce qui fait que je ne vais pas sauvegarder les postes clients, mais juste le serveur accueillant les profils itinérants. (et les autres serveurs)
  • Les serveurs ont des adresses IP fixes.

Du coup, je vais utiliser les IP des machines, mais il serait tout à fait possible d'utiliser les noms DNS de ces dernières des fois que ce soit dynamique.

Sauvegarder un windows

Créer un utilisateur qui aura accès à tout le poste.

Le principe, est de créer un partage à la racine du / des disques durs, qu'on ouvre à un compte windows qui a tous les droits :D

Là c'est parce que je suis en dehors d'un domaine pour les tests, je le ferai au niveau du contrôleur de domaine lors du vrai déploiement de cette solution. Mais dans l'immédiat, sur le Windows qui me sert de test, on va créer un nouvel administrateur du dit poste.

Le principe est le même sur un widows Seven, c'est juste que je n'ai pas de license en rabe pour en virtualiser un.

Allez hop, j'allume un windows dans une vbox.

Click droit sur le poste de travail, gérer, allez dans utilisateurs et groupes, puis utilisateurs.

Un click droit pour créer un nouvel utilisateur:

winXPnouvelUtilisateur.jpeg

winXP-Partage-C1.jpeg

Rendez vous dans les groupes, Celui administrateurs, click droit -> propriétés -> onglet "Membres" pour ajouter le compte sauveur:

winXP-Partage-C3.jpeg

winXP-Partage-C4.jpeg

Dans le poste de travail, click droit sur le disque c, propriétés, et dans l'onglet partage:

winXP-Partage-C.jpeg

Et un petit tour dans les autorisation pour donner tous les droits au groupe "Administrateurs"

winXP-Partage-C5.jpeg

winXP-Partage-C6.jpeg

Voila, on a fini pour la préparation du poste windows, retournons à BackupPc.

Voir les impression d'écran et le mémo pour créer le partage

Configurer le backup d'une machine windows

Dans l'interface de backupPc, je vais dans "Modifier les machines" et j'ajoute la nouvelle:

BackupPc-addMachine.jpeg

Une fois ajoutée, je sélectionne la nouvelle machine dans la liste déroulante en haut à gauche et je vais dans modifier la configuration.

onglet Xfer et j'ajoute les paramètres samba:

BackupPc-addMachine1.jpeg

Sauvegarder un linux

Ça va être moins galère à expliquer que sur windows ça.

  • 192.0.168.254 c'est le client
  • 192.0.168.31 c'est le serveur

Evidemment, remplacez ces IP par les votres dans la suite.

Générer des clés ssh sur le serveur

Les clés ssh du serveur lui permettront de se connecter aux clients à sauver.

En tant que root, sur le serveur:

#installer openssh-server
apt-get install openssh-server
#se mettre en user backuppc
su -l backuppc
#générer un couple de clés
ssh-keygen -t rsa
#laissez le chemin par défaut (/var/lib/backuppc/.ssh/id_rsa dans mon cas), 
#et ne mettez pas de mot de passe
#redevenir root
exit
#envoyer la clé publique sur le repertoire web du serveur
cp /var/lib/backuppc/.ssh/id_rsa.pub /var/www/

Sur le PC client:

Il faut lui autoriser les connexions avec la clé qu'on vient de générer sur le serveur backuppc en Root:

apt-get install openssh-server
#remplacez l'IP ici donnée par celle de votre serveur
wget http://192.168.0.31/id_rsa.pub
mkdir 
touch ~/.ssh/authorized_keys
cat id_rsa.pub >> ~/.ssh/authorized_keys

revenir sur le serveur

en root:

su -l backuppc
#faire une connexion ssh vers le client histoire de l'enregistrer dans le fichier know_hosts
ssh root@192.0.168.254
#validez par yes
#au passage, supprimez la clé publique du dossier web (on l'a mise là tout à l'heure)
rm /var/www/id_rsa.pub

Revenir sur l'interface web de backuppc pour ajouter la machine linux

Serveur>Modifier les machines, ajoutez votre machine. Bilan des machines -> selectionnez celle qui correspond à la nouvelle. Modifiez la configuration -> onglet Xfer et mettez les paramètres comme ceci:

backuppc-cles1.jpeg

nottemment:

  • XferMethod rsync

Le reste des paramètres était ok par défaut.

Enfin lancez la sauvegarde.

Et comment qu'on restaure?

Dans le Gui web, tous simplement, sur une machine, en allant dans "explorer les sauvegardes"

backuppc-restaure.jpeg

BackupPc Peut-il saturer les disques d'un serveur? -- Créer une partition uniquement pour les sauvegardes

Oui et non:

Voici le screen du test de BackupPC que j'avais laissé tourner sans m'en occuper sur un serveur du travail. backuppc-full3.jpg

A 97% de la place occupée il s'est arrêté de faire des sauvegardes, S'il n'a pas la place de sauvegarder, il ne sauvegarde pas. Dans mon cas, les 3% restant suffisaient au fonctionnement normal des autres fonctions du serveur (ouf)

Bref pour être tranquilou, le plus simple est d'obliger backuppc de sauvegarder sur un disque séparé, ou au moins une autre partition que la partition système. Pour modifier le lieu où backupPC va mettre ses sauvegardes, dans le fichier /etc/backuppc/config.pl .changez la ligne

$Conf{TopDir} = '/var/lib/backuppc';

par ce que vous voulez,

Dans le cas du serveur de test en attendant la livraison du serveur qui sera dédié à cette tâche, je mets: /home/backuppc/ car /home est monté sur un autre groupe de disques qui a un chouilla plus d'espace.

#créer le repertoire avec les bons droits
mkdir /home/backuppc
chown -R backuppc:backuppc /home/backuppc
#y mettre l'arboressence dont backuppc se sert
cd /var/lib/backuppc
mv * /home/backuppc/

Complément: mySQL et SQL-Serveur

Pour préparer les bases avant leurs sauvegardes, c'est traité dans ce billet.

Conclusion

Backuppc répond totalement à ma problématique de l'utilisateur qui a perdu un fichier il y a plusieurs jours. Pour la sauvegarde des bases de données et éventuellement envisager la sauvegrade de partitions entières, l'outil seul ne suffit pas. Je ferai prochainement un mémo sur comment faire un backup d'un serveur Microsoft SQL et d'une base de données MySQL.

Note

[1] dimmensionné à 4 GO de RAM et je sais plus quoi en processeur, mais 4 Téras octets mis en raid 1, donc 8 téras de disques durs

Page top