<<

LUKS, déchiffrer automatiquement la partiton home

Lors de l'installation de ArchLinux, j'ai opté pour trois partitions :

Ce qui implique de taper un mot de passe pour déchiffrer chaque partition. Soit deux mots de passe en plus de celui de session.

La solution que j'ai retenu est de stocker dans / une clé sous forme de fichier pour déchiffrer automatiquement la partition /home

Créer la clé de déchiffrement.

Je vais la stocker dans le fichier /unlock_home.bin qui sera accessible seulement une fois la partition root déchiffrée. Et surtout pas dans /boot où elle serait accessible à tout le monde.

 sudo dd bs=512 count=4 if=/dev/urandom of=/unlock_home.bin
 sudo chmod go-rwx unlock_home.bin

Il faut bien faire attention à limiter l'accès à la clé à root.

Enregistrer cette nouvelle clé de déchiffrement

Il faut d'abord trouver le nom de la partition sur laquelle ajouter cette clé. Pour cela la commande lsblk est très utile.

[I] daiko@archlinux ~> lsblk -o +UUID
NAME               MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
zram0              252:0    0     4G  0 disk  [SWAP]
nvme0n1            259:0    0 476,9G  0 disk  
├─nvme0n1p1        259:1    0     1G  0 part  /boot
├─nvme0n1p2        259:2    0    47G  0 part   └─root           253:0    0    47G  0 crypt /
└─nvme0n1p3        259:3    0 428,9G  0 part  
  └─ainstnvme0n1p3 253:1    0 428,9G  0 crypt /home

Nous voyons que chaque partition chiffrée apparaît en double. Il faut bien choisir celle de type part. Dans ce cas c'est nvme0n1p3.

Enregistrons ensuite cette nouvelle clé :

sudo cryptsetup luksAddKey /dev/nvme0n1p3 --key-file /unlock_home.bin

Configurer crypttab

Il ne reste plus qu'a ajouter la ligne qui va bien dans /etc/crypttab

home UUID=502695a9-7dd0-4fba-875a-68eaa69f7a1f /unlock_home.bin timeout=180

Pour obtenir l'UUID de la partition, nous utiliserons à nouveau lsblk :

daiko@archlinux ~> lsblk -o +UUID
NAME               MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS UUID
zram0              252:0    0     4G  0 disk  [SWAP]      bd6cca44-5149-4f6a-8aeb-82363df841b5
nvme0n1            259:0    0 476,9G  0 disk              
├─nvme0n1p1        259:1    0     1G  0 part  /boot       3FF2-47F5
├─nvme0n1p2        259:2    0    47G  0 part              8fa9cdb6-4bd8-430a-92a3-cc36425430b0
│ └─root           253:0    0    47G  0 crypt /           b8b83511-f436-41c0-a67b-ba1c730da006
└─nvme0n1p3        259:3    0 428,9G  0 part              5d9147b8-15b5-4b28-a3f7-60a0fa1908af
  └─ainstnvme0n1p3 253:1    0 428,9G  0 crypt /home       502695a9-7dd0-4fba-875a-68eaa69f7a1f

Il faudra cette fois sélectionner l'UID en face de la partition de type crypt correspondante. (ici ainstnvme0n1p3)

Il suffit maintenant de redémarrer pour vérifier que tout fonctionne. Seul le mot de passe de la partition root devrait être demandé.