Configuration BackupPC

De Cliss XXI
Sauter à la navigation Sauter à la recherche

Cette page décrit une procédure de configuration simple de backupPC, où les machines à sauvegarder le sont par rsync+ssh. Le serveur est sous debian, et les machines à sauvegarder sous GNU/Linux, mais à quelques adjustement près, les informations données peuvent s'appliquer à tous type de système.

Installation de backupPC sur le serveur de sauvegarde

Installation et configuration de base de backuppc

On commence à installer backupPC sur le serveur. Sous debian, il s'agit d'installer le paquet backuppc:

aptitude install backuppc

Lors de l'installation du paquet debian, le système propose la configuration de l'accès à l'interface dans le serveur web installé, et crée un utilisateur backuppc avec un mot de passe aléatoire qui est fourni et que vous devez notez. Le mot de passe peut ensuite être changé à l'aide de la commande:

htpasswd /etc/backuppc/htpasswd backuppc

Si on souhaite effectuer des sauvegardes via rsync, comme c'est notre cas, il faut également installer le paquet libfile-rsyncp-perl qui fournit le module perl File::RsyncP permettant l'utilisation de rsync. Si votre système n'installe pas systématiquement les paquets recommandés, vous devrez le faire manuellement:

aptitude install libfile-rsyncp-perl

Pour avoir l'interface en français, modifiez la directive Language dans /etc/backuppc/config.pl pour obtenir ceci (je n'ai pas trouvé comment le faire dans l'interface web, bien que ça doit être possible):

$Conf{Language} = 'fr';

Recharger ensuite la configuration:

/etc/init.d/backuppc reload

Création d'une configuration par défaut via l'interface web

Si les sauvegardes de toutes les machines ou presque sont effectuées de la même façon, il est possible (et recommandé) de définir la configuration qui sera utilisée par défaut pour les sauvegardes.

Pour cela, accéder à l'interface web via l'adresse du type http://machine.domaine.tld/backuppc (machine.domaine.tld était un nom de votre serveur) en vous authentifiant via l'utilisateur backuppc créé lors de l'installation du paquet debian.

