Вопрос или проблема
Я читал, что формат f2fs подходит для SSD-накопителей, поэтому я отформатировал один из своих дисков с его помощью. Также я читал в некоторых заметках ядра, что в него добавлено шифрование, но документации на этот счет нет. Обычно я предпочитаю шифрование всего диска. Не уверен, возможно ли это для f2fs.
Интересно, знает ли кто-нибудь шаги, которые я мог бы предпринять для шифрования диска f2fs. Я знаю, что это делается на Android для их полного шифрования диска (я использую Ubuntu). Является ли LUKS независимым от файловой системы? Думаю, что нет. Любое шифрование было бы полезно.
Нет документации == нет пользы.
Вот ссылка на обновления ядра: http://lkml.iu.edu/hypermail/linux/kernel/1506.3/00598.html
Из man-страницы f2fscrypt:
# mkfs.f2fs -O encrypt /dev/sdxx
# mount /dev/sdxx /encrypted/
# mkdir /encrypted/dir
Сначала создайте ключ в keyring, используя простой соль (или сгенерируйте случайную соль). Затем используйте его для установки политики для шифруемого каталога.
# f2fscrypt add_key -S 0x1234
Введите пароль (ввод отключен):
Добавлен ключ с дескриптором [28e21cc0c4393da1]
# f2fscrypt set_policy 28e21cc0c4393da1 /encrypted/dir
Ключ с дескриптором [28e21cc0c4393da1] применен к /encrypted/dir.
# touch /encrypted/dir/test.txt
# ls -l /encrypted/dir/
-rw-r--r--. 1 root root 0 Мар 5 21:41 test.txt
После каждой перезагрузки та же команда может быть использована для установки ключа для расшифровки каталога и его потомков.
# ls -l /encrypted/dir/
-rw-r--r--. 1 root root 0 Мар 5 21:41 zbx7tsUEMLzh+AUVMkQcnB
# f2fscrypt get_policy /encrypted/dir/
/encrypted/dir/: 28e21cc0c4393da1
# f2fscrypt add_key -S 0x1234
Введите пароль (ввод отключен):
Добавлен ключ с дескриптором [28e21cc0c4393da1]
# ls -l /encrypted/dir/
-rw-r--r--. 1 root root 0 Мар 5 21:41 test.txt
Показать процесс keyrings.
# keyctl show
Session Keyring
084022412 --alswrv 0 0 keyring: _ses
204615789 --alswrv 0 65534 \_ keyring: _uid.0
529474961 --alsw-v 0 0 \_ logon: f2fs:28e21cc0c4393da1
Рассмотрение вопроса о реализации этого на этапе загрузки
Как установить дистрибутивы Linux на базе Ubuntu на самом инновационном файловом системе F2FS с шифрованием LUKS2?
Это руководство работает с дистрибутивами на базе Ubuntu с
установщиком Calamares; например, Lubuntu, Kubuntu, KDE neon.
SolydXK — это единственный дистрибутив на базе Debian с полностью графической поддержкой установки на файловую систему F2FS (Flash-Friendly File System) с поддержкой шифрования LUKS. Он удобен для пользователей.
SolydXK имеет очень хорошую поддержку на самом инновационном файловом системе F2FS (Flash-Friendly File System).
F2FS — это самая инновационная файловая система со специализацией для ПК и ноутбуков с SSD.
LUKS является независимым от файловой системы. Он работает на более низком уровне, чем файловая система. LUKS — это способ, которым Android выполняет шифрование всего диска.
Ответ или решение
Файловая система F2FS (Flash-Friendly File System) была разработана специально для эффективной работы с твердотельными накопителями (SSD). Пришелец из мира разработки ОС Android, F2FS стала очень популярной среди пользователей Linux благодаря её оптимизации работы с флэш-памятью. Для повышения безопасности данных на таких устройствах имеет смысл использовать шифрование. У вас на руках твердотельный диск, отформатированный в F2FS, и возникает вопрос: как именно организовать его шифрование?
Теория
Прежде всего, необходимо понять уровень, на котором происходит шифрование. В мире Linux шифрование может выполняться на нескольких уровнях:
-
Полное шифрование диска/раздела осуществляется программой LUKS (Linux Unified Key Setup). Этот метод не зависит от файловой системы и действует на уровне блочного устройства, создавая криптоконтейнер, поверх которого уже монтируется файловая система. Это делает LUKS независимым от типа файловой системы, будь то EXT4, F2FS или любая другая.
-
Шифрование на уровне файловой системы предусматривает шифрование данных на уровне файлов и каталогов. Это может предложить более гибкую настройку и управление, но требует поддержки со стороны конкретной файловой системы. Для F2FS такая возможность реализована через f2fscrypt.
Пример
Вот пошаговая инструкция по шифрованию на уровне файловой системы F2FS:
-
Создайте файловую систему F2FS с поддержкой шифрования:
mkfs.f2fs -O encrypt /dev/sdxx
Параметр
-O encrypt
включает поддержку шифрования. -
Смонтируйте раздел:
mount /dev/sdxx /encrypted/
-
Создайте каталог для хранения данных:
mkdir /encrypted/dir
-
Добавьте ключ в keyring:
Используйте
f2fscrypt
для добавления ключа:f2fscrypt add_key -S 0x1234
Введите пароль по запросу системы. После успешного добавления ключа вы получите уникальный дескриптор ключа.
-
Установите политику шифрования для каталога:
f2fscrypt set_policy <дескриптор_ключа> /encrypted/dir
Используйте ранее полученный дескриптор ключа вместо
<дескриптор_ключа>
. -
Проверьте работу:
Создайте файл в зашифрованном каталоге:
touch /encrypted/dir/test.txt
Убедитесь, что файл видно только после активации ключа:
f2fscrypt add_key -S 0x1234
Применение
Невзирая на ряд сложностей в установке и настройке, шифрование на уровне файловой системы может быть полезным для пользователей, которым требуется гибкость управления доступом к конкретным файлам и каталогам. Это важный аспект для тех, кто работает с конфиденциальными данными и нуждается в многопользовательской среде с дифференцированными правами доступа.
В то же время, если ваша цель — шифрование всего устройства с минимальными настройками, то LUKS предложит более простое решение. Вы можете использовать LUKS для создания зашифрованного контейнера и работать с вашей F2FS через него, получая все преимущества одной из самых современных и оптимизированных для флэш-памяти файловых систем.
Однако стоит учитывать, что применение LUKS будет несколько сложнее при работе с загрузочными разделами, и может потребоваться дополнительная настройка системы для полноценного использования зашифрованного контейнера на этапе загрузки.
В заключение, выбор метода шифрования должен зависеть от конкретных задач и требований. F2FS предлагает хорошие возможности для шифрования на уровне файловой системы, в то время как LUKS подойдет для сценариев с необходимостью полного шифрования устройства оставаясь при этом файлово-системно-агностичным решением.