Dernière mise à jour : 05/12/2023 à 10h58
Table des matières
Voici le contexte. Sur mon ordinateur portable, j'ai installé fedora avec du LVM crypté et j'ai donc (mauvais choix peut-être) tout le volume physique qui est crypté et qui contient mon volume group et deux volumes logiques (root et home).
Pour des questions de place insuffisante, j'ai souhaité ajouter un disque dur sur lequel je ne mettrai que home et le disque inital ne contiendrai que root.
Autre critère pour moi, je ne souhaite pas taper plusieurs mots de passe...
Et bien c'est parti !
Montage automatique de la partition initialement cryptée
Le principe ici est d'utiliser dracut. Habituellement, on va chercher le fichier de clé soit sur une clé usb branchée soit sur une autre partition et on l'indique dans le fstab. Ici cela ne fonctionne pas du fait que la partition qui héberge root est cryptée.
Pour cela, on va utiliser une clé que nous allons mettre dans /boot de façon à ce qu'elle soit accessible.
Je vous renvois vers l'article que j'ai fait sur le sujet ici pour créer cette clé : Article sur LVM
Pas besoin de modifier le fstab mais il faut par contre mettre à jour crypttab (vous devriez normalement déjà y avoir une ligne mais il faut la modifier pour prendre en compte la clé)
Code BASH :
luks-50de9237-1abf-4bf2-a065-8800fbbeda53 UUID=50de9237-1abf-4bf2-a065-8800fbbeda53 /boot/.keyfile_luks discard
Ensuite, on va demander à dracut d'aller chercher cette clé
Créer le fichier /etc/dracut.conf.d/copy-keyfile.conf et y ajouter la ligne suivante :
Code BASH :
install_items+=/boot/.keyfile_luks
Mettez ensuite à jour dracut
Code BASH :
dracut -f
On peut ensuite vérifier que cela a bien été pris en compte :
Code BASH :
lsinitrd
Devrait vous renvoyer :
Code BASH :
-r-------- 1 root root 32 Aug 9 20:09 /boot/.keyfile_luks
La nouvelle partition home
Ici, nous allons monter automatiquement notre nouvelle partition home sans clé ni pass-phrase. Le principe est tout simplement de mettre en passphrase le mot de passe de la session utilisateur et d'utiliser pam pour décrypter cette partition lorsuq'on entre le mot de passe de la session.
Encore une fois, je vous renvoi vers un article que j'ai écrit sur la façon de créer une partition chiffréé. Cela s'applique aussi à une partition dans un volume logique. Article ici : Sauvegarde distante sur un disque dur externe chiffré
Nous allons donc monter et décrypter cette partition de façon automatique après ouverture de la session.
Installation des librairies nécessaires
Installez ensuite la librairie nécessaire (ici c'est pour une base redhat, à adapter en fonction de votre distribution):
Code BASH :
sudo dnf install pam_mount
Modification du fstab
Modifier votre fichier /etc/fstab :
Code BASH :
/dev/mapper/homevg-homelv /home ext4 rw,helper=crypt,noauto 0 0
Paramétrage de pam_mount
Editez le fichier /etc/security/pam_mount.conf.xml et ajouter au début de celui-ci, après la première balise <pam-mount> et après la ligne <! --Volume definition -->, la ligne suivante :
Code XML :
<volume user="remi" mountpoint="/home" path="/dev/mapper/homevg-homelv" fstype="crypt" options="relatime"/>
Ensuite, c'est ici que j'ai eu le plus de mal, il y a des lignes à ajouter dans le bon fichier et dans le bon ordre. Je vous donne ma configuration qui fonctionne sur une fedora sous Gnome.
Je vous renvoi vers ces deux sites desquels je me suis inspiré si vous n'avez pas les mêmes fichiers :
J'ai donc modifié le fichier /etc/pam.d/gdm-password et j'ai ajouté les lignes suivantes :
Code BASH :
auth optional pam_mount.so
avant la ligne "auth substack password-auth"
Code BASH :
password optional pam_mount.so
avant la ligne "password substack password-auth"
Code BASH :
session optional pam_mount.so
avant la ligne "session required pam_selinux.so close"