Шифрование домашней папки с помощью ecryptfs-utils

Материал из База знаний проекта Russian Fedora

Перейти к: навигация, поиск

Содержание

Введение

Шифрование домашней папки полезно, если вы опасаетесь за сохранение конфиденциальности вашей информации. Наряду с существованием других методов защиты информации, таких, как стеганография, удаленное хранение, экстренное уничтожение инфорации, крпитографические методы являются тем фундаментом, без которого невозможно говорить о защищённости информации.

Существует множество надёжных способов обеспечить шифрование пользовательских данных. В Fedora на настоящий момент простейшим способом создать зашифрованный раздел является Дисковой утилиты (palimpsest), которая при форматировании раздела в некоторые файловые системы (например, Ext4), позволяет зашифровать их с использованием пароля. После этого, по загрузке окружения рабочего стола, у вас будет запрошен пароль, после удачной авторизации зашифрованный раздел станет доступен. Такой способ имеет недостатки:

В то же время, для Ubuntu уже на протяжении нескольких лет развивается пакет скриптов ecryptfs-utils, работающий с файловой системой ecryptfs, шифрующей не блочные устройства (например, разделы), а файлы. Первое очевидное преимущество - не нужно пытаться угадать размер создаваемого криптоконтейнера, он будет меняться по мере его заполнения информацией. Остальные преимущества вытекают из функционала самого пакета ecryptfs-utils. Хорошие люди перенесли этот пакет в Fedora, так что теперь пользователи самого передового дистрибутива могут спать спокойно.

В рамках данной статьи нас интересует полное шифрование домашней папки пользователя, что позволит нам иметь зашифрованными как настройки и логи пользовательских программ, так и все пользовательские данные. При этом доступ к этой информации открывается автоматически при логоне, на практике пользователь не почувствует никакой разницы между работой в зашифрованной и незашифрованной папках (за исключением незначительной потери в быстродействии).

Превращение папки пользователя в зашифрованную

Итак, что же необходимо для этого?

  1. Убедиться, что ошибка c багзиллы Редхата исправлена. Если это не так - отключить SElinux. В противном случае после перелогона все зашифрованные данные будут утеряны (однако, к счастью, исходная информация предусмотрительно сохраняется в папке /home/user.xxxx. Здесь и далее user - имя пользователя, а xxxx - случайно сгенерированная последовательность символов.
  2. Убедиться, что в разделе, на котором хранится /home/user, достаточно места для создания его резервной копии (его нужно как минимум столько же, сколько занимает исходная папка).
  3. Выйти из сеанса пользователя, произвести логон под рутом (желательно в консольном режиме).
  4. Установить ecryptfs-utils:
    yum install ecryptfs-utils
  5. Пользователя, чью домашнюю папку планируется зашифровать, необходимо добавить в группу ecryptfs:
    usermod -a -G ecryptfs user
  6. Запустить скрипт шифрования домашней папки:
    ecryptfs-migrate-home -u user
    На данном этапе скрипт проверит, нет ли занятых файлов файлов, если такие обнаружатся - проще всего перезагрузить систему и сразу выполнить логон рутом, после чего повторить данный пункт. После окончания выполнения скрипта в папке /home/user будут служебные файлы ecryptfs, в том числе - файл, содержащий зашифрованную папку. Бэкап будет в папке /home/user.xxxx, как говорилось выше.
  7. Не перезагружаясь:
    • произвести логон пользователем (из root выходить пока не надо);<ref>Если вы в консоли, то для этого можно переключиться во вторую консоль по Alt-F2, там залогиниться под зашифрованным пользователем. Переключиться обратно на root можно по Alt-F1</ref>
    • проверить доступность файлов, права на чтение/запись;
    • выполнить
    ecryptfs-unwrap-passphrase
    введя пароль пользователя, результат (нечто вроде c1d36714f79950fce5737aa17900d1ec) сохранить в виде текстового файла надёжном месте (не в зашифрованной папке пользователя!!!), в случае чего с помощью команды ecryptfs-wrap-passphrase можно будет восстановить ключ шифрования папки;
    • сохранить в надёжном месте файлы /dev/shm/.ecryptfs-user и /home/.ecryptfs/user/.ecryptfs/wrapped-passphrase (если последнего нет, его можно восстановить, как описано в предыдущем пункте);
  8. перезагрузиться, произвести логон пользователем, убедиться, что всё работает.
  9. Наслаждаемся работой. Обязательно делаем резервные копии важной информации. Их тоже можно и нужно шифровать.

Изменение пароля пользователя

Дописать раздел

Скорая помощь

Если что-то у вас пошло не так, вопросы можно задать на fedora@conference.jabber.ru (на русском) и #ecryptfs@irc.oftc.net (на английском).

Примечания

<references />