То, как создать ext4, зашифровало раздел на Ubuntu 15.04 с новыми 4,1 ядрами?

Я могу создать новое ext4 зашифрованный раздел с ядром 4.1 на Ubuntu 15.04?

9
задан 2 July 2015 в 12:27

2 ответа

Linux 4.1 идет с новой функцией Ext4 для шифрования каталогов файловой системы. Ключи шифрования хранятся в брелоке для ключей. Для начала работы удостоверьтесь, что Вы включили CONFIG_KEYS и CONFIG_EXT4_FS_ENCRYPTION опции ядра, и у Вас есть ядро 4.1 или выше.

, В первую очередь, необходимо обновить e2fsprogs, по крайней мере, к версии 1.43, которая является все еще WIP во время записи, таким образом, мы должны выбрать его от репозиторий мерзавца :

$ 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 в Вашей файловой системе - это будет рассматривать зашифрованные имена файлов как недопустимые.

3
ответ дан 23 November 2019 в 05:00

Прежде всего правовая оговорка: я не сделал, это с Ubuntu, но на машине с Debian "Фрагмент" установило использование пользовательского 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 или позже, устанавливает "зашифровать" опцию:

    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.
    
8
ответ дан 23 November 2019 в 05:00

Другие вопросы по тегам:

Похожие вопросы: