Carpeta de inicio cifrada aún accesible después de cerrar sesión

13

Si tiene una cuenta con una carpeta de inicio cifrada, no puede acceder a los datos de texto sin formato del usuario en su carpeta de inicio si ese usuario aún no ha iniciado sesión desde la última vez que se inició el sistema. Esto es lo que esperaba porque, de hecho, no debería ser prácticamente factible acceder a la carpeta de inicio de un usuario sin ingresar su contraseña.

Sin embargo, descubrí que cuando un usuario con una carpeta de inicio cifrada inicia sesión y luego se desconecta, los datos de texto sin formato en su carpeta de inicio siguen siendo accesibles para otros usuarios. Se requieren privilegios de acceso suficientes, por supuesto.

wno enumera al usuario y la salida de sudo pgrep -u <username>está vacía, lo que indica que el usuario no tiene ningún proceso en ejecución.

¿Cuál es la razón de este comportamiento? ¿Por qué no simplemente bloquear la carpeta de inicio del usuario después de cerrar sesión?

UTF-8
fuente
¿Podría incluir la salida de grep -Fe ecryptfs /var/log/auth.logalrededor del tiempo en que el usuario cerró la sesión?
David Foerster
El comando produce esta salida: pastebin.com/jZXdahbJ Según Emacs, las únicas líneas que contienen la cadena "ecryptfs" son las líneas que se produjeron cuando ejecuté ese comando.
UTF-8
El resultado es como se esperaba solo las líneas que Emacs ya me mostró: pastebin.com/VtV7iCDg
UTF-8
Okay. Valió la pena un vistazo.
David Foerster
También he notado este error en sistemas en vivo persistentes (en un intento de crear un segundo usuario con inicio cifrado).
sudodus

Respuestas:

6

Error conocido

Si entiendo correctamente, este es un error conocido.

Vea este enlace: wiki.archlinux.org/index.php/ECryptfs

Desplácese hasta el párrafo rosa

Advertencia: Desafortunadamente, el desmontaje automático es susceptible de romperse con systemd y se presentan errores en su contra ...

Solución alterna

Tal como está ahora, es mejor que apague o reinicie para eliminar los rastros ( no es suficiente cerrar sesión).

sudodus
fuente
¿Qué quiere decir con "cerrar sesión filtrará la información entre los usuarios"? ¿Quiere decir que sucede algo, aparte de que un usuario diferente con suficientes privilegios puede acceder a los datos de texto sin formato en el directorio de inicio del primer usuario? (Esto ya es posible antes del cierre de sesión, por supuesto).
UTF-8
1
Tratando de explicar mejor: "No es suficiente cerrar sesión". (Cerrar sesión no elimina las instancias de texto sin cifrar de los archivos que el usuario ha utilizado con el hogar cifrado. Por lo tanto, la información puede filtrarse de este usuario a otro usuario, que inicia sesión, al menos si este otro usuario tiene privilegios de sudo. pero si apagar o reiniciar el sistema, las instancias de texto sin cifrar de los archivos desaparecen.
sudodus
3

No puedo probar ni confirmar esto, pero suponiendo que esté usando ecryptfs(que es lo que Ubuntu ofrece durante la instalación, IIRC), los datos cifrados se almacenan en una carpeta oculta /home/.encryptfs/$USERy se montan en la ubicación de su carpeta de inicio real usando el ecryptfscontrolador cuando inicia sesión en.

Lo más probable es que lo que sucede es que cuando cierra la sesión, no se desmonta automáticamente ese directorio, por lo que los archivos aún están accesibles. Esto podría ser causado por ...

  • una configuración incorrecta (tal vez se suponía que debía configurarse para desmontarse al cerrar sesión, pero no fue así)
  • tipo de cierre de sesión inesperado (a veces estas soluciones funcionan para el inicio / cierre de sesión de DM, pero de lo contrario no funcionan bien)
  • si el desmontaje es manejado por un script de cierre de sesión (no necesariamente el caso), algo que precede al comando de desmontaje podría fallar y hacer que el script salga antes de tiempo.

Una cosa que puede ayudarlo a verificar esto sería ejecutar sudo mount | grep homeantes de iniciar sesión, después de iniciar sesión y después de cerrar sesión para ver si homese está montando algo relacionado . También puede buscar /etc/fstabentradas relevantes. Finalmente, hay algo de configuración /home/.ecryptfs/$USER/.ecryptfs/con configuraciones pertinentes para el montaje / desmontaje automático.

ecryptfsPuede encontrar información útil sobre esta respuesta y en el siempre útil ArchWiki .

krs013
fuente
Intenté lo que me dijiste: pastebin.com/DrmEXQPV No cierro sesión de ninguna manera extraña sino en la forma estándar de la GUI. El FS todavía está montado, como puede ver. Los archivos de configuración que mencionó están vacíos. No hay nada en mi /etc/fstabentrada, excepto 1, que indique que mi única partición de datos debe montarse /y 1 entrada que trata sobre algún recurso de red relacionado con la universidad. ¿Debo intentar cerrar la sesión de otra manera? ¿Si es así, cómo?
UTF-8
El cierre de sesión de una manera diferente fue un poco adictivo: los administradores de escritorio agregan mucho además de iniciar y cerrar sesión que complica la noción y dificulta determinar qué eventos se desencadenan. Me preguntaba porque puede haber algún script o evento que no se estaba ejecutando. Según las otras respuestas, no es ese tipo de problema, sino algo que tiene que ver con ecryptfssí mismo. En esa nota, sin embargo, ¿utiliza ssho inicia sesión a través de los terminales de texto? Es posible escribir un script que se encargará de desmontar al cerrar sesión si encontramos dónde colocarlo.
krs013
3

Editar /etc/systemd/logind.confy configurarKillUserProcesses=yes

Tenga en cuenta que estos programas se rompe fondo, screen, tmux, y similares ...

Esta pregunta aquí entra en más detalles. Me parece innecesario definir un nuevo servicio systemd (o más exactamente, no el comportamiento deseado, ya que se invoca como un enlace de apagado, no cuando finaliza la sesión del usuario).

/unix/251902/ecryptfs-auto-umount-does-not-work

quadruplebucky
fuente
Comprobaré si su método funciona para un sistema en vivo persistente con un segundo usuario, que se ha cifrado en casa.
sudodus
Lo sentimos, pero podría no hacer que este método funcione en un sistema vivo persistente con un segundo usuario, que ha cifrado en casa. (No he probado su solución en un sistema instalado, se la dejaré a @ UTF-8, que hizo la pregunta original)
Sudodus
No estoy interesado en arreglar esto en mi propia computadora. Soy el único que lo usa de todos modos, pero quiero usar 2 cuentas con carpetas de inicio encriptadas y nadie más conoce la contraseña de ninguna de las cuentas. Me interesa saber por qué no desmonta los volúmenes cifrados automáticamente de forma predeterminada . ¿No podría simplemente verificar los procesos en segundo plano activos que se ejecutan en el contexto del usuario y desmontarlo si no hay ninguno?
UTF-8
@ UTF-8, estoy de acuerdo con usted, que debería funcionar como usted quiere que funcione. Si entiendo correctamente, este es un error conocido. Vea este enlace, wiki.archlinux.org/index.php/ECryptfs . Desplácese hasta el párrafo rosa 'Advertencia: Desafortunadamente, el desmontaje automático es susceptible de romperse con systemd y se archivan errores'. - Tal como está ahora, es mejor que apague o reinicie para eliminar los rastros (el cierre de sesión filtrará la información entre los usuarios.)
sudodus
@ UTF-8 es un error en la interacción systemd / sesión, ya que al menos es ruidoso (me siento perfectamente cómodo colgándolo en systemd): el cambio /etc/systemd/logind.conf funciona para mí el 16.04 (probado con tres usuarios diferentes , diferentes sesiones, etc ...)
quadruplebucky
3

He estado investigando este problema durante bastante tiempo, es decir, el sistema de archivos sin cifrar permanece montado después del cierre de sesión del usuario.

Usé "ecryptfs-migrate-home -u user" para crear el montaje. siguió las instrucciones y todos los trabajos, excepto que no se desmontó automáticamente al cerrar sesión.

Comparé los archivos de configuración en /etc/pam.d/ con la documentación de pam_ecryptfs y encontré algunas diferencias. ecryptfs estaba en 4 de los archivos de configuración de pam.d, mientras que los documentos de pam_ecryptfs indican que solo 2 archivos necesitan / deberían / ​​admiten ecryptfs, por ejemplo,

   /etc/pam.d/common-auth:
              auth    required        pam_ecryptfs.so unwrap
   /etc/pam.d/common-session:
              session optional        pam_ecryptfs.so unwrap

Entonces, comenté las otras 2 instancias, reinicié, y todo funcionó, se monta automáticamente al iniciar sesión y se desmonta automáticamente al cerrar sesión tanto para los inicios de sesión gráficos como de consola. (Usé tty alternativos para verificar desde la cuenta raíz)

Esto es en 18.04 Lubuntu en computadora portátil, escritorio y virtualbox guest (host de Windows).

Estoy interesado en la experiencia de otros.

edit_1: redacción mejorada. edit_2: escritorio agregado y resultados de la prueba VB.

Roca roja
fuente
¿Deshabilitar / comentar alguna de esas líneas causó algún problema? ¿Cambiar su contraseña todavía vuelve a envolver el archivo de claves de eCryptfs?
Xen2050
Esto funcionó para mí en Linux Mint 19. Para agregar más detalles para otros: los cuatro archivos de configuración en /etc/pam.d que se refieren a ecryptfs son: common-auth, common-password, common-session, common-session- no interactivo Al comentar las líneas en common-password y common-session-noninteractive, se produjo el comportamiento deseado de desmontaje al cerrar sesión. Además, la entrada en common-auth se configuró en "opcional" en lugar de "requerida" como se supone que debe estar de acuerdo con la documentación. Sin embargo, dejé esto como está.
evencoil
@ Xen2050, perdón por la respuesta tardía. No detecté ningún problema después de los cambios comentando líneas y todavía no he intentado cambiar la contraseña.
Redrock
La modificación de la contraseña puede ser importante para probar, debe volver a ajustar la clave de cifrado con su nueva contraseña automáticamente, por lo que iniciar sesión la próxima vez funciona. Si no funciona, simplemente cambiar la contraseña a la anterior debería funcionar ... [siempre es bueno tener una copia de seguridad]
Xen2050
1
@ Xen2050, hice la prueba de cambiar la contraseña. funcionó.
Redrock
2

Lo hago con un script en rclocal

#!/bin/sh
#

while true; do
    if [ ! -d /run/user/1000 ]; then
        if [ -f /home/momo/.mounted ]; then
            umount /home/harry
        fi      
    fi

    if [ ! -d /run/user/1001 ]; then
        if [ -f /home/vm/.mounted ]; then
            umount /home/maud
        fi
    fi

    sleep 10
done
exit 0
walter wunsch
fuente
¿Cómo se obtiene el ID de usuario?
Avinash Raj
0

Si no necesita acceso desde cron o en trabajos (tareas no interactivas) a CUALQUIER directorio de inicio, entonces solo necesita comentar la línea

session  optional        pam_ecryptfs.so unwrap

en /etc/pam.d/common-session-noninteractive.

Esto hará que todos los directorios principales cifrados se desmonten cuando el usuario cierre sesión.

Geoff Mulligan
fuente