Comment créer une partition cryptée ext4 sur Ubuntu 15.04 avec le nouveau noyau 4.1?

11

Puis-je créer une nouvelle ext4partition chiffrée avec le noyau 4.1 sur Ubuntu 15.04?

Oto_Shan
la source
2
doublon possible de Comment créer une partition cryptée?
Ron
Ce n'est pas un doublon car aucune des réponses existantes ne concerne la fonctionnalité particulière ajoutée dans le noyau 4.1, référence: phoronix.com/…
LiveWireBT

Réponses:

9

Tout d'abord un avertissement: je n'ai pas fait cela avec Ubuntu, mais sur une machine avec Debian "Stretch" installé en utilisant un noyau Linux 4.2.3 personnalisé sur lequel j'ai activé EXT4_FS_ENCRYPTION.

Les instructions données par kmeaw ne fonctionnent pas exactement pour moi. Quelques éléments ont été omis (paramètres et étapes de la ligne de commande).

  • Mettre e2fsprogsà jour comme indiqué ci-dessus
  • Générez votre sel aléatoire. J'ai utilisé ce qui suit pour le stocker dans un "endroit sûr":

    head -c 16 /dev/urandom | xxd -p >~/tmp-salt.txt
    echo 0x`cat ~/tmp-salt.txt` >~/.cryptoSalt
    
  • Pour utiliser le cryptage ext4 sur le système de fichiers, l'indicateur "encrypt" doit être défini dans le super-bloc. Ce n'est pas la valeur par défaut lorsque le système de fichiers ext4 est créé. À l'aide de l'utilitaire "tune2fs" d'e2fsprogs 1.43 ou version ultérieure, définissez l'option "encrypt":

    sudo tune2fs -O encrypt /dev/sda4
    
  • Montez ou remontez le système de fichiers pour que le noyau soit au courant du changement (c'est peut-être automatique, mais je l'ai fait uniquement sur une partition distincte, donc je ne suis pas sûr.)

  • Créez un répertoire sur le système de fichiers monté avec le cryptage activé:

    sudo mkdir -p /secret/home/$USER
    sudo chown $USER:$USER /secret/home/$USER
    
  • Créez la clé dans le trousseau de clés et utilisez-la pour définir la stratégie pour le répertoire à chiffrer (la sudocommande n'est pas nécessaire ici):

    $ /usr/sbin/e4crypt add_key -S s:`cat ~/.cryptoSalt`
    Enter passphrase (echo disabled):
    Added key with descriptor [0132fed69f946c86]
    $ /usr/bin/e4crypt set_policy 0132fed69f946c86 /secret/home/$USER
    Key with descriptor [0132fed69f946c86] applies to /secret/home/theuser.
    
  • Après chaque redémarrage, la add_keycommande peut être utilisée pour définir la clé de déchiffrement du répertoire et de ses descendants:

    $ /usr/sbin/e4crypt add_key -S s:`cat ~/.cryptoSalt`
    Enter passphrase (echo disabled):
    Added key with descriptor [0132fed69f946c86]
    

    Entrez le même mot de passe que celui utilisé à l'étape précédente et vous n'aurez pas à vous souvenir de la chaîne hexadécimale du descripteur.

  • Vous pouvez également utiliser add_keydirectement. Cela utilisera un sel spécifique au système de fichiers (donc tous les dossiers sous cette partition auront le même sel)

    $ /usr/sbin/e4crypt add_key /secret/home/$USER
    Added key with descriptor [0132fed69f946c86]
    Key with descriptor [0132fed69f946c86] applies to /secret/home/theuser.
    
Daniel Glasser
la source
L'article du wiki Arch suggère de lire l'article de blog suivant, dont l'auteur a écrit un programme pour simplifier certaines étapes: blog.quarkslab.com/… Au moment de la rédaction, 16.04 est toujours en développement et a les deux configurations de noyau correspondantes options définies, e2fsprogs est toujours à la version 1.42.
LiveWireBT
Eh bien ... j'ai essayé ces instructions et mon dossier est bloqué ... sur un messagecp .. /secret/home/$USER/. j'obtiens: «cp: impossible de créer le fichier normal '/secret/home/alexis/test-top-secret-image.svg': clé requise non disponible » . Je viens de suivre vos instructions, donc je suppose que quelque chose a changé.
Alexis Wilke
La deuxième instance de " /usr/bin/e4crypt" ne contient pas le "s" dans "/ [s] bin".
Alexis Wilke
3

Linux 4.1 est livré avec une nouvelle fonctionnalité Ext4 pour crypter les répertoires d'un système de fichiers. Les clés de cryptage sont stockées dans le trousseau de clés. Pour commencer, assurez - vous que vous avez activé CONFIG_KEYSet CONFIG_EXT4_FS_ENCRYPTIONoptions du noyau et que vous avez un noyau 4.1 ou supérieur.

Tout d'abord, vous devez mettre à jour e2fsprogs à au moins la version 1.43, qui est toujours WIP au moment de la rédaction, nous devons donc le récupérer dans le référentiel git :

$ git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git

La source e4crypt a désactivé une section pertinente dans son code source, activez-la en modifiant misc / e4crypt.c et en supprimant ces deux lignes près de la ligne 714:

    printf("arg %s\n", argv[optind]);
    exit(0);

Maintenant, créez et installez de nouveaux e2fsprogs:

$ sudo apt-get install devscripts build-essential gettext texinfo pkg-config debhelper m4
$ debuild
$ sudo dpkg -i e2fsprogs_1.43-WIP_amd64.deb

Vérifiez votre version maintenant, elle devrait être 1.43-WIP:

# e2fsck -V
e2fsck 1.43-WIP (18-May-2015)
        Using EXT2FS Library version 1.43-WIP, 18-May-2015

Pour travailler avec des clés, nous devons installer le keyutilspackage:

$ sudo apt-get install keyutils

Faisons un répertoire que nous crypterons. La politique de chiffrement ne peut être définie que sur des répertoires vides:

$ sudo mkdir -p /encrypted/dir

Générez d'abord une valeur aléatoire de sel et stockez-la dans un endroit sûr:

$ head -c 16 /dev/random | xxd -p
877282f53bd0adbbef92142fc4cac459

Maintenant, générez et ajoutez une nouvelle clé dans votre trousseau de clés: cette étape doit être répétée chaque fois que vous videz votre trousseau (redémarrage)

$ sudo e4crypt -S 0x877282f53bd0adbbef92142fc4cac459
Enter passphrase (echo disabled): 
Added key with descriptor [f88747555a6115f5]

Vous connaissez maintenant un descripteur pour votre clé. Assurez-vous d'avoir ajouté une clé dans votre trousseau:

$ keyctl show
Session Keyring
1021618178 --alswrv   1000  1000  keyring: _ses
 176349519 --alsw-v   1000  1000   \_ logon: ext4:f88747555a6115f5

Presque fini. Définissez maintenant une politique de chiffrement pour un répertoire:

$ e4crypt set_policy f88747555a6115f5 /encrypted/dir

C'est tout. Si vous essayez d'accéder au disque sans ajouter de clé dans le trousseau, les noms de fichiers et leur contenu seront considérés comme du charabia chiffré. Soyez prudent en exécutant les anciennes versions de e2fsck sur votre système de fichiers - cela traitera les noms de fichiers cryptés comme non valides.

kmeaw
la source
Cette réponse présentait de graves problèmes de mise en forme. J'ai essayé de m'améliorer autant que je le pouvais, mais cela n'a pas de sens pour moi pourquoi on essaierait évidemment d'utiliser le formatage de démarque, de gérer des commandes complexes et de faire une modification similaire dans le wiki Arch en même temps, mais regardez ensuite à la poubelle rendue dans l'aperçu et décidez de le laisser tel quel. Il n'y a pas d'explication satisfaisante ni de référence supplémentaire expliquant pourquoi les lignes doivent être supprimées. De plus, il est suggéré d'utiliser debuild d'une manière qui n'est pas prévue (avec un paquet non debianisé, il y a un paquet expérimental dans Debian) et ne fonctionne pas. -1
LiveWireBT