Un coin perdu... : Articles - Chiffrer un répertoire avec encfs...
Nous sommes le
Bonne Fête!
Votre connection

Browser : Autre

IP : 38.107.191.100
OS : Système d'exploitation inconnu

Flux

TAG
This will be shown to users with no Flash or Javascript.
Rss Chiffrer un répertoire avec encfs...
Grâce a l'application ENCFS, vous allez pouvoir chiffrer toutes les données que vous voulez ! Le principe est simple, il y a deux répertoires, un en clair et un chiffré, on fait ce que l'on veut dans le clair et des lors qu'on le ferme, toutes ces données sont chiffrées et enfermées dans le répertoire chiffré, simple non ??

Les applications nécessaire à la réalisation de ce projet sont les suivantes :

* Encfs

* Fuse-utils

* Module-assistant



Pour ce billet, j'ai fait mes test avec une Dapper version serveur, le nom de machine est virtual, et l'utilisateur virtual, les dossiers seront les suivant :

* Dossier en clair : libre

* Dossier chiffré : .prison



Commençons par installer ce qu'il faut, a savoir encfs et fuse-utils :

Code BASH :
virtual@virtual-desktop:~$ sudo apt-get install encfs fuse-utils



quelques librairies seront installées en plus de ces deux paquets. Il faut ensuite rajouter le module fuse au fichier modules, qui se trouve dans le répertoire /etc (pour les incultes !), afin que celui ci soit pris en compte au démarrage, deux manières, soit on édite ce fichier manuellement, soit on le rajoute via une simple ligne de commande, étant feignant à la base, j'opte pour la deuxième solution !

Code BASH :
virtual@virtual-desktop:~$ sudo sh -c "echo fuse >> /etc/modules"



ceci fait, on charge le module a l'aide de modprobe :

Code BASH :
virtual@virtual-desktop:~$ sudo modprobe fuse



Jusqu'ici tout vas bien, collons nous dans le groupe de fuse, histoire de ne pas être un inconnue a ces yeux !

Code BASH :
virtual@virtual-desktop:~$ sudo adduser virtual fuse



Vérifions que c'est bon :

Code BASH :
virtual@virtual-desktop:~$ grep "fuse" "/etc/group"
fuse:x:113:virtual



Pour le 113, cela peut varier, ne vous inquiétez pas si ce n'est pas identique !
Bon, on viens de dégrossir la base, pour vérifier que nous sommes bien connu du groupe fuse, la commande "groups" dans un terminal pourra nous le confirmer. Passons au plus intéressant, la création des répertoires !!!
Je rappel que le répertoire clair se nomme "libre" et que celui qui sera chiffré s' appel ".prison, nous allons utiliser la commande encfs, qui ne nécessite pas de privilège root, et qui, demande des chemins complets derrière elle.
créons ces répertoire dans le home :
Code BASH :
 
virtual@virtual-desktop:~$ encfs /home/virtual/.prison /home/virtual/libre



Une foultitude de petites questions s'en suivent, est ce qu'il faut créer ces répertoire qui n'existe pas encore ? oui, choisir une option (ou un mode) moi je le laisse vide pour avoir un mode normal

Code BASH :
virtual@virtual-desktop:~$ encfs /home/virtual/.prison /home/virtual/libre
Le répertoire "/home/virtual/.prison/" n'existe pas. Faut-il le créer ? (y/n) y
Le répertoire "/home/virtual/libre" n'existe pas. Faut-il le créer ? (y/n) y
Création du nouveau volume encrypté.
Veuillez choisir l'une des options suivantes :
 entrez "x" pour le mode de configuration expert,
 entrez "p" pour le mode paranoïaque préconfiguré,
 toute autre entrée ou une ligne vide sélectionnera le mode normal.
 
 
 
Configuration normale sélectionnée.
 
Configuration terminée. Le système de fichier à créer a les propriétés suivantes :
Chiffrement de système de fichiers "ssl/blowfish", version 2:1:1
Encodage de fichier "nameio/block", version 3:0:1
Taille de clé : 160 bits
Taille de bloc : 512 octets
Chaque fichier contient un en-tête de 8 octets avec des données IV uniques.
Noms de fichier encodés à l'aide du mode de chaînage IV.
 


