Outils pour utilisateurs

Outils du site


rsync

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

rsync [2015/10/06 20:06] (Version actuelle)
Ligne 1: Ligne 1:
 +
 +===== rsync =====
 +
 +==== Sauvegarde d'​aspirine via rsync compressé ====
 +
 +<​code>​
 +[[:​rsync|rsync]]-a -H --compress --progress --stats root@aspirine:/​srv /​media/​backup_aspirine/​
 +</​code>​
 +
 +en 42 heures ...
 +
 +
 +<​code>​
 +Number of files: 2153593
 +Number of files transferred:​ 331881
 +Total file size: 1064410495272 bytes
 +Total transferred file size: 294181546405 bytes
 +Literal data: 294181546405 bytes
 +Matched data: 0 bytes
 +File list size: 73717185
 +File list generation time: 0.001 seconds
 +File list transfer time: 0.000 seconds
 +Total bytes sent: 203463780
 +Total bytes received: 249316161708
 +sent 203463780 bytes  received 249316161708 bytes  1566699.58 bytes/sec
 +total size is 1064410495272 ​ speedup is 4.27
 +</​code>​
 +
 +==== rsync / ssh avec authentification par clé, sans passphrase, et néanmoins sécurisé ====
 +
 +L'​astuce est d'​utiliser le champs **option** du fichier //​authorized_keys//,​ et notamment l'​option //​command//​.
 +
 +Le champ //option// est généralement vide. L'​option commande désigne la commande et/ou le script (ainsi que ses éventuels arguments) qui sera exécuté lors d'une connexion en utilisant cette clé. Une seule commande étant un peu limite, l'​astuce est d'​utiliser un script qui va vérifier si la commande à exécuter via [[:ss|ssh]] est autorisée ou pas. On pourra ainsi facilement mettre en place une "//​liste blanche//"​ des commandes et scripts exécutables sur le serveur. (Attention de ne pas transformer votre serveur en gruyère par cette méthode)
 +
 +=== Mise en oeuvre ===
 +  * Sur le client ,générer la clé (sans passphrase),​ puis la copier sur le serveur:
 +<​code>​
 +ssh-keygen -t dsa -C "clé pour sauvegarde"​ -f ~/​.ssh/​sauvegarde
 +ssh-copy-id -i ~/​.ssh/​sauvegarde root@backup
 +</​code>​
 +  * sur le serveur distant, éditer le fichier //​authorized_keys//​ correspondant au compte utilisé pour la sauvegarde (dans cet exemple //root//) et rajouter l'​option command comme ci-dessous:
 +<​code>​
 +[[:​vim|vim]]~root/​.ssh/​authorized_keys
 +command="/​root/​.ssh/​validate.sh"​ ssh-dss AAAAB3NzaC1kc3MAAACBAJR29GyUzPAGRdaENRENzper49c5yCFRB/​R3CKtKUPLiOt465dLOc9vitl9jPQdR625F/​74tXYe7kdbTyX9ydiLDqcL93mbHzLyDQCP+glEn2FjYcsAB2JIPXwrH8nTeLnSJLfyTBFMI5vPtFi+vTXa2RLrU/​bEZXNCvXNj9ddrVAAAAFQDUGYh33Gb0wYMJLPhluvIMLYrLNQAAAIEAheG+cF0FKrD4/​c8 ...
 +... K/wmjHFM4E= clé pour sauvegarde
 +</​code>​
 +
 +Désormais, l'​utilisation de cette clé pour se connecter au serveur se fera de manière non interactive (pas besoin d'​être devant le clavier) et entraînera l'​exécution du script suivant:
 +<​code>​
 +[[:​vim|vim]]/​root/​.ssh/​validate.sh
 +
 +#! /bin/bash
 +
 +case "​$SSH_ORIGINAL_COMMAND"​ in
 +   ​(rsync\ --server*)
 +      $SSH_ORIGINAL_COMMAND
 +      ;;
 +   (*)
 +      echo "​Rejected"​
 +      ;;
 +esac
 +</​code>​
 +
 +N'​oubliez pas de le rendre exécutable,​ de vérifier les permissions du répertoire .[[:​ss|ssh]] (700) et de son contenu (400 ou 600).
 +
 +L'​utilisation de cette clé pour un accès limité au serveur se fait de la manière suivante:
 +<​code>​
 +[[:​rsync|rsync]]-a -e 'ssh -i ~/​.ssh/​sauvegarde'​ /etc root@backup:/​var/​lib/​backups/​
 +</​code>​
 +
 +Tout autre tentative (par exe <​code>​ssh -i ~/​.ssh/​sauvegarde root@backup rm -fr /​etc</​code>​ sera rejeté par le script de validation.
 +
 +==== Serveur rsync pour windows ====
 +
 +Pour être utilisé par exemple avec [[backuppc]]
 +
 +[[:​rsync|cwrsync]] est pas mal, un peu complexe à mettre en oeuvre:
 +  * installation cwrsync
 +  * récupération rsyncd.conf
 +  * ouverture parefeu
 +  * configurer le service:
 +   * passer en mode automatique
 +   * utiliser un compte local (le compte dédié //​svccwrsync//​ n'a en générale pas suffisamment de permissions pour sauvegarder les données utilisateur)
 +   * ne pas autoriser le compte à interagir avec le bureau (sinon, message en arrière-plan)
 +   * supprimer le compte //​svccwrsync//​
 +   * démarrer le service
 +# vim: set filetype=dokuwiki:​
  
rsync.txt · Dernière modification: 2015/10/06 20:06 (modification externe)