Cómo usar ecryptfs con un directorio que no es de inicio

14

Me gustaría usar ecryptfs para cifrar un directorio aleatorio (es decir, no mi directorio de inicio o un subdirectorio del mismo, principalmente debido a limitaciones de espacio en disco en mi partición de inicio) y montar ese directorio cuando inicio sesión en mi cuenta. No puedo ver cómo hacer esto o incluso si es realmente posible con el software existente. He visto publicaciones que proporcionan sugerencias vagas (por ejemplo, para usar mount.ecryptfs_privatecon la opción ALIAS), pero todavía tengo que encontrar instrucciones simples paso a paso sobre cómo hacerlo. ¿Alguien podría proporcionar estas instrucciones o dirigirme a dónde encontrarlas?

user3004015
fuente
2
Este es el método más simple que encontrarás: wiki.archlinux.org/index.php/…
Rinzwind
1
Mi problema con esta solución es que ya tengo un directorio de inicio cifrado. Mirando el código ecryptsfs-setup-private, no estoy seguro de lo que sucederá si ya tienes una casa encriptada y realmente no quieres probar por miedo a que haga cosas malas.
user3004015
1
¿Entiendes por qué un doble parece tan difícil? Me parece que lo lógico sería construir un sistema genérico para crear carpetas y almacenamiento cifrados y montarlos automáticamente, y luego construir sobre eso un sistema para hacer el directorio de inicio, pero este software parece haber sido escrito con mucho de cosas cableadas. El almacenamiento debe ser .Privado, el directorio debe ser privado, etc.
user3004015
2
El uso de un archivo zip protegido con contraseña no es criptográficamente seguro. Un enfoque similar es usar gpg. Supongamos que desea almacenar la carpeta de forma segura y mydataluego podría usarla tar -c mydata | gpg --symmetric > mydata.tar.gpg && rm -rf mydatapara almacenar sus datos y gpg --decrypt mydata.tar.gpg | tar -xrestaurarlos. Puede usar fácilmente su clave privada / pública para proteger sus datos, lo que parece aconsejable. Solo pequeñas cantidades de datos deben almacenarse con este método. @Rinzwind
Arne L.
1
Tipo de derrotas el propósito de cifrar los datos si usted rm -fR mydata. Esos datos podrían recuperarse del disco mucho después de que lo "elimine". No estoy seguro de qué tan seguro es, pero me inclino hacia una "recursivo" purgar su lugar: find mydata -type f -exec shred -uz -- {} \;. Tenga en cuenta que la trituración solo es efectiva en sistemas de archivos no registrados en el diario y ciertos tipos de dispositivos. Donde sea importante, uno debe investigar de la mejor manera. No creo que esta sea una práctica segura: cifrar y descifrar el archivo de esta manera. Lo más probable es que sea ineficaz.
bambams

Respuestas:

8

Solo está viendo los scripts súper fáciles como ecryptsfs-setup-privatey ecryptsfs-mount-private, ellos usan las herramientas más "genéricas" que parece estar buscando: mount.ecryptfsy ecryptfs-add-passphrase. Vea sus manpáginas para más información.

Y el enlace publicado por Rinzwind tiene toda la información que necesita, más abajo en la página en Configuración manual . Son bastante largos, pero la versión muy corta sería:


La forma de "Configuración manual" (archlinux wiki)

Primero elige un ALIAS como quieras. A través de esta sección, ALIAS será secreto. Cree los directorios / archivos necesarios:

$ mkdir ~/.secret ~/secret ~/.ecryptfs
$ touch ~/.ecryptfs/secret.conf ~/.ecryptfs/secret.sig

El ~/.secretdirectorio contendrá los datos cifrados. El ~/secretdirectorio es el punto de montaje donde ~/.secretse montará como un sistema de archivos ecryptfs.

[Ahora cree la frase de contraseña de montaje real (las secuencias de comandos fáciles elegirán 32 caracteres pseudoaleatorios /dev/urandom), que sea buena]

$ echo "$HOME/.secret $HOME/secret ecryptfs" > ~/.ecryptfs/secret.conf
$ ecryptfs-add-passphrase
Passphrase: 
Inserted auth tok with sig [78c6f0645fe62da0] into the user session keyring

