Déchiffrer son dossier personnel lors de l’identification avec pam-mount

Cas d’utilisation

Un ordinateur partagé avec plusieurs utilisateurs dont un (moi) souhaite chiffrer ses données. Je ne veux pas qu’il soit nécessaire d’entrer une phrase de passe au démarrage, ni utiliser eCryptfs (qui chiffre chaque fichier séparément). Le but est donc d’utiliser ma partition chiffrée LUKS (Linux Unified Key Setup) et d’utiliser mon mot de passe utilisateur comme phrase de passe pour déchiffrer puis monter cette partition (il est donc important d’utiliser un mot de passe identique à une des phrases de passe utilisée pour débloquer la clé de chiffrement).

Le chiffrement de la partition ne sera pas abordé ici, pour Ubuntu, vous pouvez par exemple vous référer ici : http://doc.ubuntu-fr.org/cryptsetup

Mise en place

Premièrement, vous aurez besoin du module PAM (Pluggable Authentication Module) pam-mount :

sudo aptitude install pam_mount

Ensuite, il vous faudra, le cas échéant, commenter la ligne qui sert à monter votre partition chiffrée dans /etc/fstab ainsi que la ligne correspondante dans /etc/crypttab pour éviter que le système tente de déchiffrer et monter cette partition au démarrage (avant l’identification).

Il faut maintenant indiquer à pam-mount quelle est la partition à monter en ajoutant la ligne suivante au fichier/etc/security/pam_mount.conf.xml juste avant </pam_mount> (en remplaçant jernst par le nom d’utilisateur correspondant) :

<volume user="jernst" fstype="crypt" path="/dev/sda2" mountpoint="/data" />

Il ne reste plus qu’à configurer PAM en ajoutant la ligne suivante à la fin des fichiers /etc/pam.d/common-session et /etc/pam.d/common-auth

# added for libpam-mount
@include common-pammount

Finalement, dans cet exemple, il faut encore déplacer toutes vos données personnelles vers votre partition chiffrée, puis faire un lien symbolique entre votre dossier personnel et /data.

Derniers mots

Cette technique a aussi l’avantage de vous permettre d’allumer votre ordinateur sans qu’une phrase de passe vous soit immédiatement demandée, ce qui est particulièrement utile dans des pays où la protection de votre vie privée peut vous valoir un séjour en détention ou un mauvais quart d’heure à la douane (il suffit alors de vous identifier avec un autre utilisateur).

Finalement si quelqu’un a une idée pour permettre une hibernation dans ce cas de figure (i.e. sans que la clé de chiffrement ne soit compromise, ce qui serait le cas avec une partition de SWAP), je suis preneur.

Mise à jour 14 juin 2009 : Il semblerait que depuis Jaunty, pam_mount ajoute automatiquement « session optional        pam_mount.so » dans les fichiers qui se trouvent dans pam.d ; si vous avez une telle ligne, il n’est pas nécessaire d’ajouter les lignes indiquées dans l’article à la fin de ces fichiers.