Debian/Ubuntu: Installation de backuppc serveur et client

Nous allons nous intéresser à la mise en place d’une solution de sauvegarde avec backuppc. Celui-ci sera installé sur un serveur debian/ubuntu, et nous configurerons des clients linux. Rsync sera utilisé pour la synchonisation et ssh comme connection client-serveur.

De plus, la configuration sera donnée avec l’utilisation d’un port non-standard pour le ssh du client (machine à sauvegarder).

Allez, c’est parti !
Premier élément d’importance: s’assurer que les machines « se voient » par leurs noms de machine avec la commande nmblookup -A NomdeMachine et modifiez alors votre fichier /etc/hosts ou votre serveur DNS en conséquence.


Configuration du serveur


On installe le paquet backuppc et rsync:

apt install backuppc rsync

Lors de l’installation, un identifiant backuppc et un mot de passe aléatoire est généré. Notez le car il vous permettra d’accéder à l’interface web de gestion de backuppc.
Si vous avez oublié de noter ou si vous souhaitez modifier le mot de passe généré, lancez la commande suivante:

htpasswd /etc/backuppc/htpasswd backuppc

Donnons maintenant des droits sudo pour backuppc, tapez la commande

visudo -f /etc/sudoers.d/backuppc

et saisissez le texte suivant:

backuppc ALL=NOPASSWD:/bin/gtar,/bin/tar

Lors de l’installation du package, un paramétrage automatique est proposé pour votre serveur web. Je vous conseille de ne pas l’activer par défaut, car si comme moi vous ne souhaitez pas que cela soit disponible directement sur internet mais plutôt en intranet, vous ajouterez simplement la ligne:

Include /etc/backuppc/apache.conf

Ou si vous choisissez d’activer par défaut backuppc:

ln -s /etc/backuppc/apache.conf /etc/apache2/conf-available/backuppc.conf
a2enconf backuppc

et de redémarrer le service apache2

service apache2 restart

Dossier de stockage par défaut de backuppc

Les données sauvegardées sont stockées par défaut dans le dossier /var/lib/backuppc. Si vous souhaitez déplacer ce dossier, deux possibilités s’offrent à vous. Dans tous les cas, déplacez le dossier /var/lib/backuppc à son nouvel emplacement MonNouvelEmplacement:
– lier ce nouvel emplacement avec ln -s /var/lib/backuppc MonNouvelEmplacement
– faire un montage du nouvel emplacement: mkdir /var/lib/backuppc, puis : mount -o bind MonNouvelEmlplacement /var/lib/backuppc et si vous souhaitez rendre tout cela permanent, il ne reste plus qu’à ajouter tout cela à votre /etc/fstab:

MonNouvelEmplacement /var/lib/backuppc none defaults,bind 0 0

Configuration de la liaison ssh sur le serveur

Créez le dossier suivant:

mkdir /var/lib/backuppc/.ssh
chown backuppc:backuppc /var/lib/backuppc/.ssh
chmod 700 /var/lib/backuppc/.ssh
su backuppc

Saisissez la commande:

ssh-keygen -t rsa

Laissez les paramètres par défaut et ne saisissez pas de mot de passe. A la fin vous obtiendrez ceci:

