Bonjour à tous,
Je vous propose un micro-tutoriel pour partager la solution de sauvegarde froide que j'ai mise en œuvre sur une clé USB.
Quelques petits rappels :
Faire une sauvegarde sur clé USB, rien de plus facile, un petit coup de
J'ai installé le paquet
Lorsque l'initialisation du cryptage a été réalisée, elle a créé deux fichiers sur la clé :
Quelques explications :
La première ligne est le "shebang", qui indique que mon script est écrit en bash.
La seconde monte ma clé sur
La troisième crée un répertoire (
C'est ce que je vais faire avec la quatrième ligne :
Lorsque cette copie est terminée, je démonte la version cryptée de ma clé avec la commande
J'ai désormais l'ensemble de mes données dans la poche, sous une forme sécurisée par un mot de passe de 32 caractères que je ne connais pas moi-même.
Pour retrouver un accès à mes données, je vais procéder sur n'importe quel ordinateur Linux disposant du paquet gocryptfs aux manipulations suivantes :
Je vais copier le fichier gocryptfs.conf sur /home/eric/sauvegarde (vous pouvez le remplacer par le répertoire de votre choix)
A l'invite de commande, je vais coller le mot de passe. A partir de ce moment-là, j'aurai accès à l'ensemble de mes données sur /srv/copie-ext.
Dans l'éventualité où j'aurais perdu l'accès à mon fichier gocryptfs.conf, je pourrais remplacer la dernière commande par
gocryptfs -masterkey=<clé> /mnt /srv/copie-ext, où <clé> sera la clé de type 12345678-90abcdef-12345678-90abcdef-12345678-90abcdef-12345678-90abcdef que nous avions mis au réfrigérateur plus haut. De la même manière, je pourrai naviguer dans mes données sur /srv/copie-ext.
Je vous propose un micro-tutoriel pour partager la solution de sauvegarde froide que j'ai mise en œuvre sur une clé USB.
Quelques petits rappels :
- cette sauvegarde vient s'inscrire et "couronner" une stratégie de sauvegarde préexistante consistant à sauvegarder
- les données (images, contenu, ...),
- les bases de données (avec les aspects spécifiques liés aux sauvegardes de bases de données, qui font l'objet de processus dédiés liés à chaque base),
- les traitements (souvent des fichiers docker-compose, des environnements et des configurations, ...),
- et éventuellement le système associé,
- elle constitue l'ultime étape permettant d'avoir une copie de ses données hors site et hors de tout réseau.
Faire une sauvegarde sur clé USB, rien de plus facile, un petit coup de
rsync
et c'est plié. Sauf que s'agissant d'un support qui a une probabilité non-négligeable d'être perdu ou volé, on ne va peut-être pas laisser traîner ses données en clair. Donc tout l'intérêt de ce tutoriel, c'est de partager la méthode qui permet de crypter les données. Donc voici la démarche que j'ai mise en oeuvre :J'ai installé le paquet
gocryptfs
, qui va permettre d'encrypter la clé. J'ai monté ma clé sur /mnt
puis j'ai initialisé le cryptage : sudo gocryptfs -init -xchacha /mnt
. J'ai utilisé un mot de passe de 32 caractères qui j'ai mis bien au chaud dans Vaultwarden et que j'ai copié dans le répertoire où je garde tous mes scripts de backup : /home/eric/sauvegarde/.pass
. Je l'ai laissé en clair car de toute façon si quelqu'un arrive à y avoir accès, il a aussi accès à tout mon système.Lorsque l'initialisation du cryptage a été réalisée, elle a créé deux fichiers sur la clé :
gocryptfs.diriv
et gocryptfs.conf
. La première ne m'intéresse pas outre mesure, mais la deuxième comporte la configuration du cryptage et notamment une version cryptée de la clé de cryptage. Donc j'ai déplacé ce fichier de la clé vers le répertoire des sauvegardes : sudo mv /mnt/gocryptfs.conf /home/eric/sauvegarde
. Ceci étant fait, j'étais fin prêt à la première sauvegarde sur ma clé. J'ai créé le script suivant :
Code:
#!/bin/bash
mount -U <UUID> /mnt
mkdir /srv/copie-ext
gocryptfs -config /home/eric/sauvegarde/gocryptfs.conf -passfile /home/eric/sauvegarde/.pass /mnt /srv/copie-ext
rsync -artucv --delete-during --progress /srv/hdd/nas /srv/copie-ext
fusermount -u /srv/copie-ext
rm -r /srv/copie-ext
umount /mnt
La première ligne est le "shebang", qui indique que mon script est écrit en bash.
La seconde monte ma clé sur
/mnt
. J'ai récupéré l'UUID de la clé par un blkid
.La troisième crée un répertoire (
/media/copie-ext
) où je vais déposer les données pour qu'elles soient cryptées. En effet, l'outil gocryptfs
permet d'avoir sur /mnt
la vision des données cryptées et sur /media/copie-ext
la vision en clair des données.C'est ce que je vais faire avec la quatrième ligne :
-config /home/eric/sauvegarde/gocryptfs.conf
: j'indique àgocryptfs
où est le fichier de configuration de la clé, celui qui avait été créé sur la clé et que j'avais déplacé,-passfile /home/eric/sauvegarde/.pass
: j'indique le chemin d'accès au mot de passe,/mnt /srv/copie-ext
: j'indique que c'est la clé montée en/mnt
qui doit recevoir du contenu crypté sur/srv/copie-ext
.
rsync
classique, qui va déposer une copie incrémentale des données sources (/srv/hdd/nas
) sur ma clé cryptée (/srv/copie-ext
).Lorsque cette copie est terminée, je démonte la version cryptée de ma clé avec la commande
fusermount
. A ce stade, le répertoire /srv/copie-ext
est vide et je peux le supprimer et je démonte ma clé de manière traditionnelle.J'ai désormais l'ensemble de mes données dans la poche, sous une forme sécurisée par un mot de passe de 32 caractères que je ne connais pas moi-même.
Pour retrouver un accès à mes données, je vais procéder sur n'importe quel ordinateur Linux disposant du paquet gocryptfs aux manipulations suivantes :
Je vais copier le fichier gocryptfs.conf sur /home/eric/sauvegarde (vous pouvez le remplacer par le répertoire de votre choix)
Code:
mount -U <UUID> /mnt
mkdir /srv/copie-ext
gocryptfs -config /home/eric/sauvegarde/gocryptfs.conf /mnt /srv/copie-ext
Dans l'éventualité où j'aurais perdu l'accès à mon fichier gocryptfs.conf, je pourrais remplacer la dernière commande par
gocryptfs -masterkey=<clé> /mnt /srv/copie-ext, où <clé> sera la clé de type 12345678-90abcdef-12345678-90abcdef-12345678-90abcdef-12345678-90abcdef que nous avions mis au réfrigérateur plus haut. De la même manière, je pourrai naviguer dans mes données sur /srv/copie-ext.
Dernière édition par un modérateur: