Chiffrer un disque avec LUKS 2

Je dispose d’un disque non utilisé par le système d’exploitation que je désire chiffrer.

Chiffrement, volumes logiques et système de fichiers

Chiffrement LUKS

Je lance un terminal et je tape les commandes :

sudo su
apt update && apt install lvm2 cryptsetup
modprobe dm-crypt
cryptsetup --type luks2 --cipher aes-xts-plain64 --key-size 512 --hash sha512 --integrity hmac-sha512 --pbkdf argon2i --pbkdf-parallel 4 --iter-time 16000 --pbkdf-memory 1048576 --use-urandom --label SharedDisk --subsystem "" --verify-passphrase --verbose luksFormat /dev/sdd

J’utilise les paramètres permettant le plus au niveau de chiffrement possible.

Volumes logiques

Après le chiffrement de ce disque je la monte sous le nom “shareddisk”, je l’initialise avec la commande pvcreate, je crée un groupe de volumes avec pour nom “shared” et dedans j’ajoute plusieurs volumes logiques. Pour les deux premiers j’indique explicitement la taille des volumes et pour le dernier j’utilise la place restante.

cryptsetup luksOpen /dev/sdd shareddisk
pvcreate /dev/mapper/sharerdisk
vgcreate shared /dev/mapper/shareddisk
lvcreate -L 32768M -n dropbox shared
lvcreate -l 100%FREE -n samba shared

Vérifier le chiffrement

La commande cryptsetup status /dev/mapper/shareddisk permet de vérifier le résultat des paramètres de chiffrement du disque.

cryptsetup status /dev/mapper/shareddisk
/dev/mapper/galaad is active and is in use.
type: LUKS2
cipher: aes-xts-plain64
keysize: 1024 bits
key location: keyring
integrity: hmac(sha512)
integrity keysize: 512 bits
device: /dev/sdd
sector size: 512
offset: 0 sectors
size: 1111220968 sectors
mode: read/write

Système de fichiers

Enfin il faut créer les systèmes des fichiers.

mkfs.ext4 /dev/mapper/shared-dropbox
mkfs.ext4 /dev/mapper/shared-samba

Ouverture du disque au démarrage

Toujours en root il faut maintenant modifier le fichier /etc/crypttab. Avant de modifier ce fichier il faut connaître l’identifiant unique (UUID) de la partition chiffrée, pour cela dans le terminal nous lançons la commande blkid :

blkid

Le terminal va afficher l’ensemble des devices et leur UUID ; il faut rechercher celui qui concerne la partition chiffrée, ici /dev/sdd.

vi /etc/crypttab

Dans la fenêtre qui s’ouvre taper le nom de la partition chiffrée, ici “shareddisk” et coller l’UUID, et retirer les guillemets, taper “none” puis “luks” en séparant chaque information par une tabulation :

lvm UUID=2ae(...)4d1 none luks

Si la partition est sur un disque SSD il faudra ajouter “discard” après “luks” séparé d’une virgule :

sda3-crypt UUID=2ae(...)4d1 none luks,discard

Sauvegarde

Si l’entête du conteneur LUKS se corrompt, ceci rendra la partition inutilisable. Pour sauvegarder l’entête d’un conteneur il faut utiliser la commande :

cryptsetup luksHeaderBackup --header-backup-file luks-header-shareddisk-backup.txt /dev/sdd

Puis pour restaurer cette entête :

cryptsetup luksHeaderRestore --header-backup-file uks-header-shareddisk-backup.txt /dev/sdd

Références

Cryptsetup 2.0.0 Release Notes ;