Ensuite, entrer le mot de passe qui permettra de déverrouiller ces répertoires, il peut être différent du mot de passe de session, et c'est même mieux, si l'on veut pousser sur la sécurité !

Vous devez entrer un mot de passe pour votre système de fichiers.
Vous devez vous en souvenir, car il n'existe aucun mécanisme de récupération.
Toutefois, le mot de passe peut être changé plus tard à l'aide d'encfsctl.

Code BASH :
Nouveau mot de passe :
Vérifier le mot de passe :



On peut vérifier que ces répertoires sont bien monter avec un petit "cat" :

Code BASH :
virtual@virtual-desktop:~$ cat /proc/mounts
rootfs / rootfs rw 0 0
none /sys sysfs rw 0 0
none /proc proc rw,nodiratime 0 0
udev /dev tmpfs rw 0 0
/dev/hda1 / ext3 rw,data=ordered 0 0
/dev/hda1 /dev/.static/dev ext3 rw,data=ordered 0 0
tmpfs /var/run tmpfs rw 0 0
tmpfs /var/lock tmpfs rw 0 0
tmpfs /lib/modules/2.6.15-51-386/volatile tmpfs rw 0 0
devpts /dev/pts devpts rw 0 0
tmpfs /dev/shm tmpfs rw 0 0
tmpfs /var/run tmpfs rw 0 0
tmpfs /var/lock tmpfs rw 0 0
encfs /home/virtual/libre fuse rw,nosuid,nodev,user_id=1000,group_id=1000,default_permissions 0 0



Heyyy, que vois-je a la fin ?? pas de soucis, c'est monté !

Bon bah ça y est, il n'y a plus qu'a s'en servir ! Pour cela, il y a deux modes : on et off
En gros, on monte ces répertoire pour y travailler, y placer ces données, et on les démonte une fois finit, ce qui vas automatiquement chiffrer les données du répertoire libre dans le répertoire .prison. C'est simplement une histoire de mount...ou plutôt de fusermount !
On monte avec encfs et on démonte avec fusermount (fusermount ne sera pas un inconnu pour celles et ceux qui on lu mon billet sur sshfs...).
Pour monter ces répertoire, on vas utiliser la même commande que pour les créer, sauf que cette fois, la commande vas monter et pas créer, c'est simple !
Code BASH :
 
virtual@virtual-desktop:~$ encfs /home/virtual/.prison /home/virtual/libre



Hop, is good, c'est monté....Et non !!! misère que se passe t'il ?? tout allé si bien ! Et pourtant sa me renvoi ça dans la console :

Code BASH :
fusermount: failed to access mountpoint /home/virtual/libre: Permission denied
Erreur de fuse. Problèmes courants :
 - module noyau fuse non installé (faites "modprobe fuse")
 - options invalides -- voir le message d'utilisation

en fait, il s'agit du module fuse qui n'est pas vraiment bien chargé, c'est la que module-assistant intervient pour corriger cela, installons le et lançons le !

Code BASH :
virtual@virtual-desktop:~$ sudo apt-get install module-assistant


Pour le lancer, il suffit de l'appeler dans la console, ensuite vient un écran avec toutes une série de choix, il faut les faire dans l'ordre suivant :
Code BASH :
PREPARE  Configurer le système pour compiler des modules
SELECT   Sélectionner le module ou le paquet source à traiter
[*] fuse               Filesystem in USErspace
BUILD   Compiler les paquets de modules pour le noyau actif
INSTALL Installer les paquets pour le noyau actif 
EXIT     Quitter le programme


Et voili voilou ! A partir de la, vous pouvez monter vos répertoires avec cette commande :


++Sous Ubuntu 8.04 Hardy, cette opération n'est pas nécessaire, relancez seulement la sessions++



Code BASH :
virtual@virtual-desktop:~$ encfs /home/virtual/.prison /home/virtual/libre



Et pour les démonter, comme ceci :

Code BASH :
virtual@virtual-desktop:~$ fusermount -u /home/virtual/libre/



Et c'est a ce moment la que les données que vous avez placés dans le répertoire libre seront chiffrées dans le répertoire .prison !
Pour ce qui est d'automatiser ça, c'est très simple, vous pouvez créer deux commandes, le première s'appellera decrypt (pour monter et ouvrir les répertoires) et la deuxième encrypt pour refermer et démonter le tout.
Créons ces commandes, qui se trouverons avec les autres dans le répertoire /usr/bin :