Generating public/private rsa key pair.
Enter file in which to save the key (/var/lib/backuppc/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /var/lib/backuppc/.ssh/id_rsa
Your public key has been saved in /var/lib/backuppc/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:KY3NysyFRL988yvxSlBX4MaMN/cpinz6F58eRfBU344 backuppc@my_server
The key's randomart image is:
+---[RSA 3072]----+
|      .     ..o +|
|     . .   = . +o|
|      . . o O . =|
|     . B + + o =.|
|      + S o  .E.+|
|     + +.ooo... .|
|      =  o.=. o..|
|         .+ .o o.|
|         .o+o .. |
+----[SHA256]-----+

On peut passer maintenant à la configuration du client.


Configuration du client (machine à sauvegarder)


Connectez vous à votre machine distante en ssh, ici pour l’exemple, le port ssh utilisé sera 345 et installez rsync:

ssh -l myuser MY_CLIENT -p 345
sudo su
apt install rsync

On crée maintenant sur le client un nouvel utilisateur, mettez un mot de passe simple, il ne sert que pour la configuration, il sera supprimé par la suite. Ici l’uid doit être inférieur à 1000 en cas d’utilisation sur un client avec interface graphique:

useradd -u 998 backuppc
passwd backuppc
mkdir /home/backuppc
chown backuppc:backuppc /home/backuppc

Ajoutez les droits nécessaires à l’utilisateur backuppc pour exécuter rsync:

visudo -f /etc/sudoers.d/backuppc
backuppc ALL=NOPASSWD: /usr/bin/rsync --server --sender *

Retour sur le serveur !


Maintenant que notre client est configuré, il ne reste plus qu’à automatiser la liaison ssh en fournissant notre clef généré précédemment, tout en étant avec le user backuppc: 

ssh-copy-id -p 345 backuppc@MY_CLIENT

Saisissez le mot de passe sur user créé précédemment, vous devriez obtenir le message suivant:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh -p '345' 'backuppc@MY_CLIENT'"
and check to make sure that only the key(s) you wanted were added.

Cela vous permet de vous connecter en ssh sur le client sans saisir de mot de passe, vous pouvez faire le test pour vous en assurer.

La parie configuration « console » sur le serveur est terminée !


Retour sur le client !


Il ne reste vraiment plus grand chose à faire !
On sécurise l’accès distant pour notre utilisateur backuppc en éditant le fichier  /home/backuppc/.ssh/authorized_keys et en ajoutant le texte suivant devant ssh-rsa

from="MY_SERVER_IP",no-agent-forwarding,no-port-forwarding,no-pty

On peut supprimer le mot de passe saisi précédemment pour le user backuppc

passwd -d backuppc

Modifications dans l’interface web de backuppc:


Il nous reste maintenant à faire quelques ajustements pour que tout fonctionne dans l’interface web de backuppc. Pour cela, dans votre navigateur saisissez l’adresse http://my_server/backuppc, saisissez comme user backuppc et comme mot de passe celui généré lors de l’installation du package ou celui que vous avez généré avec htpasswd. vous arrivez à l’interface suivante:

 

Modifications de la configuration du backup local


Par défaut, un host localhost a été configuré par défaut, et comme vous pouvez le remarquer, il y a une erreur de sauvegarde. Normal, il faut modifier quelques commandes. Pour cela, dans hosts, choisissez localhost, puis edit config, et Xfer. Modifiez les commandes suivantes comme indiquées, il faut ajouter le sudo ! 

 

Ajout du backup du client


Dans la partie server, on choisit edit Hosts. L’interface est alors la suivante:

On clique sur Add, on saisit le nom de la machine cliente, et le user backuppc Puis sur Save.

Cliquez ensuite sur Host Summary, et choisissez maintenant le nom du host client dans la liste déroulante. On clique sur Edit Config du client puis su Xfer. Par défaut la méthode de backup est smb, on choisit bien évidemment rsync. On change également les data à sauvegarder par défaut, ici on choisit /etc pour tester la configuration:

Mais les parties les plus importantes sont RsyncClientPath et RsyncSshArgscar c’est à cet endroit que l’on va modifier le user que l’on a créé pour se connecter en ssh sans mot de passe à notre client et aussi le port ssh utilisé, le tout sous sudo. On saisit alors les modifications suivantes 

sudo /usr/bin/rsync
$sshPath -l backuppc -p 345

Par sécurité, on va modifier dans la section Backup Settings le ClientNameAlias en ajoutant l’adresse IP du client:

Voilà ! Tout est configuré. Il ne vous reste plus qu’à lancer un premier backup et voir si tout va bien.

Vous n’aurez plus qu’à peaufiner les datas à sauvegarder et les tranches horaires à votre convenance. Bonne config !