Dans la
suite des tutoriels sur backuppc, voici le billet sur le paramétrage d’un client sous linux et plus précisément uniquement pour le dossier home de l’utilisateur. Car en effet un simple utilisateur n’aura pas les droits nécessaires pour faire des sauvegardes et des restaurations dans des dossiers comme /boot, /var, etc. On va donc commencer par voir le principe de fonctionnement de backuppc pour se connecter à votre ordinateur client. En fait c’est très simple il s’agit d’une connexion via ssh en utilisant une paire de clé qui permettra de s’affranchir de rentrer un login et un mot de passe au serveur backuppc, et donc que tout puisse être automatiser. Si vous désirez en savoir plus sur ssh, j’avais fais précédemment deux articles sur le sujet, allez voir
cette page.
Pour illustrer le tutoriel je vais prendre l’exemple suivant :
Sur backuppc serveur :
- Code: Tout sélectionner
adresse ip : 192.168.0.20
compte utilisateur : nierdz
Sur backuppc client :
- Code: Tout sélectionner
adresse ip : 192.168.0.30
compte utilisateur : bobby
dossiers à sauvegarder :
/home/bobby/temp1 et /home/bobby/temp2On va donc commencer par la création des clés coté serveur pour l’utilisateur backuppc, car c’est lui qui devra pouvoir se connecter automatiquement a votre client.
Sur le serveur :
passage en root :
- Code: Tout sélectionner
$ su
ou pour les ubunteros
- Code: Tout sélectionner
$ sudo su
puis on passe sur l’utilisateur backuppc :
- Code: Tout sélectionner
# su backuppc
ensuite on genère les clés :
- Code: Tout sélectionner
$ ssh-keygen -t rsa
Vous tapez sur la touche entré pour chaque question et ne rentrez surtout pas de passphrase. Si tous c’est bien déroulé vous devriez avoir vos clés dans
/var/lib/backuppc/.sshOn va ensuite copié la clé publique dans un dossier qui sera accessible depuis le pc client. Pour cela vous devez donc avoir un utilisateur sur votre serveur sur lequel on pourra accéder via ssh depuis le client. Pour l’exemple on va dire que l’utilisateur sur le serveur se nomme nierdz. On va donc coller la clé publique dans son dossier home pour pouvoir y avoir accès via le pc client en ssh. (vous suivez?

)
Mais pour pouvoir coller la clé dans le dossier de notre ami nierdz il faut être root car backuppc n’a pas les droits en écriture dans le dossier /home/nierdz. On repasse donc en root :
- Code: Tout sélectionner
$ su
ou pour les ubuntu users
- Code: Tout sélectionner
$ sudo su
Puis on copie la clé :
- Code: Tout sélectionner
# cp /var/lib/backuppc/.ssh/id_rsa.pub /home/nierdz
Et pour finir on va donner les droits à nierdz sur cette clé :
- Code: Tout sélectionner
# chmod 777 /home/nierdz/id_rsa.pub
Ensuite on va passer sur le pc client pour récupérer la clé publique. Mais avant tout il faut bien penser à être loguer avec le compte utilisateur qui correspond au dossier que l’on veut sauvegarder. Dans notre exemple on va dire que le dossier en question est
/home/bobby et que l’utilisateur est donc bobby. Et il faut également penser à installer ssh (client et serveur) (le client sert durant l’installation et le serveur sert pour backuppc) :
- Code: Tout sélectionner
$ su
ou pour les ubunteros toujours :
- Code: Tout sélectionner
$ sudo su
et on installe ssh :
- Code: Tout sélectionner
# apt-get install ssh
Ensuite se logue sur bobby :
- Code: Tout sélectionner
# su bobby
et on se met dans son dossier tant qu’a faire :
- Code: Tout sélectionner
$ cd ~
Et on va chercher la clé que l’on a copié sur le dossier home sur le serveur :
- Code: Tout sélectionner
$ scp nierdz@192.168.0.20:/home/nierdz/id_rsa.pub .
Attention il ne faut surtout pas oublier le point à la fin de la ligne de commande qui est précédé d’un espace. Le serveur est à remplacer par l’adresse ip du serveur. Et si vous ne vous êtes jamais connecté sur le serveur en ssh il va vous être demander de taper yes (ou oui selon la localisation de votre OS) pour authentifier le serveur. Puis vous devez simplement entrer le password de nierdz (votre utilisateur sur le serveur) pour télécharger la clé publique.
Ensuite on va copier la clé dans authorized_keys pour que la connexion de backuppc soit automatisée.
- Code: Tout sélectionner
$ cat id_rsa.pub >> ~/.ssh/authorized_keys
Ensuite on va aller sur le serveur pour effectuer une première connexion afin de ne pas avoir à remplir le fichier
/etc/backuppc/.ssh/know_hosts à la main. Laissons debian le faire pour nous. Pour cela il faut effectuer un première connexion avec l’utilisateur backuppc sur le pc client et accepter d’authentifier le serveur ssh (dans notre cas il s’agit donc du client backuppc, et oui c’est tordu

).
Sur le serveur on commence par passer en root :
- Code: Tout sélectionner
$ su
ou toujours pour les mêmes

