====== 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 ====
{{ :cryptographie:luks-cryptsetup.png?200|}}
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 [[wp>fr:LUKS|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 =====
*[[https://fossies.org/linux/cryptsetup/docs/v2.0.0-ReleaseNotes|Cryptsetup 2.0.0 Release Notes]] ;