Puis-je créer une nouvelle ext4
partition chiffrée avec le noyau 4.1 sur Ubuntu 15.04?
Puis-je créer une nouvelle ext4
partition chiffrée avec le noyau 4.1 sur Ubuntu 15.04?
Réponses:
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).
e2fsprogs
à jour comme indiqué ci-dessusGé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 sudo
commande 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_key
commande 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_key
directement. 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.
cp .. /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é.
/usr/bin/e4crypt
" ne contient pas le "s" dans "/ [s] bin".
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_KEYS
et CONFIG_EXT4_FS_ENCRYPTION
options 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 keyutils
package:
$ 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.