Ecryptfs ubuntu примонтировать зашифрованную домашнюю папку

Обновлено: 04.07.2024

Сейчас таких сервисов уже десятки, и народ их активно использует. А что же делать нам, дорогие единомышленники-параноики :) да так чтоб и удобство работы не страдало, и приватность блюлась? Решение есть, и оно, как выяснилось, не ново — хранить в онлайне файлы, зашифрованные eCryptfs.

Речь пойдёт про Linux. Преимущественно про Ubuntu и Ubuntu One…


Если вкратце — eCryptfs оперирует с двумя директориями: в одной из них лежат зашифрованные файлы (все шифруются одиним ключом) с опционально зашифрованными названиями, в другой, которая становится доступной после монтирования, лежат сами исходные файлы. На каждый исходный файл — один зашифрованный. Всё просто.
Дальше нужно расшарить через онлайн-хранилище директорию с зашифрованными файлами, и сделать так, чтоб на всех компьютерах, участвующих в синхронизации, были одинаковые ключи для монтирования.

Ubuntu при установке предлагает опцию шифрования домашней директории, при включении которой все пользовательские файлы в зашифрованном виде лежат в /home/.ecryptfs, а содержимое домашних директорий монтируется при логине.
На первый взгляд кажется, что можно расшарить в Ubuntu One /home/.ecryptfs и дело с концом. Как бы не так.
Во-первых: приватный ключ генерируется сам (то есть на всех компьютерах он будет разный).
Во-вторых: в точности синхронизировать полностью все пользовательские директории вряд ли кому-то надо.
В-третьих: использовать этот вид шифрования — не самая удачная идея. Дело в том, что ecryptfs при шифровании названий файлов несколько увеличивает их длину, и некторые, и без того длинные, упираются в лимит файловой системы (256 байт для ext4fs).

Тем не менее в Ubuntu есть другое, не менее удобное решение: программа ecryptfs-setup-private, которая всего в 3 вопроса создаст директорию для зашифрованных файлов

/.Private и директорию для исходных файлов

/Private, автоматически монтируемую при логине.


На вопрос «Enter your login passphrase» нужно ввести пароль на вход в систему — это нужно для автомонтирования.
На вопрос «Enter your mount passphrase» надо ввести пароль для шифрования (одинаковый на всех компьютерах, участвующих в синхронизации).
Потом перелогиниться и расшарить

/.Private. И всё, можно спать спокойно. Этим способом пользуюсь я, расшаривая файлы через Ubuntu One.

Теперь альтернативный способ для тех, у кого нет ecryptfs-setup-private, кому нужна подстройка под собственные нужды, или у кого директория

/[\.]Private уже занята.

Допустим, новая пара директорий будет называться

/Storage.
Итак:
На всех компьютерах, участвующих в синхронизации создаём нужные директории:


На одном из компьютеров делаем первое монтирование:

Спросит «passphrase» — вводим пароль для шифрования (одинаковый на всех компьютерах),
Спросит «Filename Encryption Key (FNEK) Signature» — вводим пароль для шифрования названий (одинаковый на всех компьютерах),
Выдаст примерно такое:

Запоминаем сигнатуры.
Скажет, что с таким паролем диск ещё не монтировался, и спросит подтверждение — скажем «yes»,
Спросит, добавить ли сигнатуру, дабы не спрашивать подтверждения в следующий раз — «yes».

Теперь, используя полученные сигнатуры и пароль, составим полную команду целиком, которая будет выполняться ничего не спрашивая:

Остаётся положить её в какой-нибудь файлик, и запускать при старте. Ну и конечно расшарить

1. Установка необходимых программ и подключение диска.

Сначала установим программы для работы с зашифрованными директориями:

sudo apt-get install ecryptfs-utils

Затем подключим диск с зашифрованной домашней директорией к другому компьютеру, например, через USB переходник. Создадим новую директорию и примонтируем в неё раздел с домашней директорией:

Если у вас настроено автомонтирование USB устройств, то путь к разделу с файлами может иметь вид, похожий на /media/disk-1 или /media/f4dc6dc1-52a1-488e в зависимости от настроек.

Также создадим директорию, куда мы будем монтировать зашифрованные файлы:

