-- Leo's gemini proxy

-- Connecting to zergy.net:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;lang=fr

Blog /home/zergy - Chiffrer un disque-dur avec LUKS


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 !


# cryptsetup --verbose luksFormat --verify-passphrase /dev/sdb1

Ouvrir la partition chiffrée


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é.


# cryptsetup --verbose luksOpen /dev/sdb1 MesSecrets

Cela créera une périphérique mappé dans /dev/mapper/MesSecrets, c'est désormais avec ce périphérique que vous devez interagir.


Fermer la partition chiffrée


Utilisez l'option luksClose de cryptsetup pour fermer la partition chiffrée une fois que vous n'avez plus besoin d'y avoir accès.


# cryptsetup --verbose luksClose MesSecrets

Formater


Ouvrez la partition chiffrée via cryptsetup luksOpen et formatez-la via son périphérique mappé.


# cryptsetup --verbose luksOpen /dev/sdb1 MesSecrets
# mkfs.ext4 /dev/mapper/MesSecrets

Gestion de la partition

Structure de la partition chiffré


Utilisez la commande lsblk avec l'option -f afin de voir la structure de la partition chiffrée.


# lsblk -f /dev/sdb1
NAME      FSTYPE      LABEL   UUID                                 MOUNTPOINT
sdb1      crypto_LUKS         de53f0d1-e643-4782-bd8d-0655393f3efe
└─MesSecrets ext4     pr0n    91d006c5-ae5f-4bc4-95d0-77616726c60f /mnt/MesSecrets

Dans notre cas :

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 :


<file system=""> <mount point="">   <type>  <options>       <dump>  <pass>
(…)
UUID=91d006c5-ae5f-4bc4-95d0-77616726c60f     /mnt/MesSecrets     ext4     defaults     0        0
</pass></dump></options></type></mount></file>

Ajouter une clef de chiffrement


Afin que la partition chiffrée soit ouverte automatiquement, nous allons ajouter une clef de chiffrement a son conteneur LUKS :


Utiliser la commande cryptsetup luksDump /dev/sdb1 afin de lister les clefs de chiffrement présentes dans ce conteneur :

# cryptsetup luksDump /dev/sdb1
(…)

La clef présente est celle créé lors de la création du conteneur LUKS.

Utilisez la commande dd afin de créer un fichier rempli de données aléatoires (nous créons ici un fichier de 512 bits) :

# dd if=/dev/random bs=512 count=1 of=/etc/lukskey
# chmod 600 /etc/lukskey

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 :


<target name="">    <source device="">      <key file="">   <options>
MesSecrets  UUID=de53f0d1-e643-4782-bd8d-0655393f3efe       /etc/lukskey
</options></key></target>

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é.


Accueil du Blog

Accueil de la capsule

-- Response ended

-- Page fetched on Sun May 19 13:13:58 2024