sábado, 24 de agosto de 2013

Cifrar particiones GNU/Linux

Pues el título lo dice todo, un pequeño manual sobre como cifrar particiones bajo GNU/Linux, como siempre yo los experimentos los hago bajo Debian, pero casi seguro que con algunas modificaciones funciona en otras distribuciones.

En primer lugar es necesario cargar los siguientes módulos, para ello utilizamos el comando "modprobe", recordad que tenemos el comando "lsmod" para ver los módulos cargados y que en el fichero "/etc/modules" definimos los módulos que queremos cargar en el inicio del sistema.
modprobe aes
modprobe dm-crypt
modprobe dm-mod
modprobe sha256
También necestiamos instalar el paquete "cryptsetup".
apt-get install cryptsetup
Y a continuación ejecutamos el siguiente grupo de comandos. Que en primer lugar encripta el dispositivo, accede a la información encriptada, crea el sistema de ficheros ext4 y finalmente monta el dispositivo.
cryptsetup -c aes-cbc-essiv:sha256 -y -s 256 luksFormat /dev/sdb1
cryptsetup luksOpen /dev/sdb1 decrypt
mkfs.ext4 /dev/mapper/decrypt
mount /dev/mapper/decrypt /mnt
Para montar el dispositvo simplemtne tendremos que ejecutar estas dos. Tras el primer comando nos pedirála clave que utilizamos para cifrar la partición y poder acceder al contenido. El segundo comando simplemente monta el dispositivo para poder leer o escribir.
cryptsetup luksOpen /dev/sdb1 decrypt
mount /dev/mapper/decrypt /mnt
Se pueden utilizar modificardores para que NO solicite la clave y se la pasemos directamente, pero no recomiendo para nada, las claves NUNCA deben estar escritas en ningún sitio, las claves se memorizan y puto. Si el sistema se cae ahí tiene que estar el administrador para volver a iniciarlo.

Este es un pequeño script que podemos dejar a mano para montar el sistema si se cae.
#!/bin/bash
cryptsetup luksOpen /dev/sdb1 decrypt
mount /dev/sdb1 /opt