Créer un container chiffré sous Linux
Par Florian- linux
- 2 min
Ce week-end j'ai eu besoin de stocker des fichiers de façon sécurisée. Je ne souhaitais pas chiffrer une clé de 8Go complète car les fichiers sont de petite tailles. J'ai donc cherché à créer un container chiffré que je puisse utiliser et transporter partout.
Création du fichier chiffré
Il se trouve que Linux a un système de chiffrement de partitions : LUKS à travers l’outil cryptsetup, partie intégrante du noyau Linux. J'ai donc cherché à savoir comment créer un fichier chiffré dans lequel je puisse stocker des données grâce à ce système. Les manipulations sont plutôt simple et voici comment procéder.
Tout d'abord, créons un fichier vide qui servira de container.
sudo dd if=/dev/zero bs=1M count=100 of=~/my-container.img
Nous remplissons un fichier my-container.img
de zéros, ce fichier fera 100Mo.
Ensuite nous devons chiffrer ce fichier.
sudo cryptsetup luksFormat ~/my-container.img
À ce moment, LUKS vous demandera un mot de passe afin de chiffrer le fichier, il vous demandera également de bouger la souris ou saisir des caractères afin d'améliorer l'entropie. Une fois chiffré, il faut faire en sorte que le container soit montable comme n'importe quelle partition.
sudo cryptsetup luksOpen ~/my-container.img my-container
Nous demandons à ce que notre fichier soit ouvert pour pouvoir y accéder. Le système nous demandera de saisir le mot de passe afin de pouvoir ouvrir ce fichier. Pour le moment, il s'agit d'un fichier quelconque, pour pouvoir l'utiliser comme une partition et y placer des fichiers à l'intérieur, il faut le formater.
sudo mkfs.ext4 /dev/mapper/my-container
Nous créons une système de fichier ext4 dans notre fichier chiffré. Attention à ne pas se tromper de chemin, vous pourriez perdre des données voire rendre votre disque dur de travail inutilisable.
Utilisation du fichier chiffré
Une fois formaté, il ne reste plus qu'à monter le système de fichier comme n'importe quelle clé usb.
sudo mount /dev/mapper/my-container /mnt
À partir de là, on peut placer des fichiers dans le répertoire /mnt
qui seront cryptés, une fois le système de fichier démonté et fermé.
Pour démonter et fermer le fichier, il suffit d'utiliser les deux commandes suivantes.
sudo umount /mnt
sudo cryptsetup luksClose my-container
On peut maintenant transporter le fichier ~/my-container.img
sur n'importe quel support sans risque.
Pour à nouveau accéder aux fichiers ou en ajouter de nouveaux, il suffit d'ouvrir à nouveau le container avec LUKS et de monter la partition.
sudo cryptsetup luksOpen ~/my-container.img my-container
sudo mount /dev/mapper/my-container /mnt
Astuce
Il est possible d'ajouter jusqu'à 8 mots de passe sur le fichier, cela permet à diverses personnes d'utiliser le fichier avec chacun son mot de passe. Pour cela, la commande luksAddKey
permet d'ajouter un mot de passe. Elle vous demander d'abord de saisir un de ceux déjà enregistré puis le nouveau.
sudo cryptsetup luksAddKey ~/my-container.img
Enfin, pour supprimer un mot de passe, deux possibilité : soit la commande luksRemoveKey
qui vous demandera le mot de passe à supprimer, soit la commande luksKillSlot
avec l'index du mot de passe à supprimer (l'index commence à zéro). Pour connaître l'index, la commande luksDump
listera les slots utilisés sous Keyslots
sudo cryptsetup luksDump ~/my-container.img
sudo cryptsetup luksRemoveKey ~/my-container.img
sudo cryptsetup luksKillSlot ~/my-container.img 1
Avec ça, plus aucune raison de ne pas stocker ses fichiers de façon sécurisée ! 🙂