N-PN White-Hat Project
[losetup ]Chiffrage d'un dossier sous linux - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Tutoriels (https://dev.n-pn.fr/forum/forumdisplay.php?fid=15)
+--- Forum : [Tutoriel] Crypto - Stégano (https://dev.n-pn.fr/forum/forumdisplay.php?fid=42)
+--- Sujet : [losetup ]Chiffrage d'un dossier sous linux (/showthread.php?tid=2037)



[losetup ]Chiffrage d'un dossier sous linux - Dobry - 15-05-2012

Je ne sais pas si le titre est très approprié, il pourra être modifié par la suite.
J'étais à la recherche d'un moyen efficace pour proteger mes données (je ne peux pas dire sensibles, car je n'ai pas de données sensibles), et je suis tombé sur un petit utilitaire nommé "losetup" présent la plupart (toutes ?) les distributions GNU/Linux.
Nous utiliserons le cryptage AES, qui, selon moi est le plus sûr à l'heure à laquelle j'écris ce article (ou tutoriel, donnez lui le nom que vous souhaitez).
Avant de procéder à la création de se stockage sûr, il foudra suivre quelque étapes, notamment pour le cryptage aes, qui nécéssite un paquet souvent absent.
Pour cela, je vous propose un petit
Code :
apt-get install loop-aes-utils
ou encore
Code :
yum install aespipe
Maintenant (en console), nous allons lancer deux petit modprobe:
Code :
modprobe aes (pas obligatoire, ne fonctionne pas sur Fedora)
modprobe cryptoloop

Maintenant il nous fait créer un espace de stockage, pour cela, rien de plus simple
Code :
dd if=/dev/zero of=vms bs=4k count=1000 seek=4001
remplacez of= par le nom de stockage que vous souhaitez créer, bs= par le nombre de Mo que vous voulez réserver pour le stockage (laissez count=1000 et seek=4001, ça me semble être une valeur correcte).
A l'origine, cette protection me sert à crypter ma VM (.vdi), ainsi, pour j'alloue une place d'environ 20go de stockage, pour des valeurs supérieurs à 10go, la création prend un peu de temps, mais une fois celà terminé, nous allons procéder à l'encryption de ce disque de stockage.
Pour cela, un petit:
Code :
losetup -e aes /dev/loop0 vms
Un mot de passe d'une longueur supérieur à 20 caractères vous sera alors demandé (ne l'oubliez pas...)
Remplacez bien sûr vms par le nom de votre disque crée à l'étape précédente.
Nous allons maintenant formater ce système de façon correcte, pour çela,
Code :
mkfs.ext3 /dev/loop0
Pour finir, nous allons monter le volume crée pour pouvoir y placer les fichiers/dossiers à protéger.
Code :
sudo mkdir /mnt/encrypt/
sudo mount /dev/loop0 /mnt/encrypt/
Placez maintenant les fichiers à crypter dans ce dossier.
Voyons maintenant comment re-encrypté l'espace de stockage, pour celà, il faut déjà démonter le volume:
Code :
sudo umount /mnt/encrypt
Puis losetup sur le tout :
Code :
sudo losetup -d /dev/loop0
Et voilà, vous vous retrouvez avec des données protégées par un chiffrement AES relativement simplement.

Quelques erreurs rencontrées :
LOOP_SET_FD: Device or resource busy :
il faut effectuer un losetup préalablement:
sudo losetup -d /dev/loop0

Je dois avouer que je ne fais que vous relater le fruit de mes recherches, sans chercher à comprendre exactement le fonctionnement de losetup (par manque de temps).

Ci-dessous est présent un script pour automatiser l'allumage d'une VM cryptée, il vous faudra bien sûr l'adapter en fonction de vos besoins.
Code CPP :

#include <iostream>
#include <string>
#include <stdlib.h>

int main(int argc, char* argv[]){
    int reponse;
    std:<img src="https://dev.n-pn.fr/forum/images/smilies/confused.png" alt="Confused" title="Confused" class="smilie smilie_13" />tring execute;
    if(argc == 2){
        execute = argv[1];
        if(execute == "mount"){
            reponse = system("sudo losetup -e aes /dev/loop0 vms");
            if(reponse){
                std::cout << "Wrong Password" << std::endl;
                return 1;
            }else{
                reponse = system("sudo mount /dev/loop0 /mnt/encrypted/");
                if(reponse){
                    system("sudo losetup -d /dev/loop0");
                    std::cout << "Erreur lors du montage du répertoire" << std::endl;
                    return 1;
                }else{
                    system("sudo VBoxManage createvm --name Encrypt -register -basefolder /mnt/encrypted/");
                    system("sudo VBoxManage modifyvm Encrypt --hda /mnt/encrypted/VM.vdi");
                    //Parti à décommenter si vous avez un problème avec les IDE
                    system("sudo VBoxManage storagectl Encrypt --name \"IDE Controller\" --add ide");
                    system("sudo VBoxManage storageattach Encrypt --storagectl \"IDE Controller\" --port 0 --device 0 --type hdd --medium /mnt/encrypted/Debian\\ Web.vdi");
                    system("sudo VBoxManage startvm Encrypt");
                }
            }
        }else if(execute == "umount"){
            system("sudo VBoxManage controlvm Encrypt savestate");
            reponse = system("sudo umount /mnt/encrypted");
            if(reponse){
                std::cout << "Erreur lors du démontage (umount /mnt/encrypted)" << std::endl;
                return 1;
            }else{
                reponse = system("sudo losetup -d /dev/loop0");
                if(reponse){
                    std::cout << "Error lors du démontage (losetup -d /dev/loop0)" << std::endl;
                    return 1;
                }
            }
        }else{
             std::cout << "Usage : ./lauchvm mount to lauch the VM " << std::endl << "./lauchvm unmount to stop the VM" << std::endl;
                    return 1;
        }
    }else{
        std::cout << "Usage : ./lauchvm mount to lauch the VM " << std::endl << "./lauchvm unmount to stop the VM" << std::endl;
        return 1;
    }
    return 0;
}
 


Bon ok, je fais ça à grand coup de system(), c'est pas très beau et pas très fiable, mais ça fonctionne très bien.

Necromoine


RE: [losetup ]Chiffrage d'un dossier sous linux - spartal1n - 15-05-2012

Sa à l'air pas mal moi j'utilise TrueCrypt, je le trouve pas mal et la sécurité est très respectable.


RE: [losetup ]Chiffrage d'un dossier sous linux - Dobry - 16-05-2012

Exact, je ne sais même pas pourquoi je n'utilise pas TrueCrypt qui est pourtant très bien....
Edit : à si voilà, à la base je cherchais un moyen de crypter l'intégralité du "/" et trueCrypt ne permet pas ça, mais j'ai du me perdre dans mes recherches et j'ai fini par atterir sur Losetup.


RE: [losetup ]Chiffrage d'un dossier sous linux - Di0Sasm - 18-05-2012

Moi aussi j'utilise TrueCrypt pour mes données du taff et je protège des dossiers complet avec. Donc je vois pas pourquoi tu n'as pas réussi ?

Cordialement Di0Sasm


RE: [losetup ]Chiffrage d'un dossier sous linux - Dobry - 21-05-2012

Ce n'est pas que je n'ai pas réussi, c'est juste que je me suis détourné de mon but principal lors de ma recherche.
Et puis, il est interessant de connaitre des alternatives Big Grin (tente de se rattraper)


RE: [losetup ]Chiffrage d'un dossier sous linux - Di0Sasm - 21-05-2012

Je suis toute a fait d'accord avec toi, apparemment l'alternative à l'air de fonctionner correctement.