eCryptFS: Bagaimana cara me-mount backup dir home terenkripsi?

10

Saya menggunakan eCryptFS untuk mengenkripsi direktori home laptop saya. Skrip cadangan saya menyalin file yang dienkripsi ke server (beserta semua yang ada di dalamnya (home/.ecryptfs).

Bagaimana saya bisa memasang file cadangan yang dienkripsi? Saya ingin memverifikasi bahwa saya bisa melakukan itu, dan semuanya sudah ada.

Naif saya coba dengan

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

tidak berfungsi, eCryptFS ingin membuat partisi baru.

Boldewyn
sumber

Jawaban:

15

Dengan asumsi Anda menggunakan skema enkripsi standar Ubuntu, tanpa tambahan tweak.

"Folder" $ HOME / .ecryptfs sebenarnya hanyalah sebuah tautan.

Tempat sebenarnya tempat file Anda berada adalah /home/.ecryptfs/$USER

Ada dua folder di sana, .Private (dengan file Anda dienkripsi) dan .ecryptfs, dengan file seperti auto-mount, auto-umount, Private.mnt, Private.sig, frasa sandi terbungkus.

Semoga file target disalin ke cadangan host Anda.

Jika tidak ada cadangan frasa sandi yang Anda bungkus di server ini, Anda akan hilang. Jika ada cadangan, maka skema enkripsi Anda telah dilemahkan dengan menyimpan frasa sandi Anda yang dibungkus di web, kecuali Anda mengontrol host tempat Anda membuat cadangan.

Saya menemukan skrip ini untuk dipasang:

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

# ROOT harus menjadi induk dari folder .ecryptfs dan .Private

sudo mkdir -p $ TARGET
cd $ ROOT

echo Ketikkan kata sandi Anda:
PASS = $ (ecryptfs-unwrap-passphrase .ecryptfs / wrap-passphrase | sed s / Passphrase: \ //)
SIG1 = $ (head -n1 .ecryptfs / Private.sig)
SIG2 = $ (tail -n1 .ecryptfs / Private.sig)

echo Passphrase:
echo $ PASS
Tanda tangan gema:
echo $ SIG1
gema $ SIG2

echo Harus kosong:
sudo keyctl clear @u
sudo keyctl list @u

gema Jangan mengetikkan apa pun:
echo $ PASS | sudo ecryptfs-add-passphrase --fnek

echo. Harus memiliki tanda tangan:
sudo keyctl list @u

echo Mounting $ ROOT pada $ TARGET ...
sudo mount-t ecryptfs -o kunci = kata sandi, ecryptfs_cipher = aes, ecryptfs_key_bytes = 16, ecryptfs_passthrough = tidak ada, ecryptfs_enable_filename_crypto = ya, ecryptfs_sig = $ SIG1, ecryptfs_fnek_sig = $ SIG2, passwd = $ (echo $ PASS) .Private $ TARGET

adalah $ SASARAN

batalkan -v PASS
pengguna39559
sumber
Ah, membuka frasa sandi adalah trik! Terima kasih!
Boldewyn
1
Bagus, itu berhasil. Bagaimanapun, menjaga frasa sandi yang terbungkus di server akan melemahkan, dan terkadang merusak, keamanan enkripsi Anda.
user39559
3
Tautan ke skrip asli ( utas lengkap ).
kenorb
Terima kasih! Saya terkejut tidak ada perintah standar untuk melakukan hal semacam ini. Jika Anda menggunakan EncryptedPrivateDirectory untuk mengenkripsi $HOME/Privatetitik mount Anda , maka gunakan saja ROOT=$HOMEdalam skrip. Saya mengubah skrip ROOT=${ROOT:-/home/.ecryptfs/$USER}sehingga saya bisa meneruskan nilai itu melalui lingkungan.
nealmcb
Ahh - Saya melihat bahwa komentar @ kenorb menautkan ke laporan bug dengan perincian tentang mengapa pendekatan normal untuk me-mount sendiri meminta passphrase via sudo mount -t ecryptfs .Private /mnt/privatetidak berfungsi di Ubuntu. Hmm - bug 6 tahun ....
nealmcb