Ayant décidé de laisser un disque-dur de sauvegardes chez mes parents afin d'avoir une sauvegarde « hors site », je me suis dit qu'il serait mieux de le chiffrer, afin que personne n'accède à mes données si je l'égare lors de son transport.
Voyons comment faire.
Prérequis
Partitionnement
Sous GNU/Linux, le chiffrement se fait par partition, le partitionnement ne demande rien de spécifique, créez vos partitions normalement avec votre outil préféré.
Dans le suite de l'article, nous prendrons le fait que la partition à chiffrer est sdb1.
Paquets
Sous les distribution GNU/Linux dérivées de Debian, vous aurez besoin du paquet cryptsetup :
# apt install cryptsetup
Chiffrement et formatage
Chiffrer
Utilisez l'option luksFormat de cryptsetup pour chiffrer la partition, puis, indiquez le mot de passe nécessaire au déchiffrement de celle-ci. ATTENTION, CELA EFFACERA TOUTES LES DONNÉES DE LA PARTITION !
Utilisez l'option luksOpen de cryptsetup pour ouvrir la partition chiffrée et ainsi pouvoir interagir avec. Le mot de passe choisi lors de la création du chiffrement vous sera demandé.
sdb1 est le contenant LUKS contenant la partition chiffrée.
MesSecrets est la partition chiffrée.
Comme vous le remarquez, le conteneur LUKS et la partition sous-jacente disposent d'un UUID. Cela nous sera utile plus après.
Monter et démonter la partition
Le montage se fait avec les commandes mount et umount via le périphérique mappé.
# mount /dev/mapper/MesSecrets /mnt/MesSecrets
# umount /mnt/MesSecrets
Automatiquement
Si la partition chiffrée doit être montée au démarrage du système, un mot de passe vous sera demandé, ce qui n'est pas le mieux si l'ordinateur qui utilise cette partition doit être capable de redémarrer sans votre intervention.
Pour que la partition chiffrée soit montée automatiquement, vous devez l'ajouter à /etc/fstab mais également renseigner le fichier /etc/crypttab afin que le conteneur LUKS détenant la partition chiffrée soit automatiquement ouvert.
Ajout dans /etc/fstab
Il est possible de monter la partition chiffrée via /etc/fstab, vous aurez besoin de l'UUID du périphérique mappé (/dev/mapper/MesSecrets dans notre cas)
Dans notre cas, l'UUID à ajouter dans /etc/fstab est 91d006c5-ae5f-4bc4-95d0-77616726c60f :
Utilisez la commande cryptsetup luksAddKey en indiquant le fichier contenant la clef précédemment créé et le conteneur LUKS auquel elle doit être ajoutée, le mot de passe du conteneur LUKS vous sera demandé :
# cryptsetup luksAddKey /dev/sdb1 /etclukskey
Si vous réutilisez la commande cryptsetup luksDump /dev/sdb1 vous verrez la nouvelle clef dans la liste :
# cryptsetup luksDump /dev/sdb1
(…)
La clef n'a pas à être liée à un fichier, elle peut être ajouté via cryptsetup luksAddKey /dev/sdb1, le mot de passe créé lors du chiffrement du conteur LUKS vous sera demandé, puis, un second pour cette nouvelle clef :
# cryptsetup luksAddKey /dev/sdb1
Enter any existing passphrase:
Enter new passphrase for key slot:
Verify passphrase:
Notez que la commande cryptsetup luksRemoveKey /dev/sdb1 permet de supprimer une clef.
Configuration de /etc/crypttab
Une fois qu'une clef liée à un fichier a été ajouté à notre conteneur LUKS, nous pouvons renseigner le fichier /etc/crypttab afin d'automatiser l'ouverture de la partition chiffrée.
Renseignez /etc/crypttab comme suit :
NomMappé UUID=UUIDConteneurLUKS /fichier/clef
Avec :
NomMappé : Le nom mappé du périphérique (MesSecrets dans notre cas)
UUID : L'UUID du conteneur LUKS contenant la partition chiffrée (de53f0d1-e643-4782-bd8d-0655393f3efe dans notre exemple, voir lsblk -f /dev:sdb1.)
/fichier/clef : Le fichier contenant la clef de chiffrement (/etc/lukskey ici)
Dans notre cas, nous aurions le résultat suivant :
Une fois ceci fait, vous devriez pouvoir ouvrir la partition via cryptsetup luksOpen /dev/sdb1 et la monter via mount /mnt/MesSecrets sans qu'un mot de passe vous soit demandé.