Escriba la firma de salida (ecryptfs_sig) del comando anterior en ~ / .ecryptfs / secret.sig:

$ echo 78c6f0645fe62da0 > ~/.ecryptfs/secret.sig
  • Se puede utilizar una segunda frase de contraseña para el cifrado de nombre de archivo. Si lo elige, agréguelo al llavero:

    $ ecryptfs-add-passphrase
    Passphrase: 
    Inserted auth tok with sig [326a6d3e2a5d444a] into the user session keyring
    

    Si ejecuta el comando anterior, agregue su firma de salida (ecryptfs_fnek_sig) a ~ / .ecryptfs / secret.sig:

    $ echo 326a6d3e2a5d444a >> ~/.ecryptfs/secret.sig
    

Finalmente, para montar ~ / .secret en ~ / secret:

$ mount.ecryptfs_private secret

Para desmontar ~ / .secret:

$ umount.ecryptfs_private secret

  • O bien, podría ensuciarse las manos y seguir las instrucciones Sin ecryptfs-utils .

  • O si ya examinó los scripts sencillos ecryptsfs-setup-private& ecryptsfs-mount-private, puede copiarlos y editarlos para que apunten a sus directorios preferidos, con un poco de habilidad y paciencia.

  • O simplemente almacene la (s) frase (s) de contraseña de alguna manera (preferiblemente de forma segura) y haga como el man ecryptfsejemplo de la página (debe leer las páginas de manual):

    The following command will layover mount eCryptfs on /secret with a passphrase
    contained in a file stored on secure media mounted at /mnt/usb/.
    
    mount  -t  ecryptfs -o key=passphrase:passphrase_passwd_file=/mnt/usb/file.txt /secret /secret
    
    Where file.txt contains the contents "passphrase_passwd=[passphrase]".
    

Aparte de las carpetas de inicio cifradas y una carpeta cifrada dentro de las carpetas de inicio eCryptfs anidadas

Y, una carpeta de inicio encriptada normalmente almacena archivos /home/.ecryptfs/user/, mientras que una carpeta privada encriptada tiene archivos dentro de su propia carpeta de inicio. Puede no utilizar ambos al mismo tiempo, no lo hará eCryptfs anidado carpetas cifradas. Pero tener un hogar encriptado y carpetas encriptadas fuera de su hogar está bien.

  • Acabo de intentar crear un nuevo usuario con un hogar encriptado sudo adduser --encrypt-home jack

    Creó una /home/.ecryptfs/carpeta, con:

    • /home/.ecryptfs/jack/.ecryptfs/ - Frase de contraseña y archivos de configuración envueltos para montar automáticamente la casa de Jack al iniciar sesión
    • /home/.ecryptfs/jack/.Private/- archivos de inicio cifrados reales, montados en /home/jack/cuando inició sesión.

      Y también la /home/jack/carpeta, pero contenía un enlace que permanece allí si está conectado o no:

      /home/jack/.ecryptfs/ -> /home/.ecryptfs/jack/.ecryptfs

    • A continuación, inicié sesión como jack, pero el enlace todavía estaba allí, por lo que intentar ejecutarlo ecryptfs-setup-privatehizo que se mirara /home/jack/.ecryptfs/pero realmente viera los archivos existentes, por /home/.ecryptfs/jack/.ecryptfslo que no pudo crear otro archivo de contraseña y falló conERROR: wrapped-passphrase file already exists, use --force to overwrite.

      Intentando los pasos "ALIAS" anteriores, usando una carpeta .secret dentro de la casa encriptada falló, con estos errores:
      Mount on filesystem of type eCryptfs explicitly disallowed due to known incompatibilities
      Reading sb failed; rc = [-22]

      "Anidar directorios cifrados dentro de directorios cifrados no es compatible con eCryptfs. Lo siento". - Autor y mantenedor de eCryptfs

    • Cambiar la carpeta ALIAS fuera de la casa de Jack, intentando /tmp/.secret/y /tmp/secret/ funciona . PERO si el registro de salida no está, la nueva carpeta cifrada permanecerá montada , por lo que deberá desmontarla ( umount.ecryptfs_private secret).

