eCryptFS: Jak zamontować kopię zapasową zaszyfrowanego katalogu domowego?

10

Używam eCryptFS do szyfrowania katalogu domowego mojego laptopa. Mój skrypt kopii zapasowej kopiuje zaszyfrowane pliki na serwer (wraz ze wszystkimi pozostałymi elementami (home/.ecryptfs).

Jak zamontować zaszyfrowane pliki kopii zapasowej? Chciałbym sprawdzić, czy mogę to zrobić i czy wszystko jest na swoim miejscu.

Moja naiwna próba

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

nie działało, eCryptFS chciał utworzyć nową partycję.

Boldewyn
źródło

Odpowiedzi:

15

Zakładając, że korzystasz ze standardowego schematu szyfrowania Ubuntu, bez dodatkowych poprawek.

„Folder” $ HOME / .ecryptfs jest właściwie tylko linkiem.

Prawdziwe miejsce, w którym przechowywane są twoje pliki to /home/.ecryptfs/$USER

Są tam dwa foldery: .Private (z zaszyfrowanymi plikami) i .ecryptfs, z plikami takimi jak automatyczne podłączanie, automatyczne podłączanie, Private.mnt, Private.sig, wrapped-passphrase.

Mamy nadzieję, że pliki docelowe zostaną skopiowane do kopii zapasowej hosta.

Jeśli nie ma kopii zapasowej zapakowanego hasła na tym serwerze, jesteś zgubiony. Jeśli istnieje kopia zapasowa, twój schemat szyfrowania został osłabiony poprzez przechowywanie zapakowanego hasła w Internecie, chyba że kontrolujesz host, na którym tworzona jest kopia zapasowa.

Znalazłem ten skrypt do montażu:

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

# ROOT powinien być rodzicem folderów .ecryptfs i .Private

sudo mkdir -p $ TARGET
cd $ ROOT

echo Wpisz swoje hasło:
PASS = $ (ecryptfs-uncrap-passphrase .ecryptfs / wrapped-passphrase | sed s / Passphrase: \ //)
SIG1 = $ (head -n1 .ecryptfs / Private.sig)
SIG2 = $ (tail -n1 .ecryptfs / Private.sig)

echo Hasło:
echo $ PASS
echo Podpisy:
echo $ SIG1
echo $ SIG2

echo Powinien być pusty:
sudo keyctl clear @u
sudo keyctl list @u

echo Nie wpisuj niczego:
echo $ PASS | sudo ecryptfs-add-passphrase --fnek

echo Powinien mieć podpisy:
sudo keyctl list @u

echo Montowanie $ ROOT na $ TARGET ...
sudo mount -t ecryptfs -o key = hasło = ecryptfs_cipher = aes, ecryptfs_key_bytes = 16, ecryptfs_passthrough = nie, ecryptfs_enable_filename_crypto = tak, ecryptfs_sig = $ SIG1, ecryptfs_fnek_sig = pass = sig = pass.

TARGET $

rozbrojony -v PASS
użytkownik39559
źródło
Ach, rozpakowywanie hasła było sztuką! Dziękuję Ci!
Boldewyn 15.01.11
1
Dobrze, że to działa. W każdym razie, utrzymywanie zapakowanego hasła na serwerze osłabi, a czasem zniszczy twoje bezpieczeństwo szyfrowania.
user39559,
3
Link do oryginalnego skryptu ( pełny wątek ).
kenorb
Dziękuję Ci! Dziwię się, że nie ma standardowego polecenia, aby zrobić coś takiego. Jeśli używasz EncryptedPrivateDirectory do szyfrowania tylko $HOME/Privatepunktu montowania, po prostu użyj ROOT=$HOMEw skrypcie. Zmieniłem skrypt na, ROOT=${ROOT:-/home/.ecryptfs/$USER}aby móc przekazać tę wartość przez środowisko.
nealmcb
Ahh - Widzę, że komentarz @ kenorb prowadzi do raportu o błędzie ze szczegółowymi informacjami na temat tego, dlaczego normalne podejście do samego montowania wymaga podania hasła za pośrednictwem sudo mount -t ecryptfs .Private /mnt/privatenie działa w Ubuntu. Hmm - 6-letni błąd ....
nealmcb