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 :
- crypttab
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 :
- crypttab
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