Содержание
Для создания зашифрованного тома Ecryptfs необходимо использовать пользовательские утилиты из пакета ecryptfs-utils.
Порядок создания зашифрованного раздела следующий:
1. Загрузить модуль ядра ecryptfs
modprobe ecryptfs
или создать файл ecryptfs.conf в /etc/modprobe.d/, добавив в него имя загружаемого модуля (ecryptfs). Во втором случае, модуль загрузится автоматически при следующем запуске.
2. Сгенерировать случайный пароль монтирования
3. Придумать пароль для контейнера
4. Упаковать пароль монтирования в криптографический контейнер
ecryptfs-wrap-passphrase $HOME/.ecryptfs/wrapped_passphrase "mount_passphrase\nwrapping_passphrase"
Контейнер будет содержаться в файле и в дальнейшем будет использован при монтировании зашифрованного тома.
5. Добавить пароль монтирования в ключницу
ecryptfs-insert-wrapped-passphrase-into-keyring $HOME/.ecryptfs/wrapped_passphrase wrapping_passphrase
По окончанию данной операции на экран будет выведена подпись ключа монтирования. Впоследствии она будет использоваться в конфигурационных файлах вместо пароля.
Получить значение подписи ключа монтирования можно в любой момент командой keyctl list @u
.
6. Создать каталог зашифрованных файлов
mkdir -m 700 .data-lower
7. Создать каталог доступа
mkdir -m 500 .data-upper
Файлы станут доступны после монтирования зашифрованного тома.
8. Добавить в /etc/fstab следующее
/home/user/.data-lower /home/user/.data-upper ecryptfs noauto,user,ecryptfs_sig=16242358f0079dd6,ecryptfs_fnek_sig=16242358f0079dd6,ecryptfs_cipher=blowfish,ecryptfs_key_bytes=32,ecryptfs_unlink_sigs 0 0
noauto: не монтировать том автоматически; без этой опции systemd попытается смонтировать том при загрузке и вернет ошибку, т. к. зашифрованные тома монтируются вручную;
user: разрешить пользователю монтировать том;
ecryptfs_sig: подпись ключа монтирования;
ecrypts_fnek_sig: „filename encryption key signature“, подпись ключа для шифрования файловых имен;
ecryptfs_cipher: алгоритм шифрования;
ecryptfs_key_bytes: размер ключа шифрования;
ecryptfs_unlink_sigs: удалять пароль монтирования из ключницы при размонтировании тома.
9. Смонтировать том
mount -i ~/.data-upper
При выполнении данной команды пароль монтирования должен находиться в ключнице.
Файлы, добавляемые в каталог ~/.data-upper, будут зашифрованы и добавлены в каталог ~/.data-lower. При размонтировании ~/.data-upper, все файлы из него исчезнут, но их зашифрованные дубликаты останутся в ~/.data-lower.
10. Размонтировать том
umount ~/.data-upper
Пароль монтирования будет удален из ключницы и потребует повторного добавления при последующем монтировании тома.
Глоссарий
mount passphrase
пароль монтирования
stacked cryptographic file system
файловая система, устанавливаемая поверх уже существующей
wrapped passphrase
упакованный пароль
wrapping passphrase
пароль упаковщика
Инструментарий
ecryptfs-utils набор утилит для работы с Ecryptfs
ecryptfs-wrap-passphrase упаковщик пароля монтирвания
# упаковать пароль монтирования
printf "%s\n%s" "mount_passphrase" "wrapping_passphrase" | ecryptfs-wrap-passphrase $HOME/.ecryptfs/wrpapped-passphrase -
keyctl менеджер ключей
# показать пароли, хранимые в ключнице
keyctl list @u
keyutils набор утилит для работы с ключницей
lsmod средство отображения информации о загруженных модулях ядра
# перечислить загруженные модули; отфильтровать по маске; отсортировать по алфавиту
lsmod | grep ecryptfs | sort
modinfo средство отображения информации о модуле ядра
# показать информацию о модуле ecryptfs
modinfo ecryptfs
modprobe средство загрузки модулей ядра
# загрузить модуль ecryptfs
modprobe ecryptfs
Файлы
/usr/share/doc/ecryptfs-utils/README
файл с инструкцией по работе с системой шифрования
/etc/fstab
файл с перечнем информации о файловых системах, которые могут быть смонтированы, и их настройках
/etc/mtab mounted file systems table
файл со списком смонтированных файловых систем и настроек монтирования