05
09
2008
Sauvegarde avec rsync dans un container Truecrypt distant monté par ssh avec sshfs
Posted by rangzen in tutoriel, tags: backup, rsync, sauvegarde, ssh, sshfsLe 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
- truecrypt : http://www.truecrypt.org
- ssh : http://www.openssh.org
- sshfs : http://fuse.sourceforge.net/sshfs.html
Synchronisation
- rsync : http://rsync.samba.org
- rdiff-backup : http://www.nongnu.org/rdiff-backup/
- unison : http://fuse.sourceforge.net/sshfs.html
Divers
- forum ubuntu-fr où j’ai mis quelques pistes http://forum.ubuntu-fr.org/viewtopic.php?id=205984
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/
Entries (RSS)