eCryptFS: ¿Cómo montar una copia de seguridad de un directorio de inicio cifrado?

10

Utilizo eCryptFS para cifrar el directorio de inicio de mi computadora portátil. Mi script de copia de seguridad copia los archivos cifrados en un servidor (junto con todo lo demás (home/.ecryptfs).

¿Cómo puedo montar los archivos cifrados de la copia de seguridad? Me gustaría verificar que puedo hacer eso y que todo está en su lugar.

Mi ingenuo intento con

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

no funcionó, eCryptFS quería crear una nueva partición.

Boldewyn
fuente

Respuestas:

15

Suponiendo que use el esquema de cifrado estándar de Ubuntu, sin ajustes adicionales.

La "carpeta" $ HOME / .ecryptfs es en realidad solo un enlace.

El verdadero lugar donde se encuentran sus archivos es /home/.ecryptfs/$USER

Hay dos carpetas, .Private (con sus archivos encriptados) y .ecryptfs, con archivos como auto-mount, auto-umount, Private.mnt, Private.sig, wrap-passphrase.

Esperemos que los archivos de destino se copien en la copia de seguridad de su host.

Si no hay una copia de seguridad de su frase de contraseña envuelta en este servidor, está perdido. Si hay una copia de seguridad, entonces su esquema de cifrado se ha debilitado al almacenar su frase de contraseña envuelta en la web, a menos que controle el host donde realiza la copia de seguridad.

Encontré este script para el montaje:

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

# ROOT debe ser el padre de las carpetas .ecryptfs y .Private

sudo mkdir -p $ TARGET
cd $ ROOT

echo Escriba su contraseña:
PASS = $ (ecryptfs-unwrap-passphrase .ecryptfs / wrap-passphrase | sed s / Passphrase: \ //)
SIG1 = $ (head -n1 .ecryptfs / Private.sig)
SIG2 = $ (tail -n1 .ecryptfs / Private.sig)

frase de contraseña de eco:
echo $ PASS
Firmas de eco:
echo $ SIG1
echo $ SIG2

echo debe estar vacío:
sudo keyctl clear @u
sudo keyctl list @u

echo No escriba nada:
echo $ PASS | sudo ecryptfs-add-passphrase --fnek

echo Debe tener firmas:
sudo keyctl list @u

echo Montar $ ROOT en $ TARGET ...
sudo mount -t ecryptfs -o key = frase de contraseña, ecryptfs_cipher = aes, ecryptfs_key_bytes = 16, ecryptfs_passthrough = no, ecryptfs_enable_filename_crypto = yes, ecryptfs_sig = $ SIG1, ecryptfs_fnek_sig = $ SIG1 $ $ SET1 $ $ = $ $

ls $ TARGET

unset -v PASS
usuario39559
fuente
¡Ah, el desenvolvimiento de la frase de contraseña fue el truco! ¡Gracias!
Boldewyn
1
Bien que funciona. De todos modos, mantener su frase de contraseña envuelta en el servidor debilitará, y a veces destruirá, su seguridad de cifrado.
user39559
3
Enlace al guión original ( hilo completo ).
kenorb
¡Gracias! Me sorprende que no haya un comando estándar para hacer este tipo de cosas. Si está utilizando EncryptedPrivateDirectory para encriptar solo su $HOME/Privatepunto de montaje, simplemente utilícelo ROOT=$HOMEen el script. Cambié el script a ROOT=${ROOT:-/home/.ecryptfs/$USER}para poder pasar ese valor a través del entorno.
nealmcb
Ahh: veo que el comentario de @kenorb se vincula a un informe de error con detalles sobre por qué el enfoque normal de tener el montaje en sí mismo solicita la frase de contraseña a través de sudo mount -t ecryptfs .Private /mnt/privateno funciona en Ubuntu. Hmm - error de 6 años ...
nealmcb