eCryptFS: Как создать резервную копию зашифрованного домашнего каталога?

10

Я использую eCryptFS для шифрования домашнего каталога моего ноутбука. Мой скрипт резервного копирования копирует зашифрованные файлы на сервер (вместе со всем остальным в (home/.ecryptfs).

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

Моя наивная попытка с

mount -t ecryptfs /backup/home/.ecryptfs/boldewyn /mnt/test

не работал, eCryptFS хотел создать новый раздел.

Boldewyn
источник

Ответы:

15

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

Папка $ HOME / .ecryptfs - это просто ссылка.

Истинное место, где хранятся ваши файлы: /home/.ecryptfs/$USER

Там есть две папки: .Private (с зашифрованными файлами) и .ecryptfs, с файлами, такими как автонастройка, автоматическое монтирование, Private.mnt, Private.sig, wrapped-passphrase.

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

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

Я нашел этот скрипт для монтажа:

ROOT = / дом / .ecryptfs / $ USER
TARGET = / мнт / $ USER

# ROOT должен быть родителем папок .ecryptfs и .Private.

sudo mkdir -p $ TARGET
CD $ ROOT

echo Введите ваш пароль:
PASS = $ (ecryptfs-unwrap-passphrase .ecryptfs / wrapped-passphrase | sed s / Passphrase: \ //)
SIG1 = $ (head -n1 .ecryptfs / Private.sig)
SIG2 = $ (tail -n1 .ecryptfs / Private.sig)

повторить пароль:
echo $ PASS
эхо подписи:
echo $ SIG1
echo $ SIG2

эхо должно быть пустым:
sudo keyctl clear @u
список sudo keyctl @u

echo Не вводите ничего:
echo $ PASS | sudo ecryptfs-add-passphrase --fnek

эхо может иметь подписи:
список sudo keyctl @u

echo Монтирование $ ROOT на $ TARGET ...
sudo mount -t ecryptfs -o ключ = фраза-пароль, ecryptfs_cipher = aes, ecryptfs_key_bytes = 16, ecryptfs_passthrough = нет, ecryptfs_enable_filename_crypto = да, ecryptfs_sig = $ SIG1, ecry_ $ $ PHOPT $ (Sigry $ SIG)

ls $ TARGET

unset -v PASS
user39559
источник
Ах, разворачивание парольной фразы было хитростью! Спасибо!
Болдевин
1
Хорошо, что это работает. В любом случае, сохранение вашей парольной фразы на сервере ослабит, а иногда и разрушит вашу безопасность шифрования.
user39559
3
Ссылка на оригинальный скрипт ( полная тема ).
Кенорб
Спасибо! Я удивлен, что нет стандартной команды для такого рода вещей. Если вы используете EncryptedPrivateDirectory для шифрования только вашей $HOME/Privateточки монтирования, просто используйте ROOT=$HOMEв сценарии. Я изменил сценарий на ROOT=${ROOT:-/home/.ecryptfs/$USER}так, чтобы я мог просто передать это значение через среду.
nealmcb
Ааа - я вижу, что комментарии @ kenorb ссылаются на отчет об ошибке с подробным описанием того, почему обычный подход к монтированию самого себя, запрашивая фразу-пароль через sudo mount -t ecryptfs .Private /mnt/private, не работает в Ubuntu. Хм - 6-летний баг ....
nealmcb