eCryptFS: Wie kann ich ein Backup eines verschlüsselten Home-Verzeichnisses bereitstellen?

10

Ich verwende eCryptFS, um das Home-Verzeichnis meines Laptops zu verschlüsseln. Mein Backup-Skript kopiert die verschlüsselten Dateien auf einen Server (zusammen mit allem anderen in (home/.ecryptfs).

Wie kann ich die verschlüsselten Dateien des Backups bereitstellen? Ich möchte überprüfen, ob ich das kann und ob alles vorhanden ist.

Mein naiver Versuch mit

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

hat nicht funktioniert, eCryptFS wollte eine neue Partition erstellen.

Boldewyn
quelle

Antworten:

15

Angenommen, Sie verwenden das Ubuntu-Standardverschlüsselungsschema ohne zusätzliche Anpassungen.

Der "Ordner" $ HOME / .ecryptfs ist eigentlich nur ein Link.

Der wahre Ort, an dem sich Ihre Dateien befinden, ist /home/.ecryptfs/$USER

Dort befinden sich zwei Ordner: .Private (mit verschlüsselten Dateien) und .ecryptfs mit Dateien wie Auto-Mount, Auto-Umount, Private.mnt, Private.sig und Wrap-Passphrase.

Hoffentlich werden die Zieldateien in Ihr Host-Backup kopiert.

Wenn auf diesem Server keine Sicherungskopie Ihres Wraped-Passphrased vorhanden ist, sind Sie verloren. Wenn eine Sicherung vorhanden ist, wurde Ihr Verschlüsselungsschema durch Speichern Ihrer umschlossenen Passphrase über das Web geschwächt, es sei denn, Sie steuern den Host, auf dem Sie die Sicherung durchführen.

Ich habe dieses Skript zum Mounten gefunden:

ROOT = / home / .ecryptfs / $ USER
ZIEL = / mnt / $ USER

# ROOT sollte das übergeordnete Element der Ordner .ecryptfs und .Private sein

sudo mkdir -p $ ZIEL
cd $ ROOT

echo Geben Sie Ihr Passwort ein:
PASS = $ (ecryptfs-Unwrap-Passphrase .ecryptfs / Wrapped-Passphrase | sed s / Passphrase: \ //)
SIG1 = $ (head -n1 .ecryptfs / Private.sig)
SIG2 = $ (tail -n1 .ecryptfs / Private.sig)

Echo Passphrase:
echo $ PASS
Echo-Signaturen:
echo $ SIG1
Echo $ SIG2

Echo Sollte leer sein:
sudo keyctl clear @u
sudo keyctl list @u

echo Geben Sie nichts ein:
echo $ PASS | sudo ecryptfs-add-passphrase --fnek

Echo Könnte Unterschriften haben:
sudo keyctl list @u

Echo Montage von $ ROOT auf $ TARGET ...
sudo mount -t ecryptfs -o Schlüssel = Passphrase, ecryptfs_cipher = aes, ecryptfs_key_bytes = 16, ecryptfs_passthrough = nein, ecryptfs_enable_filename_crypto = ja, ecryptfs_sig = $ SIG1, ecryptfs_fnek_sig = $ SIG2, passw $

ls $ ZIEL

nicht gesetzt -v PASS
user39559
quelle
Ah, das Auspacken der Passphrase war der Trick! Vielen Dank!
Boldewyn
1
Gut, dass es funktioniert. Wenn Sie Ihre verpackte Passphrase auf dem Server belassen, wird Ihre Verschlüsselungssicherheit geschwächt und manchmal zerstört.
user39559
3
Link zum Original-Skript ( vollständiger Thread ).
Kenorb
Vielen Dank! Ich bin überrascht, dass es keinen Standardbefehl gibt, um so etwas zu tun. Wenn Sie EncryptedPrivateDirectory verwenden , um nur Ihren $HOME/PrivateMount-Punkt zu verschlüsseln, verwenden Sie ihn einfach ROOT=$HOMEim Skript. Ich habe das Skript in geändert, ROOT=${ROOT:-/home/.ecryptfs/$USER}damit ich diesen Wert einfach über die Umgebung übergeben kann.
Nealmcb
Ahh - Ich sehe, dass der Kommentar von @ kenorb auf einen Fehlerbericht mit Details darüber verweist, warum der normale Ansatz, Mount selbst nach der Passphrase über zu fragen, sudo mount -t ecryptfs .Private /mnt/privatein Ubuntu nicht funktioniert. Hmm - 6 Jahre alter
Käfer