Sécurité

ecryptfs : Chiffrer son dossier personnel

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières
Attention, soyez bien sûrs de ce que vous faites !
Effectuez toujours une sauvegarde de vos documents les plus chers !


Introduction



ecryptfs permet de chiffrer son dossier personnel dans /home.

Par rapport à du LVM Chiffré il offre l'avantage de ne déchiffrer votre dossier QUE SI vous vous connectez (et non pas au démarrage du PC comme un volume logique + cryptsetup)

Ce tutoriel est testé sur Fedora mais est fonctionnel sous Gentoo et testé sur Debian 10 en ayant backporté le paquet concerné.
Dans le cas d'une utilisation sous Calculate Linux, vous n'avez rien à faire, c'est implémenté dans les utilitaires Calculate (cl-setup-session)

J'utiliserai le nom d'utilisateur adrien pour illustrer le chiffrement du dossier de cet utilisateur.

Installation



Installez le paquet ecryptfs-utils :

Fedora :
Code BASH :
dnf install ecryptfs-utils


Ubuntu :
Code BASH :
apt install ecryptfs-utils


Gentoo :
Code BASH :
emerge -av sys-fs/ecryptfs-utils


S'assurer que ecryptfs est actif dans le kernel :

Code BASH :
grep ECRYPT /boot/config-$(uname -r)


doit renvoyer

Code BASH :
CONFIG_ECRYPT_FS=m


Configurer ecryptfs



La manipulation est à réaliser pour chacun des dossiers personnels utilisateurs à chiffrer.
Les manipulations sont à effectuer en tant que superutilisateur, et la session utilisateur ne doit avoir aucun processus lancé.

L'utilisateur doit se trouver dans le groupe ecryptfs. Si ce n'est pas le cas, l'ajouter :

Code BASH :
gpasswd -a adrien ecryptfs


Vous devez avoir de l'espace libre sur la partition /home (au moins la taille du /home/$USER). En effet l'outil gardera une copie en clair de vos données. C'est à vous de supprimer la copie des fichiers en clair si le processus s'est déroulé avec succès.

Pour lancer la migration du home de adrien, on va utiliser :

Code BASH :
ecryptfs-migrate-home -u "adrien"


L'outil demande une phrase de passe pour l'utilisateur adrien.
Mettre le même mot de passe que la session, pour déverrouiller le /home dès la connexion :

Citation :
Enter your login passphrase [adrien]:


Le processus commence.
Votre dossier personnel en clair (exemple /home/adrien) est déplacé dans /home/adrien.XXX (dans mon cas /home/adrien.O4Yy1Kef ).
Les données sont copiées, dans un nouveau /home/adrien, qui est chiffré.

Laisser le processus se dérouler.

Tester



Une fois l'opération terminée, se connecter.

Vérifier que le dossier chiffré est bien utilisé avec df par exemple :

Code BASH :
df -h /home/adrien


Ici, mon dossier personnel est monté dans /home/adrien/.Private qui contient toutes les données chiffrées :

Code TEXT :
/home/adrien/.Private      41G    8,1G   30G  22% /home/adrien


PAM s'occupe de monter automatiquement le /home utilisateur chiffré, que ce soit en graphique ou en SSH.

Si pour une raison ou une autre le dossier privé ne se monte pas, il est possible d'invoquer la commande suivante (et la passphrase sera demandée) :

Code BASH :
ecryptfs-mount-private


Si tout est fonctionnel, vous pouvez supprimer le dossier de backup avec les anciennes données non chiffrées (dossier du type /home/user.XXXX) :

Code BASH :
rm -f /home/adrien.O4Yy1Kef



Changer son mot de passe utilisateur de session



Si vous changez votre mot de passe utilisateur, le dossier privé ne se montera plus automatiquement. En effet, le mot de passe et la clé sont différents.

Effectuez ces manipulations en tant qu'utilisateur et connecté :

Avant de changer votre mot de passe utilisateur, changez la phrase de passe :

Code BASH :
ecryptfs-rewrap-passphrase ~/.ecryptfs/wrapped-passphrase


Une fois fait, changez votre mot de passe

Code BASH :
passwd


Et voilà

Ne plus chiffrer votre dossier personnel



La plupart des tutos s'arrêtent là. Cependant, si vous ne voulez plus chiffrer votre dossier personnel, je vous propose cette méthode.

Comme pour la mise en place, vous devez avoir de l'espace libre sur la partition /home (au moins la taille du /home/$USER).

Les manipulations sont à effectuer en tant que superutilisateur.
La session utilisateur ne doit avoir aucun processus lancé.

Dans un premier temps, créer (avec les droits root) un dossier temporaire pour copier votre /home

Code BASH :
mkdir /home/adrien.enclair


Ouvrez une session pour déverrouiller votre dossier chiffré
Copier ensuite les données de votre /home qui était crypté vers votre /home en clair :

Code BASH :
rsync -avzh /home/adrien/ /home/adrien.enclair/


Déconnectez vous de votre utilisateur et démontez le dossier :

Code BASH :
umount.ecryptfs /home/adrien


Supprimer les dossiers .ecryptfs et .Private qui ont aussi été copiés dans le dossier "enclair" (nous en aurons plus besoin) :

Code BASH :
rm -rf /home/adrien.enclair/.ecryptfs
rm -rf /home/adrien.enclair/.Private


Déplacer le dossier personnel chiffré (en le renommant adrien.crypte au cas où) et renommer le dossier "enclair" :

Code BASH :
mv /home/adrien /home/adrien.crypte
mv /home/adrien.enclair /home/adrien


Rebooter.

Si tout est bon, vous pouvez supprimer le dossier "adrien.crypte" :

Code BASH :
rm -rf /home/adrien.crypte


Et au besoin, si plus aucun dossier chiffré n'est présent sur le système, vous pouvez désinstaller ecryptfs-utils.