:::: MENU ::::

Installation de backuppc sur Ubuntu

Technologie

Installation de backuppc sur Ubuntu

Backuppc est un logiciel de sauvegarde à distance qui permet à un serveur de récupérer les données de pc distants, qu’ils soient sous Linux, Mac ou Windows.

backuppc

Le tutoriel publié sur le site de Ubuntu francophone explique très bien comment installer et configurer le logiciel. Toutefois, il manque à mon avis un certain nombre d’explications. En plus, la documentation se réfère à la configuration de l’ancienne version du logiciel. En effet, en tout cas à partir de Ubuntu 8.04 Hardy Heron, toute la configuration peut se faire par l’interface web, sans passer par les fichiers de configuration mentionnés dans le tuto.

Dans cet article je vais ajouter quelques astuces, qui permettront de faciliter la mise en oeuvre su système de backups. En particuliers, j’expliquerai:

  1. Comment entreposer les fichiers de backup dans un autre dossier que celui par défaut (/var/lib/backuppc), comme par exemple un disque externe.
  2. Comment configurer les accès aux ordinateurs distants (et au localhost) par ssh et l’utilisateur root.

Sauvegarde du backup sur un disque externe

J’ai acheté un ordinateur équipé d’un contrôleur raid logiciel et j’en profite pour le gain en vitesse de mes disques. Par contre, si par malchance un de mes deux disques casse, je vais perdre toutes mes données. J’ai donc décidé d’acheter un disque dur externe afin d’effectuer des sauvegardes.

Or, backuppc sauvegarde les backups dans /var/lib/backuppc. Au niveau de la configuration, il est possible de changer la variable TopDir pour y mettre autre chose. Toutefois, seul le sous-dossier pc du backup y sera déplacé. Les autres dossiers propres à backuppc (pool, cpool, …) vont rester dans /var/lib/backuppc.

Dans mon cas, le backup de l’ordinateur fonctionnait, mais dans le fichier log, il y avait une infinité de erreurs liées à MakeFileLink et la procédure de backup prenait toujours environ une heure, même dans le cas de backups incrémentaux. Le problème n’est pas mentionné dans la documentation de backuppc et j’ai eu pas mal de peine à comprendre ce qui se passait. Finalement, backuppc n’aime pas créer le pool sur une partition différente de l’endroit de stockage des fichiers.

La solution au problème est simple: créer un lien symbolique entre /var/lib/backuppc et le dossier dédié au backup sur le disque externe. La suite des opérations est la suivante:

  1. On renomme le dossier /var/lib/backuppc pour le récupérer dans la suite, si nécessaire
  2. On crée le dossier sur le disque externe (chez moi monté dans /media/edisk)
  3. On attribue les droits d’accès à l’utilisateur backuppc
  4. On crée un lien symbolique entre /var/lib/backuppc et le nouveau dossier

Dans un terminal:

sudo mv /var/lib/backuppc /var/lib/backuppc_ori

sudo mkdir /media/edisk/backup

sudo chown backuppc:backuppc /media/edisk/backup

sudo ln -s /media/edisk/backup /var/lib/backuppc

Backuppc va à ce point sauvegarder l’entièreté du backup sur le disque externe. La variable TopDir doit être fixée à /var/lib/backuppc pour éviter toute confusion.

Configuration de l’utilisateur root

Backuppc doit pouvoir accéder à tous les fichiers à sauvegarder, sans restrictions. Si on veut par exemple sauvegarder le dossier /etc contenant les paramètres de la machine, un utilisateur ayant des droits limités (comme l’utilisateur par défaut) ne suffit pas. En effet, pour pouvoir effectuer des opérations sur ces fichiers, il est nécessaire d’utiliser la commande sudo et le système demande un mot de passe. La seule solution pour contourner le problème des droits d’accès  est celle de se connecter avec l’utilisateur root (qui est caché dans les distributions Ubuntu et debian en général).

Toutefois, pour des raisons de sécurité, l’utilisateur root est protégé par un mot de passe inconnu à l’utilisateur normal. A moins de vouloir forcer et changer le mot de passe de root, ce qui est vivement déconseillé, la seule solution pour accéder à une machine avec l’utilisateur root est celle de se connecter à travers un tunnel ssh et de s’arranger pour que l’accès s’effectue sans mot de passe. Ceci est possible en échangeant des clés d’accès. Ces concepts sont très bien expliqués sur le site de Ubuntu francophone, dans l’article dedié à ssh. Ici, je vais expliquer comment permettre à l’utilisateur backuppc, qui est l’utilisateur qui effectue les backups et gère le serveur, d’accéder aux autres machines. Le mode d’emploi est générique et peut même être appliqué au backup du serveur. Dans ce cas, il faut bien sûr éviter de sauvegarder le dossier contenant du backup, au risque de voir un cercle sans fin de sauvegardes!

Pour commencer, on va modifier le home de l’utilisateur backuppc. Dans un terminal: 

sudo pico /etc/passwd

Il faur changer /var/lib/backuppc en /media/edisk/backup.

Ensuite, on crée dans un terminal une clé ssh pour l’utilisateur backuppc et on en fait une copie par exemple sur une clé usb (/media/usb chez moi). Laissez les paramètres par défaut et assurez-vous que la clé soit enregistrée dans /media/edisk/backup/.ssh.

sudo su -s /bin/bash backuppc ssh-keygen -t rsa cp ~/.ssh/id_rsa.pub /media/usb/backuppc_id_rsa.pub exit

Maintenant, sur la machine à sauvegarder, il faut s’authentifier en tant que root afin de copier la clé publique de l’utilisateur backuppc dans la liste des accès autorisés:

sudo su -s /bin/bash root cat /media/usb/backuppc_id_rsa.pub >> ~/.ssh/authorized_keys2 exit 

De retour sur le serveur, on essaye de connecter backuppc en root sur la machine à sauvegarder:

sudo su -s /bin/bash backuppc ssh -l root mamachine whoami

A la première connexion il faudra répondre « oui » pour enregistrer la clé de la machine. Pour la suite, tout s’effectuera en automatique. La commande whoami devrait répondre root. Si c’est le cas, tout a bien marché, sinon il faudra chercher le problème. Un guide alternatif (en anglais) est disponible dans la documentation de backuppc, ici.

La procédure décrite dans ce chapitre est également valable si on veut sauvegarder le serveur. Le tunnel ssh permet d’éviter la saisie du mot de passe root. Seul inconvénient, la surcharge due à l’encryption des données à travers le tunnel ssh. Une alternative est celle de ajouter l’utilisateur backuppc à la liste des sudoers et de l’autoriser à exécuter le protocole de backup (rsync, par exemple), sans utiliser un mot de passe. La procédure est décrite ici, en anglais.

Leave a comment

  • *