Lors de l'installation de ArchLinux, j'ai opté pour trois partitions :
/boot
non chiffrée/
chiffrée/home
chiffrée aussi.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
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.
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
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é.