Sauvegarde avec rsync dans un container Truecrypt distant monté par ssh avec sshfs

Le but de ce tutoriel est de monter une sauvegarde distante sur un PC ami qui héberge nos données. Les données hébergées sont chiffrées dans un container Truecrypt. Ce container est visible en local grâce à l’accès à distance par sshfs (système de fichier monté par ssh).

Liens

Chiffrement

Synchronisation

Divers

Situation

Voilà comment je range mes données :

  • /donnee/agile : donnée qui change souvent (programmation, certaines conférence, etc.) et qui ne sont pas privées (je publie mon code)
  • /donnee/dormante : données qui changent très peu et n’ont pas de  caractère « trop » privées (photos, sauvegardes de jeux, etc.)
  • /donnee/jetable : données que je garde mais que je peux perdre (fond d’écran, musique, etc.)
  • /donnee/privee : données privées (suivi de budget, correspondance, généalogie, etc.)
  • /donnee/temporaire : téléchargement en cours, photos en trie, test, etc.

Prérequis

Client  (c’est nous !)

  • openssh-client
  • sshfs
  • truecrypt
  • rsync
  • (gtkrsync)

Serveur (celui qui nous héberge)

  • openssh-server

Préparation à la sauvegarde sur le client

  • créer un répertoire où sera monté le système distant par SSH :
mkdir -p /donnee/sauvegarde/ssh
  • créer un répertoire où sera monté le container TrueCrypt accessible lorsque le serveur sera monté sur /donnee/sauvegarde/ssh
mkdir -p /donnee/sauvegarde/truecrypt
  • créer un certificat particulièrement pour cet accès sans passphrase
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/rangzen/.ssh/id_rsa): /home/rangzen/.ssh/backup
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/rangzen/.ssh/backup.
Your public key has been saved in /home/rangzen/.ssh/backup.pub.
The key fingerprint is:
84:--:--:-a:-n:ic:e-:-f:in:ge:r-:pr:in:t-:--:55 rangzen@myhome

Préparation à la sauvegarde sur le serveur

  • créer un utilisateur avec un home à l’emplacement où le responsable de la machine serveur veut bien vous faire un peu de place
adduser backup-rangzen
  • restreindre l’accès ssh backup-rangzen en éditant /etc/ssh/sshd_config
AllowUsers backup-rangzen
Key Authentification
  • initialiser ssh et ajouter backup.pub dans .ssh_key_authorised
# su backup-rangzen
ssh-keygen
mv /tmp/backup.pub > ~/.ssh/authorized_keys
  • test depuis le client, vous ne devriez pas avoir à fournir de mot de passe et vous retrouver dans le home de backup-rangzen sur le serveur
$ ssh -i /home/rangzen/.ssh/backup.pub backup-rangzen@192.168.0.2

Montage de l’emplacement de sauvegarde par sshfs

  • montage par sshfs sur /donnee/sauvegarde/ssh. /donnee/sauvegarde/ssh doit contenir le home de backup-rangzen.
sshfs -o IdentityFile=/home/rangzen/.ssh/backup backup-rangzen@192.168.0.2: /donnee/sauvegarde/ssh

Préparation de l’emplacement Truecrypt

  • création du container (en gras les réponses utilisateur)
rangzen@myhome:/donnee/sauvegarde/ssh$ truecrypt --text --create
Volume type:
1) Normal
2) Hidden
Select [1]: 1

Enter volume path: backup.tc

Enter volume size (sizeK/size[M]/sizeG): 10G

Encryption algorithm:
1) AES
2) Serpent
3) Twofish
4) AES-Twofish
5) AES-Twofish-Serpent
6) Serpent-AES
7) Serpent-Twofish-AES
8) Twofish-Serpent
Select [1]:(Entrée)

Hash algorithm:
1) RIPEMD-160
2) SHA-512
3) Whirlpool
Select [1]:(Entrée)

Filesystem:
1) FAT
2) None
Select [1]: 2

Enter password:(Votre mot de passe)
Re-enter password:(Encore votre super mot de passe)

Enter keyfile path [none]:(Entrée)

Please type at least 320 randomly chosen characters and then press Enter:(Partie fait du Dance Dance Revolution avec ton clavier)

The TrueCrypt volume has been successfully created.
  • montage du container pour formatage
truecrypt --text --filesystem=none backup.tc
  • formatage en ext2 (trouver le dev dans /dev/mapper/truecryptn)
mkfs.ext2 /dev/mapper/truecrypt1

Fermer truecrypt et sshfs

truecrypt -d
fusermount -u /donnee/sauvegarde/ssh/

Procédure de sauvegarde

  • monter le système
sshfs -o allow_other,IdentityFile=/home/rangzen/.ssh/backup backup-rangzen@192.168.0.2: /donnee/sauvegarde/ssh
  • monter le container
truecrypt --text /donnee/sauvegarde/ssh/backup.tc /donnee/sauvegarde/truecrypt
  • sauvegarde
(gtk)rsync --archive --delete-excluded --compress --stats --progress --verbose --include-from=/donnee/agile/configuration/rsync/pattern /donnee/ /donnee/sauvegarde/truecrypt/
  • tout refermer
truecrypt -d
fusermount -u /donnee/sauvegarde/ssh/

6 réflexions au sujet de « Sauvegarde avec rsync dans un container Truecrypt distant monté par ssh avec sshfs »

  1. Merci beaucoup pour ce tuto, je vais faire ça pour mes backups externalisés. Je ne savais pas trop comment faire jusque là.. C’est chose faite :)

  2. Ça marche bien mais niveau stabilité c’est pas du rsync, un conteneur démonté par une coupure de courant peut être très farceur ou boudeur :)

  3. Ça t’es déjà arrivé ?
    Qu’est ce qui se passerait dans ce cas là ? Corruption et impossibilité de récupérer les données ?

  4. Un paquet de fois mais à cause de la gestion EDF de mon collègue hébergeur …
    Une seule perte de donnée mais ça repart avec du chkdsk et autres. Bien choisir le format du fs ! La plupart des outils ne traitent que le ext2 !
    Jamais de perte de donnée car j’ai tout, au minimum, sauvegardé en double.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *