Outils pour utilisateurs

Outils du site


rsync

rsync

Sauvegarde d'aspirine via rsync compressé

[[:rsync|rsync]]-a -H --compress --progress --stats root@aspirine:/srv /media/backup_aspirine/

en 42 heures …

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

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 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:
ssh-keygen -t dsa -C "clé pour sauvegarde" -f ~/.ssh/sauvegarde
ssh-copy-id -i ~/.ssh/sauvegarde root@backup
  • 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:
[[: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

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:

[[:vim|vim]]/root/.ssh/validate.sh

#! /bin/bash

case "$SSH_ORIGINAL_COMMAND" in
   (rsync\ --server*)
      $SSH_ORIGINAL_COMMAND
      ;;
   (*)
      echo "Rejected"
      ;;
esac

N'oubliez pas de le rendre exécutable, de vérifier les permissions du répertoire .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:

[[:rsync|rsync]]-a -e 'ssh -i ~/.ssh/sauvegarde' /etc root@backup:/var/lib/backups/

Tout autre tentative (par exe

ssh -i ~/.ssh/sauvegarde root@backup rm -fr /etc

sera rejeté par le script de validation.

Serveur rsync pour windows

Pour être utilisé par exemple avec backuppc

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)