Чтобы получить доступ к зашифрованным файлам на другом компьютере, вам понадобится знать «mount passphrase» — пароль монтирования зашифрованной домашней директории, который выдаётся сразу после установки системы и должен быть у вас записан. Также его можно узнать подключив обратно в старую систему диск и выполнив команду:

Если пароль «mount passphrase» у вас есть, можете переходить к разделу 3. Если же вы забыли его записать, то этот пароль можно восстановить при помощи пароля, который вы использовали для входа в систему, так называемый «login password».

2. Восстановление пароля «mount passphrase».

Чтобы восстановить «mount passphrase» введите с консоли:

ecryptfs-unwrap-passphrase /media/newdisk/home/.ecryptfs/your_username/.ecryptfs/wrapped-passphrasePassphrase: тут введите ваш «login password»913705d92e3ab77e1afe6ca9e86063df

Последняя строка, это и есть ваш пароль «mount passphrase». Запишите его или скопируйте в файл, он вам понадобится дальше.

3. Монтирование зашифрованной домашней директории.

Нам понадобится специальная сигнатура, которая будет использоваться для дешифрации имён файлов. Чтобы её создать, введите:

sudo ecryptfs-add-passphrase ––fnek
[sudo] password for username: ваш «sudo password» в текущей системе
Passphrase: «mount passphrase» полученный выше
Inserted auth tok with sig [a1bf310167c695ff] into the user session keyring
Inserted auth tok with sig [6f7a931eeb9b3e4c] into the user session keyring

Сигнатура которая нам нужна и которую мы будем вводить ниже, находится во вторых квадратных скобках: 6f7a931eeb9b3e4c

Теперь у нас есть все необходимые данные и мы может монтировать зашифрованную домашнюю директорию:

sudo mount -t ecryptfs /media/newdisk/home/.ecryptfs/your_username/.Private/ /media/olddisk/Passphrase: «mount passphrase»
Select cipher:
1) aes: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
2) blowfish: blocksize = 16; min keysize = 16; max keysize = 56 (not loaded)
3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24 (not loaded)
4) twofish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
5) cast6: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
6) cast5: blocksize = 8; min keysize = 5; max keysize = 16 (not loaded)
Selection [aes]: aes
Select key bytes:
1) 16
2) 32
3) 24
Selection [16]: 16
Enable plaintext passthrough (y/n) [n]: n
Enable filename encryption (y/n) [n]: y
Filename Encryption Key (FNEK) Signature [a1bf310167c695ff]:6f7a931eeb9b3e4c
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_fnek_sig=6f7a931eeb9b3e4c
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=a1bf310167c695ff
Mounted eCryptfs

Проверяем, что всё в порядке и можем приступать к работе с файлами:

Время написания: Суббота, 2 марта, 2013 в 16:09. Категория Статьи.


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

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

Подготовка

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

sudo apt install ecryptfs-utils cryptsetup


Вы не сможете зашифровать домашний каталог пока вы в системе. А поэтому нужно будет создать еще одного пользователя с полномочиями администратора в утилите Параметры. Чтобы ее открыть кликните на своем имени в правом углу панели и выберите пункт Настройки затем Пользователи:


Создайте нового пользователя и сделайте его администратором и установите пароль для пользователя. Аккаунт будет отключен пока вы не укажите пароль:


После создания пользователя выйдите из системы. Надо выбрать именно Завершить сеанс, смена пользователя не подойдёт:


Шифрование домашней папки

Теперь вы готовы зашифровать домашний каталог Ubuntu. Выберите только что созданного пользователя и войдите в систему:


Выполните следующую команду для шифрования своей домашней папки, заменив sergiy на имя своего основного пользователя:

sudo ecryptfs-migrate-home -u sergiy


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

  • Вы должны войти под основной учетной записью сейчас, не перезагружаясь;
  • Перед шифрованием была создана резервная копия домашнего каталога, вы можете восстановить все данные если понадобится;
  • Нужно создать и записать ключ восстановления;
  • Лучше также зашифровать swap раздел.

Выйдите и войдите в систему под основной учетной записью, только не перезагружайтесь:


