Un dossier chiffré distant avec EncFS et SSHFS

Thursday, 31 January 2013
|
Écrit par
Grégory Soutadé

Si vous avez des ennuis, prenez un avocat ! Vous aurez toujours des ennuis, mais vous aurez un avocat !

Aujourd'hui nous allons répondre à une problématique concernant la sécurité et le travail en équipe. Lorsque le travail requiert des besoins importants en terme sécurité, il arrive de devoir mettre en place des dossiers chiffrés pour protéger des documents confidentiels. Pour cela, la solution idéale est TrueCrypt : le volume sécurisé est monté et seul l'utilisateur peut y accéder (pas de montage réseau possible). Mais quand on travaille à plusieurs sur les mêmes documents, il faut créer un TrueCrypt par machine et synchroniser les fichiers "à la main"...

Travail en équipe avec TrueCrypt

Bref, ce temps est révolu. En combinant SSHFS et EncFS on peut créer des dossiers chiffrés et y accéder à distance de façon sécurisée (à tous les niveaux). Il faut mettre en place un "serveur" qui va centraliser les dossiers et une installation sur chaque client comme suit

Travail en équipe avec EncFS et SSHFS

Sur le serveur

Installer encfs

sudo apt-get install enfs

Éditer le fichier /etc/fuse.conf pour autoriser les utilisateur non root à utiliser fuse
Décommenter "user_allow_other"

La commande "ls -l /dev/fuse" devrait donner le résultat suivant

crw-rw---- 1 root fuse 10, 229 Jan 24 12:05 /dev/fuse

Si le groupe "fuse" n'a toujours pas accès à /dev/fuse, il faut redémarrer la machine (c'est le cas notamment sous Debian).

Créer un utilisateur spécifique pour le projet

sudo adduser PROJET

Ajouter l'utilisateur au groupe fuse

sudo adduser PROJET fuse

Démarrer un shell avec l'utilisateur PROJET

su PROJET cd

Créer le dossier qui sera chiffré

mkdir projet_enc

Faire le montage du dossier encfs dans le dossier "projet_enc_out"

encfs /home/PROJET/projet_enc /home/PROJET/projet_enc_out

Quitter

exit

Sur chaque client

Installer sshfs

sudo apt-get install sshfs

Éditer le fichier /etc/fuse.conf pour autoriser les utilisateur non root à utiliser fuse
Décommenter "user_allow_other"

La commande "ls -l /dev/fuse" devrait donner le résultat suivant

crw-rw---- 1 root fuse 10, 229 Jan 24 12:05 /dev/fuse

Si le groupe "fuse" n'a toujours pas accès à /dev/fuse, il faut redémarrer la machine (c'est le cas notamment sous Debian).

Ajouter courant l'utilisateur au groupe fuse

sudo adduser USER fuse

Créer le point de montage

mkdir projet_secret

Monter le dossier chiffré distant

sshfs -o uid=$UID gid=$GID PROJET@IP:/home/PROJET/projet_enc_out projet_secret

Démonter le dossier

Que ce soit sur le serveur ou sur le client, il n'y a qu'une seule commande

fusermount -u <point_de_montage>

Conclusion

À l'intérieur de ce dossier on peut ensuite créer un dépôt git et faire un clone : ça donne un git distant sécurisé (même si on a l'impression d'y accéder en local). On peut aussi inscrire les clés publiques pour l'utilisateur PROJET et donc restreindre l'accès à certaines machines uniquement, ce qui a pour effet de bord d'avoir un mot de passe différent pour chaque utilisateur et non un mot de passe commun !

Auteur :


e-mail* :


Le commentaire :




* Seulement pour être notifié d'une réponse à cet article
* Only for email notification