Généralités système Linux

Cryptsetup : Créer une partition home chiffée post-installation

Table des matières

secret



Introduction



Dans cet article; nous allons créer une partition /home séparée, qui sera chiffrée.
Le déverrouillage se fera au boot du système.

Contexte



Nous réalisons ces manipulations dans une installation existante, avec un schéma de partitionnement de type LVM.
Le VG s'appelle rootvg.
Le système utilisé est Gentoo, sous OpenRC.
Si vous utilisez systemd, vous pouvez me rappeler le lien de cet article et les modifications à apporter pour que ceci soit fonctionnel.

Mise en place de la partition home chiffrée



Première étape, créer 1 volume qui sera le conteneur "LUKS" sécurisé (nommé ici crypthomelv) :

Code BASH :
lvcreate -n crypthomelv -L 50G rootvg


Ensuite, on créé le conteneur LUKS avec la commande cryptsetup :

Code BASH :
cryptsetup --verify-passphrase luksFormat /dev/rootvg/crypthomelv


Un avertissement s'affiche indiquant que tout ce qui est éventuellement dans ce volume sera définitivement effacé. Confirmer avec YES en majuscules :

Code TEXT :
WARNING!
========
Cette action écrasera définitivement les données sur /dev/rootvg/crypthomelv.
 
Are you sure? (Type 'yes' in capital letters): YES


Ensuite, on est invité à saisir sa phrase secrète (qui nous servira pour déverrouiller le volume chiffré) :

Code TEXT :
Saisissez la phrase secrète pour /dev/rootvg/crypthomelv : 
Vérifiez la phrase secrète : 


On ouvre le volume avec son emplacement et on indique un nom de montage (ici crypthomelv) :

Code BASH :
cryptsetup luksOpen /dev/rootvg/crypthomelv crypthomelv


On saisi notre phrase de passe précédemment définie.

A partir de là, avec fdisk -l on voit un nouveau "disque" : /dev/mapper/crypthomelv
On va l'utiliser, comme une partition, et donc le formater :

Code BASH :
mkfs.ext4 /dev/mapper/crypthomelv


Automatiser le montage



Avec OpenRC



Ensuite, pour automatiser le montage, on va modifier le fichier /etc/conf.d/dmcrypt

Code BASH :
vim /etc/conf.d/dmcrypt


On définit la target (le nom comme définit tout à l'heure, le deuxième argument de cryptsetup luksOpen) et la source (partition, lv créé, etc...)

Code BASH :
target=crypthomelv
source='/dev/rootvg/crypthomelv'


On récupère le UUID du FS qui est DANS le conteneur chiffré (celui du système de fichiers ext4 dans notre cas), et non pas celui du conteneur chiffré :

Code BASH :
blkid /dev/mapper/crypthomelv 


Code TEXT :
/dev/mapper/crypthomelv: UUID="34cb6f57-ff43-4963-9297-73cca2c46de7" BLOCK_SIZE="4096" TYPE="ext4"



Et on édite le fstab et on ajoute le point de montage concerné :

Code TEXT :
UUID="34cb6f57-ff43-4963-9297-73cca2c46de7"     /home      ext4    defaults        0 0


On n'oublie pas d'ajouter le service dm-crypt au boot

Code BASH :
rc-update add dmcrypt boot


Il n'est pas nécessaire de regénérer l'initramfs car c'est simplement /home qui est chiffré, et non pas la partition racine.

systemd



Votre aide et retour d'expérience est la bienvenue !
Contactez moi sur Telegram :)
Cette page a été vue 239 fois