Bonjour, aujourd'hui, un article un peu spécifique sur une procédure que j'ai du réaliser et qui m'a demandé pas mal de tests en machine virtuelle avant d'y arriver...
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 !
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é)
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 :
Mettez ensuite à jour dracut
Soyez prudent, avec cette configuration, votre partition root est accessible à toute personne qui utiliserait une livecd pour démarrer. Il suffit d'ouvrir le conteneur luks avec la clé puisque celle-ci se trouve sur la partition boot non verrouillée
On peut ensuite vérifier que cela a bien été pris en compte :
Devrait vous renvoyer :
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.
Installez ensuite la librairie nécessaire (ici c'est pour une base redhat, à adapter en fonction de votre distribution):
Modifier votre fichier /etc/fstab :
Le premier paramètre correspond à la partition, ici chez moi il s'agit d'une partition sur un volume logique. N'oubliez pas le "helper=crypt"
Il n'a rien à ajouter dans /etc/crypttab pour cette partition !
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 :
volume user permet de restreindre les utilisateur, on peut mettre * si on ne souhaite pas de restriction
Il faut bien sûr adapter le mountpoint et le path à votre cas
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 :
avant la ligne "auth substack password-auth"
avant la ligne "password substack password-auth"
avant la ligne "session required pam_selinux.so close"
Je l'ai déjà mentionné plus haut mais pour que cela fonctionne, la passphrase du volume ou de la partition cryptée doit être le même que le mot de passe de session.