Чи можу я створити новий 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 або пізнішої версії встановіть параметр "шифрування":
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.
cp .. /secret/home/$USER/.
отримання: «cp: не вдається створити звичайний файл» /secret/home/alexis/test-top-secret-image.svg ': обов'язковий ключ не в наявності » . Я просто дотримувався вашої інструкції, тому я думаю, що щось змінилося.
/usr/bin/e4crypt
" відсутнє "s" у "/ [s] біні".
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 у вашій файловій системі - вона вважатиме зашифровані назви файлів недійсними.