Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Не так давно, по случаю, мне достался ноутбук. Скончался от болезни человек, с которым я был в хороших отношениях. Спустя какое то время родственники приятеля начали распродавать и раздавать имущество умершего. Мне отдали ноутбук. Ноут Acer, не особо новый и не дорогой, особой ценности не представляет, отдали бесплатно. Но попросили по возможности достать оттуда данные - старые фото и видео на память. На ноутбуке установлена десятка и учетка с паролем, которого никто не знал. Делаю загрузочную флешку, цепляю съемный диск. Готово. В процессе копирования посмотрел, что еще есть на диске. Текстовые файлы с паролями, профиль браузера, какая то рабочая документация, личные заметки и т.д. Ненужно и не интересно. Фото и видео отдал родственникам. Диск отформатировал. Ноут в кладовку.
Но в процессе ковыряния ноутбука, у меня появилась мысль. А хотелось бы мне, что бы в подобной ситуации кто то, так же лазил в моем ноутбуке. Нет, мне бы очень этого не хотелось. Несмотря на то, что там нет чего-то компрометирующего и критически важного для меня и моих близких. Все равно нет. Не приятно. А с учетом того, что мой ноутбук всегда и везде со мной. То я могу его где то забыть, потерять да и банальную кражу тоже никто не отменял. И если за свой телефон и планшет по этому поводу я не переживал, все таки там биометрия и шифрование, то ноутбук давал мне повод для беспокойства. Шифрования у меня там не было.
А так как последние лет десять я сидел под ubuntu то меня заинтересовало, а как там дела с шифрованием обстоят в linux.
Сразу оговорюсь. В первую очередь меня интересовала защита от случайных людей - сотрудников сервисных центров и мастерских, мамкиных хакеров и различных домашних аникейщиков. У меня нет задачи противостоять сотрудникам спецслужб, международным криминальным организациям и специалистам по криптографии. До этого, два раза, у меня был лайтовый опыт общения со следователями по уголовным делам и по этому, на свой счет, я иллюзий не испытываю.
У меня установлена ubuntu 22.04 и все манипуляции я проводил на ней. Но я думаю, что эта инструкция подойдет и к любым другим дистрибутивам. Каких то специфических, дистрибутив зависимых вещей там нет.
Итак, начал разбираться. Основной способ шифрования который сейчас предлагает при установке ubuntu и другие, это шифрование всего диска с помощью LUKS + LVM. Мне он не подошел. Во первых я не хотел переустанавливать ОС и во вторых я не хотел целиком шифровать весь диск. Для меня это слишком избыточный метод, я хотел шифровать только свою домашнюю папку. Хотя я знаю, что сейчас это наиболее правильный метод для защиты данных.
Далее по популярности шло использование eCryptFS. Этот способ до 2018 года тоже предлагался в ubuntu при установке. Затем Canonical по различным причинам отказался от него. На данный момент проект то ли поддерживается, то ли не поддерживается. До конца я так и не понял.
Поэтому я решил использовать fscrypt. Нативный метод шифрования для ext4. Разрабатывается и поддерживается google, используется в chromeOS и Android для шифрования. Ну, что еще надо.
Поверхностное гугление выдало пару инструкций. Но судя по комментариям после одной из них компьютер уходил в цикличную перезагрузку, ну а вторая просто не работала. Пришлось идти на гитхаб проекта и читать документацию.
Итак, если вы хотите зашифровать свою домашнюю папку с помощью fscrypt на уже установленной операционке с файловой системой ext4:
Включаем флаг шифрования на вашем устройстве
tune2fs -O encrypt /dev/ваш диск
Устанавливаем инструменты для управления fscrypt и PAM модуль
apt install fscrypt libpam-fscrypt
Создаем нового пользователя (например user1) и включаем его в группу sudo. Так как мы далее будем проводить манипуляции с нашей домашней папкой, то делать это лучше всего из под другого пользователя. Завершаем сеанс нашего основного пользователя (например user0) и заходим нашим новым пользователем (user1). Дальше все действия выполняем под ним.
Настраиваем fscrypt
user1@laptop:# sudo fscrypt setup
будет создан конфигурационный файл
Created global config file at "/etc/fscrypt.conf".
и файл метаданных
Metadata directories created at "/.fscrypt"
на запрос создания файла метаданных в корне ./ нажимаем Y
5. Создаем новую домашнюю папку user0-new
user1@laptop:# sudo mkdir /home/user0-new
Включаем шифрование этой папки
user1@laptop:# sudo fscrypt encrypt /home/user0-new --user=user0(ваш основной пользователь)
В появившемся диалоге выбираем 1. Т.е для дешифровки папки будет использоваться ваш пароль для логина в системе. И вводим пароль вашего основного пользователя(user0)
The following protector sources are available:
1 - Your login passphrase (pam_passphrase)
2 - A custom passphrase (custom_passphrase)
3 - A raw 256-bit key (raw_key)
Enter the source number for the new protector [2 - custom_passphrase]: 1
IMPORTANT: Before continuing, ensure you have properly set up your system for
login protectors. See
https://github.com/google/fscrypt#setting-up-for-login-protectors
Enter login passphrase for user0:
"user0-new" is now encrypted, unlocked, and ready for use.
Все папка создана и зашифрована. Теперь копируем в нее все данные из старой домашней папки
user1@laptop:#sudo cp -a -T /home/user0 /home/user0-new
Переименовываем старую домашнюю папку
user1@laptop:# sudo mv user0 user0.backup
Переименовываем новую шифрованную домашнюю папку
user1@laptop:# sudo mv user0-new user0
Все готово. Перезагружаемся и заходим вашим основным пользователем (user0). Если все нормально, то удаляем нового пользователя и папку с бекапом (user0.backup).