4. Шифрование домашних директорий

Начиная с версии 13.6 в Calculate Linux появилась возможность использовать шифрованные домашние директории. Для организации защиты персональных данных используется eCryptfs - файловая система, работающая «поверх» любой другой обычной ФС и прозрачно шифрующая/дешифрующая содержимое файлов. Криптографические метаданные eCryptfs хранит в заголовках каждого файла, таким образом, можно без проблем переносить любой файл между различными системами. Всё это реализовано на уровне ядра Linux, обеспечивая хороший уровень производительности по сравнению с FUSE-шифрованием.

Принцип работы

Домашняя папка пользователя с профилем, настроенным на шифрование, содержит только символические ссылки на директории с шифрованными данными. Шифрованные данные пользователей хранятся в каталоге /home/.ecryptfs и разделены по пользователям, при этом в папке .Private хранятся данные, в .ecryptfs - информация по подключению шифрования.

При входе в сеанс /home/.ecryptfs/имя_пользователя/.Private монтируется в домашнюю директорию. Для этого используется зашифрованный пользовательским паролем ключ: /home/.ecryptfs/имя_пользователя/.ecryptfs/wrapped-passphrase. Дальше происходят синхронизация профиля пользователя и настройка его при необходимости.

При выходе из сеанса домашняя директория отключается от .Private.

Данные доменных пользователей также могут быть настроены на шифрование, при этом нужно отметить, что в шифрованном виде эти данные будут находиться на локальной машине, на сервере они находятся в незашифрованном виде. Таким образом обеспечивается безопасность данных, оставленных в пользовательском профиле после выхода из сеанса.

Настройка профиля на шифрование

Для того, чтобы активировать данную функцию, систему нужно установить с включенным параметром "Шифровать пользовательские профили" (Crypt user profiles), либо включить переменную main.cl_home_crypt_set в уже установленной системе.

cl-core-variables --set main.cl_home_crypt_set=on

Шифрование будет настроено только для новых пользователей (тех, у которых нет домашней директории). Включить шифрование для существующего профиля можно при помощи команды ecryptfs-migrate-home.

ecryptfs-migrate-home -u <имя_пользователя>
Команда запросит пароль пользователя.

Для доменных пользователей будет достаточно удалить локальный профиль, когда он не в сеансе, и после этого войти в сеанс.

Стоит отметить, что на настроенный пользовательский профиль значение переменной cl_home_crypt_set не влияет, то есть если профиль был настроен на шифрование, а система была установлена без шифрования, профиль будет продолжать работать с шифрованием, и наоборот.

Как восстановить данные

Если в /home остался только каталог .ecryptfs, содержащий шифрованные профили, то достаточно создать таких же пользователей с теми же паролями, и при входе в сеанс домашний каталог пользователя будет использоваться существующий шифрованный профиль.

Спасибо!