Могу ли я создать новый ext4
зашифрованный раздел с ядром 4.1 в Ubuntu 15.04?
Могу ли я создать новый ext4
зашифрованный раздел с ядром 4.1 в Ubuntu 15.04?
Ответы:
Прежде всего, отказ от ответственности: я делал это не с Ubuntu, а на машине с установленным Debian «Stretch», используя собственное ядро Linux 4.2.3, на котором я включил EXT4_FS_ENCRYPTION
.
Инструкции, данные kmeaw , не работают для меня точно так, как опубликовано. Несколько вещей были опущены (параметры командной строки и шаги).
e2fsprogs
как показано вышеСоздайте свою случайную соль. Я использовал следующее, чтобы сохранить его в «безопасном месте»:
head -c 16 /dev/urandom | xxd -p >~/tmp-salt.txt
echo 0x`cat ~/tmp-salt.txt` >~/.cryptoSalt
Чтобы использовать шифрование ext4 в файловой системе, в суперблоке должен быть установлен флаг «шифровать». Это не значение по умолчанию при создании файловой системы ext4. Используя утилиту "tune2fs" из e2fsprogs 1.43 или более поздней версии, установите параметр "encrypt":
sudo tune2fs -O encrypt /dev/sda4
Смонтируйте или перемонтируйте файловую систему, чтобы ядро знало об изменениях (возможно, это происходит автоматически, но я сделал это только на отдельном разделе, поэтому я не уверен).
Создайте каталог в файловой системе, которая монтируется с включенным шифрованием:
sudo mkdir -p /secret/home/$USER
sudo chown $USER:$USER /secret/home/$USER
Создайте ключ в связке ключей и используйте его для установки политики шифрования каталога (здесь sudo
команда не нужна):
$ /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.
После каждой перезагрузки add_key
можно использовать команду установки ключа для расшифровки каталога и его потомков:
$ /usr/sbin/e4crypt add_key -S s:`cat ~/.cryptoSalt`
Enter passphrase (echo disabled):
Added key with descriptor [0132fed69f946c86]
Введите тот же пароль, который использовался на предыдущем шаге, и вам не нужно запоминать шестнадцатеричную строку дескриптора.
Вы также можете использовать add_key
напрямую. При этом будет использоваться соль, специфичная для файловой системы (поэтому все папки в этом разделе будут иметь одинаковую соль)
$ /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/.
я получаю: «cp: не может создать обычный файл '/secret/home/alexis/test-top-secret-image.svg': требуемый ключ отсутствует доступно » . Я просто следовал твоим инструкциям, так что думаю что-то изменилось.
/usr/bin/e4crypt
" отсутствует "s" в "/ [s] bin".
Linux 4.1 поставляется с новой функцией Ext4 для шифрования каталогов файловой системы. Ключи шифрования хранятся в связке ключей. Для начала, убедитесь , что вы включили CONFIG_KEYS
и CONFIG_EXT4_FS_ENCRYPTION
параметры ядра и у вас есть ядро 4.1 или выше.
Прежде всего, вам необходимо обновить e2fsprogs по крайней мере до версии 1.43, которая на момент написания статьи еще была WIP, поэтому нам нужно извлечь ее из репозитория git :
$ git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
Исходный код e4crypt отключил соответствующий раздел в своем исходном коде, включите его, отредактировав misc / e4crypt.c и удалив эти две строки рядом со строкой 714:
printf("arg %s\n", argv[optind]);
exit(0);
Теперь соберите и установите новые e2fsprogs:
$ sudo apt-get install devscripts build-essential gettext texinfo pkg-config debhelper m4
$ debuild
$ sudo dpkg -i e2fsprogs_1.43-WIP_amd64.deb
Проверьте вашу версию сейчас, она должна быть 1.43-WIP:
# e2fsck -V
e2fsck 1.43-WIP (18-May-2015)
Using EXT2FS Library version 1.43-WIP, 18-May-2015
Для работы с ключами нам необходимо установить keyutils
пакет:
$ sudo apt-get install keyutils
Давайте создадим каталог, который мы будем шифровать. Политика шифрования может быть установлена только для пустых каталогов:
$ sudo mkdir -p /encrypted/dir
Сначала сгенерируйте случайное значение соли и сохраните его в безопасном месте:
$ head -c 16 /dev/random | xxd -p
877282f53bd0adbbef92142fc4cac459
Теперь сгенерируйте и добавьте новый ключ в вашу связку ключей: этот шаг следует повторять каждый раз, когда вы очищаете свою цепочку для ключей (перезагрузка)
$ sudo e4crypt -S 0x877282f53bd0adbbef92142fc4cac459
Enter passphrase (echo disabled):
Added key with descriptor [f88747555a6115f5]
Теперь вы знаете дескриптор вашего ключа. Убедитесь, что вы добавили ключ в свою цепочку для ключей:
$ keyctl show
Session Keyring
1021618178 --alswrv 1000 1000 keyring: _ses
176349519 --alsw-v 1000 1000 \_ logon: ext4:f88747555a6115f5
Почти готово. Теперь установите политику шифрования для каталога:
$ e4crypt set_policy f88747555a6115f5 /encrypted/dir
Это все. Если вы попытаетесь получить доступ к диску без добавления ключа в цепочку для ключей, имена файлов и их содержимое будут рассматриваться как зашифрованный бред. Будьте осторожны при запуске старых версий e2fsck в вашей файловой системе - зашифрованные имена файлов будут считаться недействительными.