Шифрование домашних директорий
Обновлено 12 марта 2019
Для организации защиты персональных данных вы можете зашифровать директории пользвоателя при помощи eCryptfs. eCryptfs - это файловая система, работающая "поверх" любой другой обычной ФС и прозрачно шифрующая/дешифрующая содержимое файлов. Криптографические метаданные eCryptfs хранит в заголовках каждого файла. Таким образом, можно без проблем переносить любой файл между различными системами. Всё это реализовано на уровне ядра Linux, обеспечивая хороший уровень производительности по сравнению с FUSE-шифрованием.
Принцип работы
Домашняя папка пользователя с профилем, настроенным на шифрование, содержит только символические ссылки на директории с шифрованными данными. Шифрованные данные пользователей хранятся в каталоге /home/.ecryptfs и разделены по пользователям, при этом в папке .Private хранятся данные, в .ecryptfs - информация по подключению шифрования.
При входе в сеанс /home/.ecryptfs/<логин>/.Private монтируется в домашнюю директорию. Для этого используется зашифрованный пользовательским паролем ключ /home/.ecryptfs/<логин>/.ecryptfs/wrapped-passphrase. Дальше происходят синхронизация профиля пользователя и настройка его при необходимости. При выходе из сеанса домашняя директория отключается от .Private.
Данные доменных пользователей также могут быть настроены на шифрование, при этом нужно отметить, что в шифрованном виде эти данные будут находиться на локальной машине, на сервере они находятся в незашифрованном виде. Благодаря этому обеспечивается безопасность данных в пользовательском профиле после выхода из сеанса.
Настройка профиля на шифрование
Для того, чтобы активировать данную функцию, систему нужно установить с включенным параметром "Шифровать пользовательские профили" (Crypt user profiles), либо включить переменную 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, содержащий шифрованные профили, то достаточно создать таких же пользователей с теми же паролями, и при входе в сеанс домашний каталог пользователя будет использоваться существующий шифрованный профиль.