:
- Code: Tout sélectionner
$ sudo su
Puis on se connecte avec backuppc :
- Code: Tout sélectionner
# su backuppc
Et là une étape primordiale car si cela ne fonctionne pas il est inutile d’aller plus loin, c’est que vous avez déconné quelques part…
- Code: Tout sélectionner
$ ssh bobby@192.168.0.30
Il faut remplacer 192.168.0.30 par l’adresse ip du pc client backuppc et bobby par le compte utilisateur du pc client. Et tapez yes ou oui pour authentifier le serveur.
Il ne vous reste plus qu’a créer un fichier de config du nom de votre host client que vous placerez dans le dossier /etc/backuppc.
Voici un exemple de fichier de configuration :
- Code: Tout sélectionner
$Conf{XferMethod} = 'rsync';
$Conf{RsyncShareName} = [
'/home/nierdz/temp1',
'/home/nierdz/temp2'
];
On appellera ce fichier du nom du hostname du client. Par exemple si le client a un hostname qui est linuxhost vous devrez appeler ce fichier linuxhost.pl
Si vous ne savez pas quel est le hostname de votre pc client essayer la commande « hostname » dans un terminal, tout simplement.
Ensuite toujours sur le serveur on va éditer le fichier
/etc/backuppc/hosts pour y ajouter notre nouveau client.
- Code: Tout sélectionner
# nano /etc/backuppc/hosts
à la fin du fichier on ajoute
- Code: Tout sélectionner
linuxhost 0 backuppc,bobby
Petite explication :
- linuxhost correspond au hostname de votre pc client
- 0 signifie qu’il a une adresse fixe (que l’on déclarera par la suite dans le fichier /etc/hosts du serveur)
- backuppc signifie que l’utilisateur backuppc peut effectuer des opérations sur linuxhost via l’interface web de backuppc
- bobby est l’utilisateur à qui vous donnez les droits de faire des sauvegardes et restaurations sur le client linuxhost. Il est à noter qu’il n’y a aucun rapport avec le nom de l’user sur le client. On aurait très bien pu utiliser bob au lieu de bobby. Mais à ce moment il aurait fallu se connecter en tant que bob sur l’interface web de backuppc. (j’espère que vous suivez toujours

)
On va d’ailleurs créer le user bobby sur le serveur si ce n’est pas déjà fait (car si vous avez suivi un minimum vous auriez déjà du faire cette manipulation durant l’installation de backuppc sur le serveur).
Création de bobby pour backuppc :
- Code: Tout sélectionner
# htpasswd /etc/backuppc/htpasswd bobby
Ensuite on va indiquer l’adresse ip de notre client backuppc dans /etc/hosts
- Code: Tout sélectionner
# nano /etc/hosts
et on ajoute en fin de fichier
- Code: Tout sélectionner
192.168.0.30 linuxhost
Ensuite on relance backuppc :
- Code: Tout sélectionner
/etc/init.d.backuppc restart
Étant donné que backuppc doit se connecter avec un compte utilisateur on va devoir lui spécifier dans l’interface. Rendez vous donc sur
http://192.168.0.20/backuppc. Puis Sélectionner votre client>Modifier la configuration>Xfer. Et là vous allez changer les valeurs de RsyncClientCmd et RsyncClientRestoreCmd. Remplacez tous simplement root par le nom du compte de votre client. Dans mon exemple je remplace donc root par bobby dans les deux valeurs.
Il ne vous reste plus qu’a relancer votre serveur backuppc :
- Code: Tout sélectionner
/etc/init.d/backuppc restart
Et vous pouvez faire un test pour voir si tout fonctionne. Si vous rencontrez des difficultés ou que vous voulez corriger ou compléter mon billet, n’hésitez pas à laisser un commentaire.