|
|
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]]
| |