Fue terminar de instalar debian en un portátil, justo después de actualizar a testing
y asegurarme que contaba con todos los programas que iba a necesitar cuando se me encendió el piloto de la coherencia: ya que es un portátil y va a contener datos sensibles (no especialmente sensibles pero sí de esos que no quieres que se lean), debería cifrar la partición de los usuarios, el directorio /home
. Fue terminar y darme cuenta de que, en ocasiones, pararse a pensar ahorra un montón de trabajo.
Así que, ¿cómo puedo cifrar la partición de los usuarios sin reinstalar? Porque la opción fácil y bonita habría sido emplear LVM y el cifrado durante la instalación pero eso ya quedaba lejos y reinstalar no era una opción válida. La respuesta, tras buscar un poco por la red, se llama cryptsetup
para soportar el cifrado y libpam-mount
, ese viejo conocido, para montar la partición con el inicio de sesión del usuario.
Antes de nada, hay que instalar el programa y cargar los módulos correspondientes en el núcleo:
$ sudo aptitude install cryptsetup libpam-mount
$ sudo modprobe -a aes dm_mod dm_crypt sha256
A continuación actualizamos las librerías PAM para que utilice la nueva incorporación:
$ sudo pam-auth-update
A continuación, es el momento de preparar la partición home
. Este portátil sólo lo va a utilizar un único usuario, por lo que la contraseña de cryptsetup y la del usuario serán las mismas para hacer el acceso a los datos transparente. Eso no es óbice, siento ser tan pesado, para usar una contraseña débil.
Ciframos la partición con cryptsetup
, le cambiamos el nombre y creamos el sistema de ficheros:
$ sudo cryptsetup luksFormat /dev/sda9
$ sudo cryptsetup luksOpen /dev/sda9 homes
$ sudo mkfs.ext4 /dev/mapper/homes
Y. para terminar con la nueva partición cifrada, sólo queda pasar los datos del usuario. La opción de copiar los ficheros es mejor ejecutarla desde consola y como root:
# mount /dev/mapper/homes /mnt/
# cp -r /home/diego /mnt
Editamos el fichero que gestiona libpam-mount
para añadir la partición:
$ sudo vi /etc/security/pam_mount.conf.xml
Hay que añadir esta línea entre las etiquetas Volume definitions
:
<volume user="diego" fstyp="crypt" path="/dev/sda9" mountpoint="/home"></volume>
Y ya está listo. Al iniciar sesión con el usuario se montará la partición cifrada y se tendrá un acceso transparente a los ficheros.
Vía: disonancia mental.
9 ideas sobre “Cifrando la partición home en cinco minutos con cryptsetup y libpam-mount”
@n1mh Se te paso poner la ultima linea en el post para completar la tarea ¿o la has encriptado y hecho invisible? 😉
wordpress interpresta la etiqueta volume y la oculta. He hecho una pequeña chapuza pero es lo único que me ha funcionado.
¡Gracias por el aviso, Israelmgo!
Con este mismo procedimiento lo tengo yo hecho en mi portátil. Caos es un crack, aprendí (y seguiré aprendiendo) mucho de él.
A ver si me dan un respiro, que tengo mi entrada a punto de caramelo 🙂
Buen post sí señor ; ) es una opción menos farragosa si andas mal de tiempo que como lo suelo hacer yo vía LVM
Gracias isra !
Hola! Como es el tema de la particioón sda9 esa? es la partición vacía?? O corresponde a la que está montada actualmente como /home?
Hola Diego,
la partición sda9 contenía el directorio del usuario (vacío) pero los borra todos al pasarle cryptsetup y posteriormente mkfs.ext4.
saludos
Hola Diego.
Quería consultarte esto. Al ejecutar modprobe, me sale esto:
user$: modprobe -a aes dm_mod dm_crypt sha256
modprobe: ERROR: could not insert ‘aesni_intel’: No such device
modprobe: ERROR: could not insert ‘padlock_aes’: No such device
¿Qué puede estar ocurriendo?
Bueno la verdad me sirvió, muchas gracias! (fantan algunas explicaciones pero nada que buscando e informándose no se pueda saber)
Muchos preguntan porque no les anda, es que esto fue echo para debian 6 (lo vi en otra web), para los sistemas debian más actuales (del 8 para adelante) hay que cambiar algunas cositas, les detallo:
El servicio asd, no es necesario (no existe más):
modprobe -a dm_mod dm_crypt sha256
Cuando pasen la información (del disco «home antiguo») al nuevo, cuidado con los permisos, no se olviden de dar (si es necesario como root)
chmod 775 ./CARPETA_HOME_SU_USUARIO -R
chown SU_USUARIO:SU_GRUPO ././CARPETA_HOME_SU_USUARIO -R
Y por ultimo, no se puede poner en /home, le va a tirar error porque al cargar el sistema (aunque no lea cada capeta de usuario) lee el directorio y lo comprueba.
Se requiere una partición encriptada por cada usuario (al menos así me funciono)
Esto obviamente incide que en el momento de copiar sus archivos del «viejo home» a la nueva partición lo hagan en la raiz del directorio /mnt y no en /mnt/SU_USUARIO
Espero ser claro (mejor tarde que nunca)… saludos!
Muchas gracias por tu magnífica actualización. Estoy seguro que será de utilidad para muchos.
¡Saludos!