Як створити зашифрований розділ ext4 на Ubuntu 15.04 з новим ядром 4.1?


11

Чи можу я створити новий ext4зашифрований розділ з ядром 4.1 на Ubuntu 15.04?



Це не дублікат, оскільки жодна з існуючих відповідей не стосується конкретної функції, доданої в ядрі 4.1, посилання: phoronix.com/…
LiveWireBT

Відповіді:


9

По-перше, відмова від відповідальності: я цього не робив з 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 або пізнішої версії встановіть параметр "шифрування":

    sudo tune2fs -O encrypt /dev/sda4
    
  • Змонтуйте або перезавантажте файлову систему, щоб ядро ​​знало про зміни (можливо, це автоматично, але я це робив лише на окремому розділі, тому я не впевнений.)

  • Створіть каталог у файловій системі, який змонтований із включеним шифруванням:

    sudo mkdir -p /secret/home/$USER
    sudo chown $USER:$USER /secret/home/$USER
    
  • Створіть ключ у keyring і використовуйте його для встановлення політики для каталогу, який повинен бути зашифрований ( 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.
    

У статті у Вікі Arch пропонується прочитати наступну публікацію в блозі, автор якої написав програму для спрощення деяких кроків: blog.quarkslab.com/… На момент написання 16.04 ще розробляється і має дві відповідні конфігурації ядра. параметри встановлені, хоча e2fsprogs все ще знаходиться у версії 1.42.
LiveWireBT

Ну ... Я спробував ці вказівки, і моя папка заблокована ... під час cp .. /secret/home/$USER/.отримання: «cp: не вдається створити звичайний файл» /secret/home/alexis/test-top-secret-image.svg ': обов'язковий ключ не в наявності » . Я просто дотримувався вашої інструкції, тому я думаю, що щось змінилося.
Алексіс Вілке

У другому екземплярі " /usr/bin/e4crypt" відсутнє "s" у "/ [s] біні".
Алексіс Вілке

3

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 у вашій файловій системі - вона вважатиме зашифровані назви файлів недійсними.


Ця відповідь мала серйозні проблеми із форматуванням. Я намагався вдосконалитись, наскільки це міг, але це не має сенсу для мене, чому явно намагаються використовувати форматування розмітки, обробляти складні команди, а також одночасно робити аналогічне редагування у вікі Arch, але потім дивіться на смітнику, поданому в попередньому перегляді, і вирішити залишити його таким, яким він є. Немає задовольняючих пояснень та подальших посилань, чому лінії потрібно видалити. Далі пропонується використовувати debuild так, як це не було призначено (з недебіанізованим пакетом, в Debian є експериментальний пакет) і він не працює. -1
LiveWireBT
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.