Une fois dans l'interface web:

  • dans le menu « Serveur » du cadre de gauche, cliquer sur le lien « Modifier la configuration »,
  • dans la page qui s'affiche, cliquer sur le lien « Xfer »
  • choisir la méthode de transfert (« rsync » dans notre cas)
  • définir les répertoires à exclure de la sauvegarde. Pour cela, dans la section « Inclure/Exclure », modifier la définition de BackupFilesExclude en ajoutant une clé « * » (cette clef correspond à des partages lors de sauvegardes par samba, et n'est pas utilisée avec rsync, mais semble incoutournable dans l'interface), puis dans cette clef, utiliser le bouton « Ajouter » et saisir les répertoires suivants (l'utilisation de /rep/* au lieu de /rep permet de conserver un répertoire /rep vide dans la sauvegarde, ce qui peut être utile en cas de restauration):
    • /dev/*
    • /proc/*
    • /sys/*
    • /tmp/*
    • /mnt/*
    • /media/*

Ne pas oublier de sauvegarder les modifications en cliquant sur le bouton Sauvegarder devenu rouge en haut de la page.

Création d'une clef ssh dédiée

Comme nous voulons effectuer les sauvegardes via rsync+ssh, nous créons une clef ssh dédiée à BackupPC qui permettra de s'authentifier sur les machines à sauvegarder. Cette clef est assez sensible puisqu'elle donne un accès root à plusieurs machines, et n'est pas protégée par une passphrase (bien que l'accès distant soit limité en lecture seule -- voir les instructions de configuration d'une machine à sauvegarder --, et que les données déjà sauvegardées soit de toutes façons accessibles sur le serveur). N'utilisez cette méthode que si vous êtes suffisamment sûr de votre serveur, et que le risque vous paraît acceptable.

Sous debian, Backuppc utilise l'utilisateur système « backuppc ». La clef utilisée par défaut sera donc conservée dans le fichier ~backuppc/.ssh/id_rsa (ce qui pourrait être changé par des instructions dans un fichier ~backuppc/.ssh/config). Le répertoire personnel de l'utilisateur backuppc, ~backuppc équivaut sous debian à /var/lib/backuppc. Utiliser la commande echo ~backuppc pour trouver le répertoire utilisé votre système. Utilisez les commandes suivantes pour générer la clef SSH:

mkdir -m 700 /var/lib/backuppc/.ssh
ssh-keygen -N "" -f /var/lib/backuppc/.ssh/id_rsa
chown -R backuppc: /var/lib/backuppc/.ssh

Configuration d'une nouvelle sauvegarde

Si vous souhaitez configurer la sauvegarde d'une nouvelle machine, suivez les étapes ci-dessous.

Autoriser la connexion ssh sur la machine à sauvegarder

Sur la machine à sauvegarder, créez si nécessaire le répertoire /root/.ssh, et ajouter la partie publique de la clef de backuppc dans le fichier authorized_keys, avec un maximum de restrictions (on force ici l'utilisation de la partie serveur de rsync pour limiter à un accès en lecture seule).

mkdir -m 700 /root/.ssh
cat >> /root/.ssh/authorized_keys <<<"no-port-forwarding,no-x11-forwarding,no-agent-forwarding,no-pty,command="nice -n 19 rsync --server --sender ${SSH_ORIGINAL_COMMAND#*rsync}" ssh-rsa AAAAB...yp7QmN backuppc@serveur"

(les caractères de la clef publique ont été supprimés par souci de brièveté).

Contraintes:

  • Sécurité: on impose la commande dans la clef ssh:
    command=""
  • Sobriété: on impose une priorité de processus:
    command="nice -n 19"
  • Efficacité: ajuster les ressources systèmes consommée par backuppc sans pour autant allonger le temps de sauvegarde au delà du raisonnable.

Pour plus de détail voir ci après: limitation de ressources

Si vous ne souhaitez pas autoriser les accès directs en root, il est possible de varier la configuration pour appeler rsync en sudo, comme indiqué dans la FAQ de BackupPC.

Configurer les nouvelles machines via l'interface de backuppc

Se connecter à l'interface web de BackupPC, accessible à une adresse du type http://machine.domaine.tld/backuppc:

  • dans le menu « Serveur » sur le cadre de gauche de la page web, cliquer sur « Mofifier les machines »
  • sur la page qui s'affiche, cliquer sur le bouton « Ajouter »
  • renseigner la case « host ». Les cases « user » et « moreUsers » définit lesutilisateurs qui auront accès aux sauvegardes de la machine et recevront les messages d'alerte par email en cas d'erreur de sauvegarde. On utilisera généralement en utilisateur principal « backuppc » dont on fera pointer l'alias vers une adresse email dans /etc/aliases (par défaut le mail est renvoyé vers root, ce qui peut suffire), et en utilisateur additionnel le propriétaire de la machine (dont il faudra créer un utilisateur pour l'accès à l'interface: voir ci-dessous).
  • recharger la page d'admin pour mettre à jour le cadre de gauche, puis choisir dans le menu déroulant « Hôtes » de ce cadre la machine nouvellement ajoutée.
  • si vous utilisez pour cette machine la configuration générale, il n'y a rien à changer dans la configuration de cette machine. Sinon, vous pouvez lui définir une configuration particulière en cliquant sur « Modifier la configuration » dans le menu du cadre de gauche.

Créer l'utilisateur web

Pour permettre aux utilisateurs mentionnés dans les champs « user » ou « moreUsers » d'accéder à leurs sauvegardes, il faut leur créer un login dans le fichier htpasswd utilisé par l'interface web de BackupPC. On pensera également à leur définir un alias dans /etc/aliases qui pointe vers leur adresse email pour leur permettre de recevoir les messages d'alerte envoyés lorsqu'aucune sauvegarde n'a été effectuée pendant un certain temps.

Attention: dans la configuration présentée sur cette page, les fonctions de BackupPC « Restaurer les fichiers sélectionnés » ne fonctionneront pas puisque BackupPC n'a qu'un accès en lecture aux données de l'utilisateur. Pensez à le signaler aux utilisateurs (ou supprimez cette restriction si vous voulez activer cette fonctionnalité et que le risque de sécurité vous paraît acceptable).

Pour créer l'utilisateur de l'interface web, utiliser cette commande (la même commande permet de changer son mot de passe):

# htpasswd /etc/backuppc/htpasswd loginutilisateur
New password: *********
Re-type new password: *********
Adding password for user loginutilisateur

Pour définir l'alias mail, on peut faire quelque chose comme ceci:

echo "loginutilisateur: utilisateur@sondomaine.tld" >> /etc/aliases
newaliases

Effectuer une première connexion SSH manuellement

Important: lors de la première connexion ssh depuis le serveur, il faut que l'utilisateur backuppc accepte l'empreinte de la clef de la machine à sauvegarder. On doit donc effectuer une première connexion SSH manuellement pour accepter cette empreinte (sinon les sauvegardes ne fonctionneront pas). La commande suivante devrait suffire (où machineZ est la machine à sauvegarder):

  sudo -u backuppc ssh root@machineZ

Réponsez « yes » lorsque ssh demandera si vous voulez continuer à vous connecter. Si vous avez forcé l'utilisation de la commande rsync via la clef déposée sur la machine à sauvegarder, cette commande affichera alors l'aide de rsync, puisque nous n'avons pas fourni d'options.

Lancer une première sauvegarde

Lancer éventuellement une sauvegarde complète pour tester le fonctionnement de backuppc en cliquant sur le bouton « Démarrer la sauvegarde complète » et en confirmant. La page de la machine dans backuppc indiquera si la sauvegarde s'est bien déroulée. Si ce n'est pas le cas, suivez le lien « Bilan des derniers transferts échoués (erreurs seulement) » sur le cadre de gauche pour voir les erreurs. Réparez-les et retentez une sauvegarde complète (les logs donnent la ligne de commande utilisée par backuppc, ce qui est pratique pour l'essayer manuellement en cas d'erreur).

Informations complémentaires

Si vous avez besoin d'aller plus loin avec BackupPC, que vous voulez le configurer directement via les fichiers de configuration, ou rechercher une erreur, voici quelques indications supplémentaires qui pourront vous aider:

Sur le serveur, la configuration de backuppc est principalement conservée dans les fichiers suivants:

  • /etc/backuppc/config.pl : c'est la configuration générale utilisée par défaut pour toutes les machines
  • /etc/backuppc/serveur1.pl : dans ce fichier sont redéfinis certains éléments de configuration pour la machine « serveur1 ». Les autres éléments de configuration sont lus dans config.pl.
  • /etc/backuppc/hosts : liste des machines configurées
  • /var/lib/backuppc/pc/ : contient un répertoire par machine configurée où sont conservés les fichiers des logs de sauvegarde, ainsi que les sauvegardes elles-mêmes (dans un sous-répertoire, et sous un format spécial).
  • le fichier /var/lib/backuppc/log/LOG peut également être utile en cas d'erreurs (en cas de partition pleine, par exemple, la sauvegarde d'une machine indique seulement « Backup aborted (Child exited prematurely) »)

Voir aussi