После входа, нажмите кнопку Выполнить это действие сейчас для создания ключа восстановления данных. Перед вами откроется окно с ключом. Например:


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

Шифрование swap раздела в Ubuntu

Если вы шифровали домашнюю папку во время установки Ubuntu, swap раздел будет зашифрован автоматически. Но в нашем случае если вы хотите зашифровать swap нужно выполнить команду:


Обратите внимание, что с зашифрованным swap разделом не будет нормально работать гибернация, но эта функция все равно по умолчанию отключена.

Очистка временных файлов

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


Для удаления выполните в терминале подобную команду:

sudo rm -rf /home/sergiy.random

Будьте осторожны, так как случайно можно удалить и основной домашний каталог, если имя будет введено неверно.

Выводы

Вот и все, теперь вы знаете как зашифровать домашнюю папку ubuntu. Это совсем несложно. Если у вас остались вопросы, спрашивайте в комментариях!

о ecryptfs

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

Установить и использовать этот инструмент довольно просто. EcryptFS хранит криптографические метаданные в заголовке каждого файла. Файл будет расшифрован с помощью соответствующего ключа в связке ключей ядра Gnu / Linux. Нет необходимости отслеживать какую-либо дополнительную информацию, кроме той, что уже есть в зашифрованном файле.

Установить EcryptFS

Прежде чем мы сможем начать какое-либо шифрование, нам нужно будет установить инструмент. Работает практически со всеми дистрибутивами Gnu / Linux. В Ubuntu мы можем установить этот инструмент, открыв терминал (Ctrl + Alt + T) и набрав в нем:

Зашифруйте домашнюю папку

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

Создать нового пользователя

Чтобы создать нового пользователя, мы откроем терминал и введем:

Теперь, когда оболочка является root, мы используем useradd для создания учетной записи временный. Будь уверен добавьте -M, чтобы система не создавала новый каталог пользователя.

Useradd создаст нового пользователя, но у него нет пароля. С ПАРОЛЬ, мы назначим encryption-admin новый пароль.

Пользователь с правами администратора шифрования готов к использованию, но не сможет выполнять корневые команды. Чтобы позволить пользователю выполнять эти команды, нам понадобится добавьте его в файл sudoers. Используя visudo, мы отредактируем файл конфигурации. Для этого в терминале (Ctrl + Alt + T) напишем:

временное объявление пользователя visudo ecryptfs

Это все. Сохраните файл visudo, нажав Ctrl + O, а затем закройте, нажав Ctrl + X.

Приступим к шифрованию

экран входа в ecryptfs

Чтобы начать процесс шифрования, вам нужно будет выйти из системы пользователя, на котором мы планируем запустить шифрование. На экране входа в систему мы нажмем Ctrl + Alt + F1. Если эта комбинация не работает, попробуйте от F2 до F6.

Введите шифрование-админ (или имя пользователя, которое вы создали в предыдущем пункте) в приглашении для входа в систему. Затем напишем настроенный ранее пароль. Теперь мы можем использовать EcryptFS для запуска шифрования.

В следующей команде изменение "ваш логин»По имени учетной записи пользователя на которые вы хотите действовать:

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

Добавить пароль шифрования

EcryptFS почти готов к работе. Все, что осталось, это установить новый пароль. Откройте терминал, без использования sudo или root и введите следующую команду:

пароль ecryptfs

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

По завершении выполнения «ecryptfs-add-passphrase» папка пользователя должна быть полностью зашифрована. Чтобы начать использовать эту защиту, перезагрузите компьютер.. После перезапуска EcryptFS запросит у нас новый пароль для правильного входа в систему.

Удалить временную учетную запись пользователя

EcryptFS запущен и работает, так что пора отказаться от временной учетной записи, которую мы использовали. Начните с удаления его из файла sudoers. Откройте терминал (Ctrl + Alt + T) и введите:

Прокрутите файл sudoers и удалите ранее добавленный код.

Сохраните файл sudoers, нажав Ctrl + O на клавиатуре. Теперь выйдем с помощью Ctrl + X.

