Je n'ai étonnement pas trouvé de tutoriel en français expliquant comment
créer un répertoire home chiffré sous GNU/Linux avec encfs. Je vais donc
essayer de résumer les quelques manipulations à faire.
Je m'inspire d'une documentation Ubuntu.
Le machin a été testé avec succès sous Ubuntu 7.10 et en Debian Sid.
Update du 24.04.2008 : Attention, le paquet libpam-encfs est
cassé dans la dernière version d'Ubuntu (Hardy 8.04). Il empêche tout bonnement
de se connecter. En attendant que ce bogue
soit corrigé, je déconseille très fortement de mettre à jour Buntu.
FUSE est
un logiciel permettant de créer et de manipuler des systèmes de fichier sans
avoir besoin de modifier le système ni de posséder des droits d'administrateur.
Cette technologie a de nombreuses applications : elle permet entre autres
d'accéder à des ressources comme si elles étaient sur le disque, Par exemple de
parcourir directement le contenu d'une archive ou d'un fichier compressé;
d'utiliser des bases de données comme système de fichier; d'utiliser des
fichiers sur un serveur distant comme s'ils étaient en local, via ssh, ftp,
webdav, samba, etc, etc. Avec sshfs vous pouvez "monter" un
répertoire distant à travers ssh et travailler sur les fichiers du serveur
comme s'ils étaient en local, c'est à dire que tous vos outils les voient comme
des fichiers locaux. FUSE permet également, c'est l'objet de ma disserte, de
créer des répertoires chiffrés, via différents module dont
EncFS.
EncFS permet de créer un répertoire chiffré, c'est à dire que l'ensemble du
répertoire et de ses fichiers sont contenus dans un seul fichier chiffré. Vous
y accédez en saisissant un mot de passe et vous pouvez alors utiliser de façon
transparente les fichiers du dossier. Fonctionnement classique permis par de
nombreux autres logiciels et bien décrit dans la documentation Ubuntu francophone. Mais chiffrer un
répertoire ne me suffisait pas, j'aurais voulu pouvoir chiffrer la racine de
mon compte, mon home directory. La plupart des applications stockent en effet
leurs données directement à la racine (mails de Thunderbird, log des clients de
messagerie instantanée, etc, etc). Plutôt que de paramétrer tous ces logiciels
pour qu'ils stockent leurs données dans un autre répertoire chiffré, je voulais
chiffrer directement mon ). Cela implique qu'il soit déchiffré automatiquement
quand je me connecte, et "démonté" quand je me déconnecte.
C'est là qu'intervient PamEncfs, un
module permettant de monter automatiquement à la connexion un répertoire
chiffré avec encfs.
Assez de blahblah, un peu de ligne de commande. Je vais créer une maison
sécurisé pour l'utilisateur toto, préalablement créé, et qui réside
classiquement à /home/toto.
Commencez pas installer les packages nécessaires:
sudo apt-get install libpam-encfs
Les dépendances devraient installer tout ce qui va bien.
Fuse est un module du noyau. Pour qu'il soit chargé automatiquement à chaque
démarrage, ajoutez-le au fichier /etc/modules. Pour le charger à la main:
sudo modprobe fuse
Les utilisateurs autorisés à utiliser fuse doivent être membres du groupe
fuse:
sudo adduser toto fuse
Pour fonctionner, PamEncfs a besoin d'utiliser certaines options de fuse qui
nécessitent d'ajouter ou dé-commenter l'option user_allow_other
dans le fichier de configuration de fuse :
/etc/fuse.conf.
Il faut ensuite ajouter le module PamEncfs à PAM : éditez le fichier
/etc/pam.d/common-auth et insérez avant la ligne contenant pam_unix.so une
ligne:
auth sufficient pam_encfs.so
Ajoutez également la directive use_first_pass aux lignes
suivantes pour que PAM ne vous demande qu'une fois votre mot de passe.
L'étape suivante est de créer quelque part dans l'arborescence le fichier
qui contiendra le répertoire chiffré. Par exemple:
sudo mkdir -p /mnt/storage/enc/toto
Votre utilisateur doit être propriétaire de ce fichier:
chown toto:toto /mnt/storage/enc/toto
C'est à toto de jouer, car c'est lui qui doit créer le conteneur chiffrer.
Demandez-lui de se connecter:
su toto
Créez le répertoire chiffré en le liant au home de l'utilisateur (attention,
si ce home existait déjà, renommez-le pour ne pas l'effacer !!!)
encfs /mnt/storage/enc/toto /home/toto
Répondez aux différentes questions. A celle sur le mot de passe, saisissez
le mot de passe de toto !
Il de vous reste plus qu'à redevenir vous-même:
exit
Et c'est tout ! à chaque fois que toto se connectera, son répertoire
chiffré sera automatiquement monté. Il sera démonté à la déconnexion.
Avec ce système, même quand l'utilisateur est connecté personne d'autre que
lui ou elle ne peut accéder aux fichiers de son répertoire, pas même
root !
La seule contrainte que je vois pour l'instant est qu'il faut penser, si
l'on modifie le mot de passe du compte, à modifier simultanément celui du
répertoire, ce qui se fait au moyen de la commande encfsctl passwd
/mnt/storage/enc/toto
Vala. J'attends vos commentaires.