Xen2050
fuente
1
Gracias por la respuesta simplificada. Sin embargo, una pregunta: ¿esto soluciona el problema del montaje automático? Perdón por hablar mucho de esto, pero la página web que indicó y las páginas de manual realmente no son particularmente fáciles de entender con respecto a la configuración del montaje automático para una situación no estándar. Como ya tengo un directorio de inicio cifrado, ya tengo $ HOME / .ecryptfs / auto-mount y wrap-passphrase, pero el primero está vacío y el segundo ya tiene algo. No tengo completamente claro cómo agregar la nueva frase de contraseña e indicarle que monte automáticamente el directorio.
user3004015
Actualizado con un poco de prueba, y este tipo ragingpenguin.com/2012/12/… aparentemente tuvo algo de suerte siguiendo la guía wiki del arco sobre el montaje automático con PAM, pero es bastante
obvio al
Gracias por tus esfuerzos. No estoy interesado en anidar los directorios ecryptfs, sino en montar automáticamente un segundo directorio en un segundo lugar. Intentaré que funcione cuando tenga un poco de tiempo, pero definitivamente no está muy claro ...
user3004015
Puede recortarlo en una mountlínea, no necesita un .confarchivo o agregar claves, solo lea las man ecryptfspáginas para ver las opciones disponibles. Luego arroje un archivo "ejecutar al iniciar sesión" /home/user/.config/autostart/. Pero la seguridad de la frase de contraseña podría estar en riesgo si se almacena incorrectamente
Xen2050
La cuestión es que ecryptfs tiene un buen sistema de envolver contraseñas de cifrado dentro de un contenedor que se abre con una contraseña de inicio de sesión. Esto proporciona protección adicional para la contraseña de ecryptfs, lo que sería bueno tener. No creo que poner algo en .config / autostart permita esto a menos que esté malinterpretando lo que se supone que debo poner en el script.
user3004015
0

Si desea usarlo como encfs, puede hacerlo con la siguiente entrada en /etc/fstab

/tmp/.geheim /tmp/geheim ecryptfs rw,no_sig_cache,ecryptfs_fnek_sig=1f7aefb9e239099f,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_enable_filename_crypto=y,ecryptfs_passthrough=n,passphrase_passwd=geheimpw,user,noauto 0 0

geheim es la palabra alemana para secreto, pero asegura que no sea una palabra clave. Debe crear los directorios primero. La primera vez deberías dejar de ecryptfs_fnek_sig=1f7aefb9e239099flado. Luego mount /tmp/geheimle mostrará el valor correcto.

Puede almacenar la contraseña en otro lugar y configurar opciones más sofisticadas. Encontrarás todas las opciones en man ecryptfs.

Niels
fuente
-1
ecryptfs /destination/to/encrypted/storage /destination/to/seeing/unencrypted/data

p.ej:

ecryptfs /home/$USER/EFILES /home/$USER/Downloads/RANDOMDIRECTORY

use el comando anterior para crear y montar un sistema encriptado donde los archivos guardados en RANDOMDIRECTORY se encripten y guarden en EFILES.

Notas adicionales. asegúrese de que RANDOMDIRECTORY esté vacío cuando comience. Una vez que ejecute el comando anterior, y el sistema esté montado y listo, todos los archivos que guarde en RANDOMDIRECTORY se cifrarán en EFILES si el sistema está montado. Para un montaje / desmontaje rápido, puede crear un script bash y ejecutarlo a través de un acceso directo de la aplicación, o crear un comando de alias para un montaje rápido.

He estado usando esto por más de un año.

EDITAR: fue a casa para confirmar, su comando no es ecryptfs. sus encfs es decir

encfs /destination/encrypted /destination/unencrypted

Lo siento por eso. Con esto tendrás que instalar un nuevo programa aunque (probablemente)

dr1094
fuente
1
Escribí el comando ecryptfsy responde el comando no encontrado. man ecryptfsabre la página de manual para mount -t ecryptfs, pero realmente no explica cómo crear un sistema de archivos encriptado.
user3004015
Tenga en cuenta que estoy usando Ubuntu 14.04 LTS, por lo que mi instalación es relativamente reciente. ¿Es el ecryptfscomando una adición reciente?
user3004015
encfs no es lo mismo que ecryptfs. Estos son dos diferentes.
Diagon