Пользователь с правами администратора шифрования больше не имеет возможности получить root-доступ или каким-либо образом изменить систему. На данный момент он безвреден, и его можно оставить здесь. Тем не менее, если вы не заинтересованы в том, чтобы в вашей команде было несколько пользователей, рекомендуется полностью удалить его. В терминале (Ctrl + Alt + T), используйте команду userdel, чтобы удалить его. Напишите на нем:

Если кто-то хочет узнать больше об этом инструменте, он может проконсультироваться с сайт проекта.

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Полный путь к статье: Убунлог » Ubuntu » EcryptFS, зашифруйте свою пользовательскую папку в Ubuntu

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

Подключение зашифрованной домашней директории на Ubuntu (Linux Mint)
*1. Установка программ и монтирование диска.
Вначале необходимо установить программы для работы с шифрованными директориями:

sudo apt-get install ecryptfs-utils

Затем нужно подключить диск с зашифрованной домашней директорией к другому компьютеру.
Далее создадим новую директорию и примонтируем в неё раздел с домашней директорией:

mount /dev/sdb2 /media/newdisk


Если же у вас настроено автомонтирование USB устройств, то путь к разделу с файлами может иметь вид, похожий на /media/disk-1 или /media/f2cd3cd6-57a2-476e в зависимости от настроек.
После этого создаём директорию, куда будем монтировать зашифрованные файлы:

Чтобы получить доступ к зашифрованным файлам на другом компьютере, вам понадобится знать «mount passphrase» — пароль монтирования зашифрованной домашней директории, который выдаётся сразу после установки системы и должен быть у вас записан. Linux Mint например, не выдает такой пароль, ключом для доступа к зашифрованному каталогу является ваш логин и пароль вводимый при входе в систему, после правильного введения логина и пароля, зашифрованный раздел /home автоматически становится доступен пользователю.
Пароль монтирования /home можно узнать подключив обратно в старую систему диск и выполнив команду:

Если пароль «mount passphrase» у вас есть, можете переходить к разделу 3.
Если же у вас его нет, то этот пароль можно восстановить при помощи пароля, который вы использовали для входа в систему, так называемый «login password».

*2. Восстановление пароля «mount passphrase».
Чтобы восстановить «mount passphrase» введите с консоли:

ecryptfs-unwrap-passphrase /media/newdisk/home/.ecryptfs/your_username/.ecryptfs/wrapped-passphrase
Passphrase: "тут введите ваш «loginpassword»"
913705d92e3ab77e1afe6ca9e86063df

Последняя строка, это и есть ваш пароль «mount passphrase». Запишите его или скопируйте в файл, он вам понадобится дальше.
*3. Монтирование зашифрованной домашней директории.
Нам понадобится специальная сигнатура, которая будет использоваться для дешифрации имён файлов. Чтобы её создать, введите:

sudo ecryptfs-add-passphrase --fnek
[sudo] password for username: "ваш «sudo password» в текущей системе"
Passphrase: "«mount passphrase» полученный выше"
Inserted auth tok with sig [a1bf310167c695ff] into the user session keyring
Inserted auth tok with sig [6f7a976eсb9b2а4c] into the user session keyring

Сигнатура которая нам нужна и которую мы будем вводить ниже, находится во вторых квадратных скобках: 6f7a976eсb9b2а4c
Теперь у нас есть все необходимые данные и мы может монтировать зашифрованную домашнюю директорию:

sudo mount -t ecryptfs /media/newdisk/home/.ecryptfs/your_username/.Private/ /media/olddisk/
Passphrase: «mount passphrase»
Select cipher:
1) aes: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
2) blowfish: blocksize = 16; min keysize = 16; max keysize = 56 (not loaded)
3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24 (not loaded)
4) twofish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
5) cast6: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
6) cast5: blocksize = 8; min keysize = 5; max keysize = 16 (not loaded)
Selection [aes]: aes
Select key bytes:
1) 16
2) 32
3) 24
Selection [16]: 16
Enable plaintext passthrough (y/n) [n]: n
Enable filename encryption (y/n) [n]: y
Filename Encryption Key (FNEK) Signature [a1bf310167c695ff]:6f7a976eсb9b2а4c
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_fnek_sig=6f7a976eсb9b2а4c
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=a1bf310167c695ff
Mounted eCryptfs

Читайте также: