Как использовать ecryptfs с не домашним каталогом

14

Я хотел бы использовать ecryptfs для шифрования случайного каталога (т.е. не моего домашнего каталога или его подкаталога, главным образом из-за ограничений дискового пространства на моем домашнем разделе) и монтировать этот каталог при входе в свою учетную запись. Я не вижу, как это сделать, или даже если это действительно возможно с существующим программным обеспечением. Я видел посты, которые содержат расплывчатые предложения (например, для использования mount.ecryptfs_privateс опцией ALIAS), но мне еще предстоит найти простые, пошаговые инструкции о том, как это сделать. Кто-нибудь сможет дать эти инструкции или направить меня туда, где их найти?

user3004015
источник
2
Это самый простой метод, который вы найдете: wiki.archlinux.org/index.php/…
Rinzwind
1
Моя проблема с этим решением в том, что у меня уже есть зашифрованный домашний каталог. Глядя на код ecryptsfs-setup-private, я не уверен, что произойдет, если у вас уже есть зашифрованный дом и вы действительно не хотите пытаться из-за боязни того, что это может сделать что-то плохое.
user3004015
1
Вы понимаете, почему двойник кажется таким сложным? Мне кажется, что логично было бы создать общую систему для создания зашифрованных хранилищ и папок и их автоматического монтирования, а затем создать систему для создания домашнего каталога, но это программное обеспечение, похоже, было написано с большим вещей зашитых. Хранилище должно быть .Private, каталог должен быть Private и т. Д.
user3004015
2
Использование zip-файла, защищенного паролем, не является криптографически безопасным. Аналогичный подход заключается в использовании gpg. Скажем, вы хотите надежно сохранить папку, а mydataзатем использовать ее tar -c mydata | gpg --symmetric > mydata.tar.gpg && rm -rf mydataдля хранения данных и gpg --decrypt mydata.tar.gpg | tar -xих восстановления. Вы можете легко использовать свой закрытый / открытый ключ для защиты ваших данных, что представляется целесообразным. С этим методом следует хранить только небольшие объемы данных. @Rinzwind
Арне Л.
1
Вид поражает цель шифрования данных, если вы rm -fR mydata. Эти данные могут быть восстановлены с диска спустя долгое время после его «удаления». Я не знаю , как обеспечить это, но я бы склоняться к «рекурсивный» кромсать вместо: find mydata -type f -exec shred -uz -- {} \;. Обратите внимание, что измельчение эффективно только в файловых системах без журналирования и на определенных типах устройств. Там, где это важно, следует исследовать наилучший способ. Я не думаю, что это безопасная практика: шифрование и дешифрование архива, как это. Скорее всего, это будет неэффективно.
Бамбамс

Ответы:

8

Вы смотрите только на супер-легкие сценарии, такие как ecryptsfs-setup-privateи ecryptsfs-mount-private, они используют более «общие» инструменты, которые, как вам кажется, вы ищете: mount.ecryptfsи ecryptfs-add-passphrase. Смотрите их manстраницы для получения дополнительной информации.

А ссылка, опубликованная Rinzwind, содержит всю необходимую информацию, далее вниз по странице в разделе « Ручная настройка» . Они довольно длинные, но очень очень короткая версия будет:


Способ «Ручная настройка» (archlinux wiki)

Сначала выберите алиас, как вам нравится. Через этот раздел ALIAS будет секретным. Создайте необходимые каталоги / файлы:

$ mkdir ~/.secret ~/secret ~/.ecryptfs
$ touch ~/.ecryptfs/secret.conf ~/.ecryptfs/secret.sig

В ~/.secretкаталоге будут храниться зашифрованные данные. ~/secretКаталог точки монтирования , где ~/.secretбудет установлен как ecryptfs файловая система.

[Теперь создайте фактическую парольную фразу для монтирования (простые сценарии будут выбирать псевдослучайные 32 символа /dev/urandom), сделайте ее хорошей)

$ echo "$HOME/.secret $HOME/secret ecryptfs" > ~/.ecryptfs/secret.conf
$ ecryptfs-add-passphrase
Passphrase: 
Inserted auth tok with sig [78c6f0645fe62da0] into the user session keyring

Запишите выходную подпись (ecryptfs_sig) из предыдущей команды в ~ / .ecryptfs / secret.sig:

$ echo 78c6f0645fe62da0 > ~/.ecryptfs/secret.sig
  • Вторая парольная фраза для шифрования имени файла может быть использована. Если вы выберете это, добавьте его в связку ключей:

    $ ecryptfs-add-passphrase
    Passphrase: 
    Inserted auth tok with sig [326a6d3e2a5d444a] into the user session keyring
    

    Если вы запустите указанную выше команду, добавьте ее выходную подпись (ecryptfs_fnek_sig) в ~ / .ecryptfs / secret.sig:

    $ echo 326a6d3e2a5d444a >> ~/.ecryptfs/secret.sig
    

Наконец, для монтирования ~ / .secret в ~ / secret:

$ mount.ecryptfs_private secret

Чтобы размонтировать ~ / .secret:

$ umount.ecryptfs_private secret

  • Или вы можете действительно испачкать руки и следовать указаниям Без ecryptfs-utils .

  • Или, если вы уже просмотрели простые сценарии ecryptsfs-setup-private& ecryptsfs-mount-private, вы можете скопировать их и отредактировать, чтобы они указывали на ваши предпочтительные каталоги, с небольшим количеством навыков и терпения.

  • Или просто храните парольную фразу (ы) как-то (желательно безопасно) и делайте так, как в man ecryptfsпримере с страницей (необходимо прочитать справочные страницы):

    The following command will layover mount eCryptfs on /secret with a passphrase
    contained in a file stored on secure media mounted at /mnt/usb/.
    
    mount  -t  ecryptfs -o key=passphrase:passphrase_passwd_file=/mnt/usb/file.txt /secret /secret
    
    Where file.txt contains the contents "passphrase_passwd=[passphrase]".
    

Помимо зашифрованных домашних папок и зашифрованной папки внутри дома - вложенные папки eCryptfs

Кроме того, зашифрованная домашняя папка обычно хранит файлы, в /home/.ecryptfs/user/то время как зашифрованная личная папка содержит файлы в вашей собственной домашней папке. Вы не можете использовать оба одновременно, eCryptfs не будет делать вложенные зашифрованные папки. Но иметь зашифрованный дом и зашифрованные папки вне вашего дома - это нормально.

  • Я только что попытался создать нового пользователя с зашифрованным домом sudo adduser --encrypt-home jack

    Он создал /home/.ecryptfs/папку с:

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

      А также /home/jack/папка, но она содержала ссылку, которая остается там, вошли ли вы в систему или нет:

      /home/jack/.ecryptfs/ -> /home/.ecryptfs/jack/.ecryptfs

    • Затем я вошел в систему как jack, но ссылка все еще была там, поэтому попытка запустить ecryptfs-setup-privateзаставила его заглянуть, /home/jack/.ecryptfs/но реально увидеть существующие файлы, /home/.ecryptfs/jack/.ecryptfsпоэтому не удалось создать еще один файл паролей и не удалось выполнитьERROR: wrapped-passphrase file already exists, use --force to overwrite.

      Попытка выполнить вышеприведенные шаги «ALIAS» с использованием папки .secret внутри зашифрованного дома завершилась неудачно с этими ошибками:
      Mount on filesystem of type eCryptfs explicitly disallowed due to known incompatibilities
      Reading sb failed; rc = [-22]

      «Вложение зашифрованных каталогов в зашифрованные каталоги не поддерживается eCryptfs. Извините». - Автор и сопровождающий eCryptfs

    • Изменение папки ALIAS вне дома Джека, пробуя /tmp/.secret/и /tmp/secret/ работает . НО если выход из гнезда отсутствует, новая зашифрованная папка останется подключенной , поэтому ее необходимо отключить ( umount.ecryptfs_private secret).

Xen2050
источник
1
Спасибо за упрощенный ответ. Один вопрос, хотя: это решает проблему автоматического монтирования? Приносим извинения за то, что я не очень разбираюсь в этом, но указанная вами веб-страница и справочные страницы на самом деле не очень легко понять при настройке автоматического монтирования для нестандартной ситуации. Поскольку у меня уже есть зашифрованный домашний каталог, у меня уже есть $ HOME / .ecryptfs / auto-mount и wrapped-passphrase, но первый пустой, а второй уже содержит что-то в нем. Мне не совсем понятно, как добавить новую фразу-пароль и дать ей команду автоматически смонтировать каталог.
user3004015
Обновился после небольшого тестирования, и этому парню ragingpenguin.com/2012/12/…, очевидно, немного повезло, следуя руководству по вики-аркам по автоматическому монтированию с PAM, но он довольно
придирчив
Спасибо за ваши старания. Меня не интересует вложение каталогов ecryptfs, а автоматическое монтирование второго каталога на втором месте. Я попытаюсь заставить его работать, когда у меня будет немного времени, но это определенно не очень понятно ...
user3004015
Вы можете обрезать его до одной mountстроки, не нуждаясь в .confфайле или добавлении ключей, просто прочитайте man ecryptfsстраницы для доступных опций. Затем добавьте файл «run at login» в /home/user/.config/autostart/. Но безопасность парольной фразы может быть под угрозой, если хранится неправильно
Xen2050
Дело в том, что у ecryptfs есть хорошая система упаковки паролей шифрования в оболочку, которая открывается с помощью пароля для входа в систему. Это обеспечивает дополнительную защиту для пароля ecryptfs, что было бы неплохо иметь. Я не думаю, что размещение чего-либо в .config / autostart позволит это, если я не неправильно понимаю, что я должен положить в сценарий.
user3004015
0

Если вы хотите использовать его как encfs, вы можете сделать это с помощью следующей записи в /etc/fstab

/tmp/.geheim /tmp/geheim ecryptfs rw,no_sig_cache,ecryptfs_fnek_sig=1f7aefb9e239099f,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_enable_filename_crypto=y,ecryptfs_passthrough=n,passphrase_passwd=geheimpw,user,noauto 0 0

geheim - немецкое слово для секрета, но гарантирует, что это не ключевое слово. Сначала вы должны создать каталоги. В первый раз вы должны уйти ecryptfs_fnek_sig=1f7aefb9e239099f. Затем mount /tmp/geheimпокажет вам правильное значение.

Вы можете хранить пароль в другом месте и установить более сложные параметры. Вы найдете все варианты в man ecryptfs.

Нильс
источник
-1
ecryptfs /destination/to/encrypted/storage /destination/to/seeing/unencrypted/data

например:

ecryptfs /home/$USER/EFILES /home/$USER/Downloads/RANDOMDIRECTORY

используйте указанную выше команду для создания и монтирования зашифрованной системы, в которой файлы, сохраненные в RANDOMDIRECTORY, зашифрованы и сохранены в EFILES.

Дополнительные замечания. убедитесь, что RANDOMDIRECTORY пуст, когда вы начинаете. Как только вы запустите указанную выше команду, и система будет смонтирована и готова к работе, все файлы, которые вы сохраните в RANDOMDIRECTORY, будут зашифрованы в EFILES, если система смонтирована. Для быстрого монтирования / размонтирования вы можете либо создать скрипт bash и запустить его через ярлык приложения, либо создать команду псевдонима для быстрого монтирования.

Я использую это уже больше года.

РЕДАКТИРОВАТЬ: пошел домой, чтобы подтвердить, твоя команда не ecryptfs. его оболочки то есть

encfs /destination/encrypted /destination/unencrypted

прости за это. При этом вам придется установить новую программу, хотя (вероятно)

dr1094
источник
1
Я набрал команду, ecryptfsи она отвечает, что команда не найдена. man ecryptfsвызывает man-страницу mount -t ecryptfs, но не объясняет, как создать такую ​​зашифрованную файловую систему.
user3004015
Обратите внимание, что я использую Ubuntu 14.04 LTS, поэтому моя установка сравнительно недавно. Является ли ecryptfsкоманда недавним дополнением?
user3004015
encfs - это не то же самое, что ecryptfs. Это два разных.
Косой