La première étape est l'installation et la
configuration du serveur de sauvegardes. BackupPC est disponible dans les
dépôts Ubuntu et Debian. Pour l'installer, il faut simplement
lancer la commande suivante :
apt-get install backuppc
A l'installation, il est créé l'utilisateur
backuppc ainsi que le « password user ». Soit nous la conservons
tel-quel ou nous la changeons à l'aide de la commande (voir figure
11)
sudo htpasswd /etc/backuppc/htpasswd
backuppc
Figure 11: La configuration du mot de passe de BackupPC
(Source : Hyppolyte N'GUESSAN)
III.3.1.1.1. Ajout de l'utilisateur dans le groupe backuppc
Pour démarrer backuppc, il faut ajouter l'utilisateur de
la session dans le groupe backuppc.
Pour cela, il faut exécuter la ligne de commande suivante
:
sudo adduser [MON_USER] backuppc
III.3.1.1.2. Ajout du fichier apache.conf
Comme l'installation ne copie pas le
/etc/backuppc/apache.conf sur le serveur apache2.
Il faut le faire soit même en copiant le fichier dans le
répertoire /etc/apache2/site-available/ avant de rendre actif le
site:
sudo cp /etc/backuppc/apache.conf /etc/apache2/site-
available/backuppc.conf
puis le rendre actif :
sudo a2ensite backuppc.conf
Un redémarrage du serveur web est nécessaire pour
prendre en compte les modifications.
N'GUESSAN K. Hyppolyte 2012 - 2013
50
sudo /etc/init.d/apache2 restart
La page web de backuppc est ainsi disponible pour toutes les
configurations à l'adresse : localhost/backuppc
(voir figure 12)
Figure 12: La page web BackupPC (Source : Hyppolyte
N'GUESSAN)
III.3.1.2.1. Le fichier hôte
Nous pouvons utiliser l'interface web pour configurer nos
hôtes comme nous le montre le voyons sur la figure 13.
Figure 13: L'interface Web de configuration des hôtes
(Source : Hyppolyte N'GUESSAN)
Nous pouvons également éditer manuellement le
fichier dans notre terminal en utilisant la commande :
vim /etc/BackupPC/conf/hosts
N'GUESSAN K. Hyppolyte 2012 - 2013
51
Sur la figure 14, nous avons une illustration de ce fichier.
Cela nous permey de voir que la première colonne correspond au nom
d'hôte. La seconde spécifie si DHCP (Dynamic Host Configuration
Protocol) doit être activé pour la recherche de l'hôte. La
troisième colonne indique l'utilisateur "propriétaire" de
l'hôte, la quatrième et dernière les utilisateurs
supplémentaires.
Figure 14: La configuration manuelle des hôtes (Source
: Hyppolyte N'GUESSAN)
III.3.1.2.2. Fichier de configuration générale
Il s'agit maintenant de configurer le serveur. Il existe deux
fichiers de configuration : un général et un par hôte. Le
fichier général est /etc/BackupPC/
config.pl,
chacun des fichiers de configuration des hôtes
/etc/BackupPC/pc/{nom_hôte}.pl. Le fichier de
configuration général est créé lors de
l'installation, les fichiers de configuration par hôte via l'ajout d'un
hôte et sa configuration depuis l'interface web d'administration comme
nous le montre la figure 15.
Figure 15: La configuration générale de
BackupPC via l'interface Web (Source : Hyppolyte N'GUESSAN)
Nous pouvons ici aussi choisir de modifier le fichier à
la main. Voici certaines options de configuration du serveur :
N'GUESSAN K. Hyppolyte 2012 - 2013
52
$Conf{ServerHost} = 'localhost'; nom du
serveur de sauvegarde. $Conf{WakeupSchedule} = [1, 2, 3] ; :
heures de réveil du serveur. La valeur
1, 2, 3 (par défaut) signifie que le serveur
s'éveillera toutes les heures sauf minuit. Il est aussi possible de
spécifier une ou plusieurs heures fixes, séparées par des
virgules : 1,2.5,6 (une heure, deux heures trente et six heures).
$Conf{BackupPCUserVerify} = 1 ; la valeur
par défaut (1) force le script à vérifier que le serveur
est lancé par l'utilisateur spécifié dans la directive
$Conf{BackupPCUser}. Cela permet d'éviter que le
script du serveur soit exécuté par un utilisateur non
autorisé (par exemple root). Il est conseillé de laisser cette
valeur à 1.
Suivent ensuite des directives qui peuvent être
remplacées dans le fichier de configuration d'un hôte. Si le
fichier d'hôte ne contient aucune indication, la valeur du fichier
général de configuration sera prise en compte.
$Conf{SmbShareName} = ['C$','D$'] ; nom
du/des partage(s) à sauvegarder pour les sauvegardes via samba
$Conf{SmbShareUserName} = ; utilisateur
samba à utiliser lors des sauvegardes windows
$Conf{SmbSharePasswd} = ; mot de passe de
l'utilisateur samba
$Conf{TarShareName} = ['/', '/home'];
système(s) de fichiers à sauvegarder en utilisant la
méthode tar
$Conf{RsyncShareName} = ['/','/home'] ;
système(s) de fichiers à sauvegarder en utilisant les
méthodes rsync et rsyncd
$Conf{FullPeriod} = 6.97;
périodicité de sauvegarde complète des hôtes
$Conf{IncrPeriod} = 0.97; périodicité de
sauvegarde incrémentielle des hôtes
$Conf{FullKeepCnt} = 2 ; nombre de
sauvegardes complètes à conserver. Cette directive est
très souple, je vous recommande la lecture de cette partie de l'aide en
ligne afin de configurer cette option selon vos besoins
$Conf{BackupFilesOnly} = undef ; liste des
fichiers et répertoires à sauvegarder. Je laisse personnellement
cette valeur à undef car je la défini spécifiquement pour
chaque hôte.
N'GUESSAN K. Hyppolyte 2012 - 2013
53
Dans le cas où cette valeur ne serait pas
définie dans le fichier de configuration de l'hôte, la sauvegarde
s'opérerait sur le partage par défaut (C$ et D$ pour samba, / et
/home pour tar, ...)
$Conf{BackupFilesExclude} = undef; liste des
fichiers et répertoires à ne pas sauvegarder. Identique à
l'option précédente
$Conf{BlackoutPeriods} = [{hourBegin =>
8.0, hourEnd => 23.0, weekDays
=> [1, 2, 3, 4, 5, 6, 7],},] ; : configuration du
blackout. Le blackout correspond aux périodes durant lesquelles le
serveur ne se réveillera pas automatiquement. Ici, la période de
blackout est définie de 8 heures à 23 heures pour tous les jours
de la semaine
$Conf{XferMethod} = 'rsync' ; méthode
de sauvegarde des hôtes (peut être rsync, smb, rsyncd, tar,
archive)
$Conf{XferLogLevel} = 1 ; degré de
verbosité. Plus le degré sera élevé, plus le
fichier de log sera complet. Il peut être utile d'augmenter cette valeur
pour un hôte donné qui pose des problèmes
$Conf{ArchiveComp} = 'bzip2'; méthode
de compression à utiliser pour la sauvegarde. Cette valeur peut
être none, gzip ou bzip2
$Conf{ServerInitdPath} =
'/etc/init.d/backuppc'; chemin vers le script de démarrage. Cette
directive permet le lancement du serveur depuis l'interface CGI
$Conf{ServerInitdStartCmd} = '$sshPath -q -x -l
root $serverHost
$serverInitdPath start < /dev/null >& /dev/null'; :
commande de démarrage du serveur depuis l'interface CGI. Cet exemple est
tiré des commentaires du fichier de configuration
$Conf{CompressLevel} = 3 ; taux de
compression tel que renseigné lors de l'exécution du script
configure.pl. Le taux peut prendre une
valeur de 0 à 9, reportez-vous à la documentation de backuppc et
de zlib pour plus d'informations. La valeur 3 est généralement un
bon choix.
La section suivante dans le fichier de configuration vous
permet de configurer l'envoi des emails en cas d'erreur, d'hôte jamais
sauvegardé, etc...
$Conf{EMailNotifyMinDays} = 2.5;
période minimale durant laquelle un utilisateur ne recevra pas de mails.
La valeur par défaut (2.5) signifie que l'utilisateur ne recevra qu'un
message tous les trois jours au maximum
N'GUESSAN K. Hyppolyte 2012 - 2013
54
$Conf{EMailFromUserName} = 'backuppc';
adresse de l'expéditeur. Les emails envoyés prendront en champ
from la valeur indiquée ici. Il est possible d'indiquer le nom
d'utilisateur ou l'adresse email complète en fonction de la
configuration de votre serveur mail
$Conf{EMailAdminUserName} =
'admin-backup@backup.domain.com'; : adresse email de
l'administrateur du serveur de sauvegarde
$Conf{EMailUserDestDomain} =
'@domain.com'; domaine des
utilisateurs. Les emails seront envoyés à l'adresse {utilisateur}@
domain.com
La dernière section du fichier correspond à la
configuration de l'interface CGI :
$Conf{CgiAdminUserGroup} = ; groupe des
utilisateurs administrateurs. Le groupe doit exister dans le fichier
.htpasswd
$Conf{CgiAdminUsers} = 'admin utilisateur1' ;
utilisateurs administrateurs. Chaque utilisateur doit exister dans le fichier
/etc/BackupPC/apache.users
$Conf{CgiURL} = '
http://localhost/BackupPC' ;
adresse HTTP du script CGI $Conf{Language} = 'fr'; langue de
l'interface CGI
$Conf {CgiDateFormatMMDD} = 0 ; format de
date. 0 pour le format international (JJ/MM) et 1 pour le format US (MM/JJ)
$Conf{CgiNavBarAdminAllHosts} = 1 ; liste de
tous les hôtes pour les administrateurs. Si cette valeur est à 1,
les administrateurs pourront accéder à tous les hôtes,
sinon seuls seront listés les hôtes pour lesquels l'utilisateur
est spécifié en user ou moreUsers dans le fichier de
configuration des hôtes.
III.3.1.2.3. Le fichier de configuration par PC
Il est maintenant nécessaire de configurer les
hôtes à sauvegarder. Les directives des fichiers d'hôtes
(/etc/BackupPC/pc/{hote}.pl) prennent le pas sur
celles du fichier de configuration général. Bien entendu, si vous
planifiez de ne sauvegarder qu'un seul et unique poste, ou que la configuration
est strictement identique sur chacun des postes à sauvegarder, il est
possible d'utiliser uniquement le fichier de configuration
général paramétré avec les bonnes directives. Vous
pouvez utiliser l'interface web d'administration pour cela en
sélectionnant un hôte dans la liste déroulante et en
cliquant sur le lien « Modifier la configuration ».
(Voir figure 16)
Figure 16: L'interface web d'administration (Source :
Hyppolyte N'GUESSAN)
Cette fois encore, nous pouvons choisir d'éditer le
fichier nous-même. Les directives possibles sont celles situées
dans les parties spécifiées du fichier de configuration
général. Il est intéressant de noter que bon nombre des
directives peuvent être modifiées par hôte, votre fichier de
configuration général peut être configuré pour
utiliser rsync avec SSH (Secure
Shell), et vous pouvez facilement mettre en place une sauvegarde
via SMB pour un hôte donné.
Voici ce à quoi pourrait ressembler un fichier de
configuration pour un hôte linux :
N'GUESSAN K. Hyppolyte 2012 - 2013
56
Un fichier de configuration pour un poste Windows pourrait
ressembler à ceci :
Figure 18: Le fichier de configuration pour un hôte
Windows (Source : Hyppolyte N'GUESSAN)
III.3.1.2.4. La configuration du SSH
Il va falloir configurer nos deux hôtes pour que le
serveur puisse établir une connexion sur le poste à sauvegarder
en SSH mais sans être embêté par la demande de mot de passe.
Pour cela nous allons utiliser l'utilisateur 'backuppc'
(car c'est lui qui instancie la connexion au serveur distant),
puis créer une clef RSA, que nous copierons dans le répertoire
'authorized_keys' de l'utilisateur de la machine
à sauvegarder. Ainsi notre utilisateur 'backuppc' pourra se logger sur
le serveur distant sans mot de passe. Pour réaliser cela, nous utilisons
les commandes suivantes :
su backuppc ssh-keygen -t rsa
Il convient ensuite de copier la clé ainsi
créée sur chaque hôte cible, dans le fichier
~/.ssh/authorized_keys de l'utilisateur
possédant les droits de lecture des répertoires à
sauvegarder. Pour cela, nous utilisons la commande :
ssh-copy-id -i .ssh/id_rsa.pub
utilisateur@dgttc
Pour vérifier simplement que la
précédente manipulation a fonctionné, nous nous connectons
à l'hôte distant. Il ne nous sera pas demandé de mot de
passe.