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 RsyncSshArgs
car 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 !