Diferencia entre revisiones de «Receta 111»

De GhostWiki
Saltar a: navegación, buscar
 
Línea 1: Línea 1:
{{SecCiones}}
+
#REDIRECT [[Directorio_cifrado_usando_encfs._Automatización_vía_'pam'.]]
 
 
== Receta_111 ==
 
 
 
'''Título''': Directorio cifrado usando [http://www.arg0.net/encfs encfs]. Automatización vía 'pam'.
 
 
 
'''Autor:''' AngelD (angeld en froga punto net)
 
 
 
Una forma rápida y sencilla de cifrar información, ya sea en máquinas locales o remotas. También se trata como implementar el módulo [http://en.wikipedia.org/wiki/Pluggable_Authentication_Modules pam] para estos menesteres.
 
 
 
== encfs ==
 
 
 
Encfs es un sistema de cifrado de directorios en "espacio de usuario", utilizando [http://fuse.sourceforge.net/ fuse].
 
 
 
=== ventajas ===
 
 
 
Muy fácil de implementar y utilizar.
 
 
 
No necesitas tener espacio reservado para estos menesteres. Ocupa lo que utilizas
 
 
 
=== deventajas ===
 
 
 
No es realmente un sistema de ficheros. Hereda las características del sistema de ficheros donde se aloja.
 
 
 
Un usuario con permisos de lectura puede ver la fecha de modificación, el tamaño y los permisos de los ficheros cifrados.
 
 
 
== Sistemas utilizados ==
 
 
 
Debian Lenny
 
 
 
Debian Squeeze
 
 
 
== Requerimientos en Debian ==
 
 
 
libfuse2 > 2.6
 
fuse-utils
 
libpam-encfs (en de querer configurar la autenticación pam)
 
 
 
El usuario debe formar parte del grupo 'fuse'
 
 
 
== Creación del volumen cifrado ==
 
 
 
<tt>
 
cd
 
mkdir .cifrado.encfs cifrado
 
encfs /home/usuario/.cifrado.encfs /home/usuario/cifrado
 
</tt>
 
 
 
Al realizarse esta acción, se realizan unas preguntas (tipo de cifrado, tamaño de las claves, ...) antes de pedir la contrasña de cifrado. Para este ejemplo hemos usado el modo pre-configurado 'paranoia'.
 
 
 
== Montaje de un volumen cifrado ==
 
 
 
<tt>
 
encfs /home/usuario/.cifrado.encfs /home/usuario/cifrado
 
</tt>
 
 
 
Tras esto pide la contraseña y monta el volumen
 
 
 
== Desmontaje de un volumen cifrado ==
 
 
 
<tt>
 
/usr/bin/fusermount -u /home/usuario/cifrado
 
</tt>
 
 
 
== Automatización a base de '.bashrc' y '.bash_logout' ==
 
 
 
Esto puede ser útil para máquinas remotas, donde no queramos instalar el módulo pam, o simplemnte no queramos conplicarnos la vida. Basta con añadir las lineas indicadas al final de los archivos.
 
 
 
=== .bashrc ===
 
 
 
<tt>
 
/usr/bin/encfs -i 10 /home/usuario/.cifrado.encfs /home/usuario/cifrado
 
</tt>
 
 
 
El parámetro '-i 10' es el tiempo de espera para desmontar el sistema, si no se utiliza.
 
 
 
=== .bash_logout ===
 
 
 
<tt>
 
/usr/bin/fusermount -u /home/usuario/cifrado
 
</tt>
 
 
 
== pam y gdm ==
 
 
 
Para configurar la entrada vía 'pam', con todo el "home" del usuario cifrado, se requiere el módulo 'libpam-encfs'. En este ejemplo suponemos que tenemos creado, y con los permisos 'usuario:usuario' el directorio cifrado '/home/.usuario.enfs' y lo queremos montar en '/home/usuario'
 
 
=== /etc/fuse.conf ===
 
 
 
Autorizamos a los usuarios a montar directorios:
 
 
 
<tt>
 
user_allow_other
 
</tt>
 
 
 
=== /etc/security/pam_encfs.conf ===
 
 
 
Permitimos el montaje de el directorio cifrado de usuario sito en /home/.enc, en:
 
 
 
<tt>
 
- /home/.enc - -v allow_other
 
</tt>
 
 
 
=== /etc/pam.d/gdm ===
 
 
 
Añadimos justo antes de "@include common-auth":
 
 
 
<tt>
 
session required pam_encfs.so # Para que desmonte automaticamete
 
auth    required pam_encfs.so
 
</tt>
 
 
 
Ponemos "required" en vez de "requisite", para que si introducimos mal la password de la unidad comprimida, no te loguees sobre el directorio vacío.
 
 
 
Con todo esto conseguimos que gdm nos pregunte dos veces por la password, una para la unidad comprimida, y otra para la password del sistema. Si un usuario no tiene unidad comprimida, puede ignorar la primera password.
 
 
 
== pam y login por consola ==
 
 
 
Si deseamos que funcione todo esto al logearnos por consola, hay que realizar los mismos pasos en '/etc/fuse.conf' y '/etc/security/pam_encfs.conf', ademas de:
 
 
 
=== /etc/pam.d/login ===
 
 
 
Añadimos justo antes de "@include common-auth":
 
 
 
<tt>
 
session required pam_encfs.so # Para que desmonte automaticamete
 
auth    required pam_encfs.so
 
</tt>
 
 
 
== pam y password iguales para el usuario y el sistema cifrado ==
 
 
 
Si deseamos tener la misma password para el usuario y el sistema de cifrado, o lo que es lo mismo, para sólo teclear una password, si esta coincide:
 
 
 
=== /etc/pam.d/common-auth ===
 
 
 
Añadir a la linea 'pam_unix.so', el parámetro 'try_first_pass'.
 
 
 
Con esto conseguimos que las password del primer módulo pam (pam_encfs.so) se reutilice en el segundo (pam_unix.so), por lo que las password de cifrado y sistema TIENEN que ser iguales. Los usuarios sin directorio cifrado no se ven afectados.
 
 
 
== TODO ==
 
 
 
Posiblemente se pueda automatizar el cambio de contraseña del usuario y sistema cifrado simultanemente con '/etc/pam.d/passwd' y '/etc/pam.d/common-password', pero creo que por hoy es suficiente.
 
 
== Referencias ==
 
 
 
https://help.ubuntu.com/community/EncryptedHomeDirectoryHowto
 
 
 
http://pam-encfs.googlecode.com/svn/trunk/README
 
 
 
[[Categoría:Recetas]]
 

Revisión actual del 01:57 4 sep 2010