Code :
virtual@virtual-desktop:~$ sudo vi /usr/bin/decrypt



A l'intérieur de ce fichier, collez le texte suivant :

Code BASH :
#!/bin/sh
encfs /home/virtual/.prison/ /home/virtual/libre/



Puis la deuxième :

Code BASH :
virtual@virtual-desktop:~$ sudo vi /usr/bin/encrypt



Même châtiment :

Code BASH :
#!/bin/sh
fusermount -u /home/virtual/libre
 


Donnons les droits qui vont bien a ces commandes :

Code BASH :
virtual@virtual-desktop:~$ sudo chown virtual /usr/bin/decrypt /usr/bin/encrypt
virtual@virtual-desktop:~$ chmod 755 /usr/bin/encrypt /usr/bin/decrypt
 


Voila, maintenant il suffit de taper "decrypt" dans la console pour avoir accès a ces données en clair, puis de fermer avec la commande "encrypt".
Je vous laisse imaginer ce que l'on pourrait faire de cette application en milieu professionnel ou certaines données doivent rester confidentiel...

ATTENTION : Souvenez vous bien du mot de passe attribué a ces dossier car il n'existe pas de procédure pour les récupérer en cas de perte !

Voici un petit script qui vous permettra de monter/démonter vos données très simplement et de manière graphique, il vous faudra juste modifier les variables et l'enregistrer dans le dossier /home/utilisateur/.gnome2/nautilus-scripts

Code BASH :
 
#!/bin/bash
# Script de montage de dossier crypté avec encfs et fuse.
# A utiliser avec Nautilus, ou en ligne de commande :
# ./mount_enc ~/dossier_de_montage
 
# Variables à modifier : repertoire contenant les fichiers non cryptés et cryptés
OPENFOLDER=/home/virtual/libre
CRYPTEDFOLDER=/home/virtual/.prison
 
 
gksudo -p -m "Top Secret" | encfs  $CRYPTEDFOLDER $OPENFOLDER 
zenity --info --text="Cliquez sur valider pour démonter"
fusermount -u $OPENFOLDER


Une fois enregistré, pensez a lui donner les droit d'exécution (chmod 755), il sera désormais accessible via un clic droit sur le mulot, rien n'empêche même de se créer un lanceur perso.


SOURCES :

* Ce tuto sur Ubuntu-fr, dont je me suis plus que largement inspiré...

* Le site Encfs
 
 
Note: Aucune note
(0 note)
Ecrit par: le furtif, Le: 09/11/08


Ajout commentaire

Smileys Texte en gras : [b]texte[/b] Texte en italique : [i]texte[/i] Texte souligné : [u]texte[/u] Texte barré : [s]texte[/s] Titre [title=x]texte[/title] Conteneur Style [style=x]texte[/style] Ajouter un lien : [url]lien[/url], ou [url=lien]nom du lien[/url] Ajouter une image : [img]url image[/img] Faire une citation [quote=pseudo]texte[/quote] Cache le texte, affiche lors du clic [hide]texte[/hide] Liste [list][*]texte1[*]texte2[/list] Couleur du texte : [color=X]texte de couleur X[/color] Taille du texte (X entre 0 - 49) : [size=X]texte de taille X[/size]   Réduire le champ texte Agrandir le champ texte
Positionner à gauche : [align=left]objet à gauche[/align] Centrer : [align=center]objet centré[/align] Positionner à droite : [align=right]objet à droite[/align] Justifier : [align=justify]objet justifié[/align] Objet flottant à gauche [float=left]texte[/float] Objet flottant à droite [float=right]texte[/float] Exposant [sup]texte[/sup] Indice [sub]texte[/sub] Indentation [indent]texte[/indent] Tableau [table][row][col]texte[/col][col]texte2[/col][/row][/table] Insérer du flash [swf=largeur,hauteur]adresse animation[/swf] Vidéo [movie=largeur,hauteur]adresse du fichier[/movie] Son [sound]adresse du son[/sound] Insérer du code [code]texte[/code] Insérer du code mathématique [math]texte[/math] Code html [html]code[/html] Aide BBcode
Envoyer