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.