Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
utilisateurs:ool:brouillon [Le 03/10/2012, 14:19] 0ol |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ===== Sauvegarder un poste Linux distant via rsync (ssh) ===== | ||
- | La sauvegarde se faisant au travers de [[:ssh]], il faut [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>openssh-server|openssh-server]]** sur le poste à sauvegarder. | ||
- | |||
- | De plus, il est nécessaire que l'utilisateur Backuppc puisse se connecter en SSH sur les postes clients.\\ | ||
- | Pour se faire, vous pouvez utiliser la méthode standard que vous trouverez [[http://backuppc.sourceforge.net/faq/ssh.html|ici]] qui utilise le compte [[:root]] désactivé par défaut sur Ubuntu.\\ | ||
- | Cependant, la méthode suivante, utilisable pour toute distribution ayant [[:sudo|sudo]], qui vous permettra de ne pas avoir besoin d'activer le compte root ni de lui autoriser des connexions via [[:SSH]]. | ||
- | |||
- | <note> | ||
- | Si vous avez plusieurs clients vous pouvez utiliser le très pratique [[:cssh]] | ||
- | </note> | ||
- | |||
- | ==== Méthode standard ==== | ||
- | Plus simple à mettre en place. | ||
- | |||
- | {{:image:backuppc:backuppc-rsync-root.png?nolink&400|}} | ||
- | |||
- | === Manipulations sur le serveur de sauvegarde.=== | ||
- | * Passer en utilisateur "backuppc" <code>sudo -i -u backuppc</code> | ||
- | * Mettez en place un système de [[:ssh#authentification_par_un_systeme_de_cles_publiqueprivee|clé publique/clé privée]] à savoir: | ||
- | * Générer le couple clef publique et clef privée sans mettre de mot de passe <code>ssh-keygen -t rsa -b 2048</code> | ||
- | * Vérifier que la clé est bien générée <code>cat ~/.ssh/id_rsa.pub</code> | ||
- | * et que ses droits sont corrects <code>ls -la ~/.ssh/</code><code>drwxr-xr-x 2 backuppc backuppc 4096 2011-07-17 17:19 . | ||
- | drwxr-x--- 8 backuppc backuppc 4096 2011-07-21 13:57 .. | ||
- | -rw------- 1 backuppc backuppc 1671 2011-07-17 17:10 id_rsa | ||
- | -rw-r--r-- 1 backuppc backuppc 397 2011-07-17 17:10 id_rsa.pub | ||
- | -rw-r--r-- 1 backuppc backuppc 4862 2011-07-17 19:58 known_hosts</code> Si les [[:droits]] ne sont pas corrects, utiliser la commande **chmod** pour [[:permissions#en_ligne_de_commande|modifier les permissions]] | ||
- | |||
- | |||
- | === Manipulations sur les postes clients.=== | ||
- | == Placer la clef publique== | ||
- | * Créer le répertoire **/root/.ssh** si il n'existe pas encore. | ||
- | sudo mkdir /root/.ssh | ||
- | * [[:tutoriel:comment_modifier_un_fichier|Editer le fichier]] **/root/.ssh/authorized_keys** avec les droits d'administration <code> sudo vim /var/backups/.ssh/authorized_keys </code> | ||
- | * Ajouter dans le fichier, la clef publique de l'utilisateur "backuppc" [[#Manipulations sur le serveur de sauvegarde|précédemment générée]] ((donc visible dans le fichier **id_rsa.pub** du [[:fichier_caché|répertoire caché]] **.ssh** dans le __Dossier Personnel du **serveur** de backup__)). //(Vous pouvez par exemple éditer les deux fichiers et faire un simple copier/coller.)// | ||
- | * Pour plus de sécurité, rajouter au début du fichier la directive <file>from="serveur"</file> | ||
- | * Vous devriez désormais avoir: | ||
- | * Sous le compte root | ||
- | <code> | ||
- | sudo -i | ||
- | cat ~/.ssh/authorized_keys | ||
- | from="serveur" ssh-rsa AAAAB3N123456789xyz.......== backuppc@serveur | ||
- | </code> | ||
- | |||
- | == Configuration de sshd== | ||
- | [[:tutoriel:comment_modifier_un_fichier|Modifier avec les droits d'administration]] le fichier **/etc/ssh/sshd_config** | ||
- | <file bash **/etc/ssh/sshd_config**> | ||
- | PermitRootLogin without-password | ||
- | </file> | ||
- | Avec cette directive les connexions SSH de **root** ne seront pas possible avec un mot de passe (qui par défaut n'est pas utilisé sous Ubuntu) | ||
- | |||
- | Seul les connexions utilisant une authentification par clef seront possible, et uniquement de l'adresse du serveur si la directive ''from='' est utilisée dans le fichier ** authorized_keys**. | ||
- | |||
- | Il sera donc possible de paramétrer indépendamment les possibilités d'authentification via SSH des autres utilisateurs. Il ne faudra cependant pas oublier d'ajouter **root** en cas d'usage des directives ''AllowUsers'' ou ''AllowGroups''. | ||
- | |||
- | === Test de connexion SSH=== | ||
- | Depuis le __serveur__ de sauvegarde, tenter une première connexion ssh vers le poste à sauvegarder pour l'utilisateur "backuppc". | ||
- | <code> | ||
- | sudo -i -u backuppc | ||
- | ssh root@client</code> | ||
- | Répondre "yes", ce qui ajoutera votre client à la liste des //known hosts//((hôtes connus)). | ||
- | |||
- | ==== Méthode avec sudo ==== | ||
- | |||
- | {{:image:backuppc_rsync.png?400nolink|}} | ||
- | |||
- | === Manipulations sur le serveur de sauvegarde=== | ||
- | Cette partie est commune à la [[#Manipulations_sur_le_serveur_de_sauvegarde.|méthode standard]] | ||
- | === Manipulations sur les postes clients=== | ||
- | Nous allons utiliser le compte "backup". Ce compte est pré-existant sous Ubuntu selon la norme [[wpfr>Filesystem_Hierarchy_Standard|FHS ]]. Comme on peut le voir dans ** /etc/passwd **, le répertoire personnel de cet "utilisateur" est /var/backups. | ||
- | |||
- | |||
- | == Placer la clef publique.== | ||
- | Pour chacun des clients: | ||
- | * Créer le répertoire **.ssh** dans le Dossier Personnel <code>sudo mkdir /var/backups/.ssh</code> | ||
- | * [[:tutoriel:comment_modifier_un_fichier|Editer le fichier]] **/var/backups/.ssh/authorized_keys** avec les droits d'administration <code> sudo vim /var/backups/.ssh/authorized_keys </code> | ||
- | * Ajouter dans le fichier, la clef publique de l'utilisateur "backuppc" [[#Manipulations sur le serveur de sauvegarde|précédemment générée]] ((donc visible dans le fichier **id_rsa.pub** du [[:fichier_caché|répertoire caché]] **.ssh** dans le __Dossier Personnel du **serveur**__)). //(Vous pouvez par exemple éditer les deux fichiers et faire un simple copier/coller.)// | ||
- | * Pour plus de sécurité, rajouter au début du fichier la directive <file>from="serveur"</file> | ||
- | * Vous devriez désormais avoir: | ||
- | * Sous le compte backup | ||
- | <code> | ||
- | sudo -i -u backup | ||
- | cat ~/.ssh/authorized_keys | ||
- | from="serveur" ssh-rsa AAAAB3N123456789xyz.......== backuppc@<serveur> | ||
- | </code> | ||
- | |||
- | == Configuration de sshd.== | ||
- | |||
- | [[:tutoriel:comment_modifier_un_fichier|Modifier avec les droits d'administration]] le fichier **/etc/ssh/sshd_config** pour indiquer qu'il n'y pas besoin d'autoriser root, ni des connexions par mot de passe pour vos sauvegardes. | ||
- | <file bash /etc/ssh/sshd_config> | ||
- | PermitRootLogin no | ||
- | </file> | ||
- | |||
- | == Configuration de sudo.== | ||
- | |||
- | À l'aide de [[:sudoers|visudo]] mettez dans le fichier sudoers : | ||
- | <file bash> | ||
- | backup ALL=NOPASSWD: /usr/bin/rsync | ||
- | </file> | ||
- | |||
- | |||
- | Ceci donnera à l'utilisateur "backup" le droit [[:sudo]] pour lancer [[:rsync]] sans demande de mot de passe. | ||
- | |||
- | Pour pouvoir mener à bien cette opération, il faut revenir à un utilisateur qui ait les droits sudo, en fait à l'utilisateur que vous étiez avant de passer à l'utilisateur backup. | ||
- | Pour cela : | ||
- | <code>exit</code> | ||
- | puis simplement : | ||
- | <code>sudo visudo</code> | ||
- | |||
- | |||
- | === Test de connexion SSH=== | ||
- | |||
- | Depuis le __serveur__ de sauvegarde, tenter une première connexion ssh vers le poste à sauvegarder pour l'utilisateur "backuppc". | ||
- | <code> | ||
- | sudo -i -u backuppc | ||
- | ssh backup@<client></code> | ||
- | Répondre "yes", ce qui ajoutera votre client à la liste des //known hosts//((hôtes connus)). | ||
- | |||
- | <note> | ||
- | En cas d'erreur SSH vous pouvez rendre la commande plus volubile avec l'option -v de **ssh**. | ||
- | Regarder aussi ** /var/log/syslog ** sur le poste à sauvegarder. | ||
- | Dans tous les cas jeter un œil sur la page consacrée à [[:ssh]]. | ||
- | En cas de blocage suite à la réinstallation du poste à sauvegarder, la partie traitant de la [[:ssh#Gestion_des_clés|gestion des clefs]] vous sera sûrement d'une grande aide. | ||
- | </note> | ||
- | |||
- | === Paramétrer l'usage de ce compte par backuppc === | ||
- | |||
- | == Par l'interface Web== | ||
- | //onglet **Xfert** -> pour **rsync** -> chapitre **Chemins/Commandes/Args Rsync** // indiquer pour: | ||
- | * ** RsyncClientCmd ** <file>$sshPath -q -x -l backup $hostIP /usr/bin/sudo $rsyncPath $argList+</file> | ||
- | * ** RsyncClientRestoreCmd ** <file>$sshPath -q -x -l backup $hostIP /usr/bin/sudo $rsyncPath $argList+ </file> | ||
- | |||
- | == Depuis le fichier « /etc/backuppc/config.pl » == | ||
- | [[:tutoriel:comment_modifier_un_fichier|Modifier avec les droits d'administration]] le fichier ** /etc/backuppc/config.pl/** comme suit : | ||
- | <file perl /etc/backuppc/config.pl> | ||
- | # $Conf{RsyncClientCmd} = '$sshPath -q -x -l root $hostIP $rsyncPath $argList+'; | ||
- | $Conf{RsyncClientCmd} = '$sshPath -q -x -l backup $hostIP /usr/bin/sudo $rsyncPath $argList+'; | ||
- | # $Conf{RsyncClientRestoreCmd} = '$sshPath -q -x -l root $hostIP $rsyncPath $argList+'; | ||
- | $Conf{RsyncClientRestoreCmd} = '$sshPath -q -x -l backup $hostIP /usr/bin/sudo $rsyncPath $argList+'; | ||
- | </file> | ||
- | |||
- | ---- | ||
- | [[:utilisateurs:Ool]] |