LUKS – Encriptando discos duros en Linux

LUKS es un estándar para el encriptado de discos en Linux. A diferencia de otras soluciones, LUKS almacena la configuración necesaria en las cabecera de las particiones, lo que nos permite llevarnos los discos a otro sistema facilmente.
Voy a detallar brevemente como preparar un disco encriptado con LUKS, utilizando Debian 6.

1) Instalar cryptsetup-luks

# apt-get install cryptsetup

Comprobar que nuestro kernel tiene cargado el módulo dm-crypt:

# lsmod | grep dm_cry

Si no es así lo tendremos que cargar con modprobe.

2) Preparar disco
En mi caso voy a utilizar un disco duro externo (sde), podemos ver que actualmente tiene una única partición:

# fdisk -l /dev/sde
Disco /dev/sde: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000abcce

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sde1 1 182401 1465136001 83 Linux

Una buena práctica antes de encriptar un disco, sobre todo si este no es nuevo, es comprobar que funciona perfectamente y no tiene bloques erroneos. Para ello podemos usar la utilidad badblocks:

# badblocks -s -w /dev/sde1 -b 4096

Tener en cuenta que esta operación tarda varias horas.

3) Encriptar el filesystem

# cryptsetup luksFormat /dev/sde1

Podemos comprobar la cabecera luck con:

# cryptsetup -v luksDump /dev/sde1
LUKS header information for /dev/sde1
Version: 1
Cipher name: aes
Cipher mode: cbc-essiv:sha256
Hash spec: sha1
Payload offset: 2056
MK bits: 256

4) Formatear partición

# mkfs.ext3 /dev/mapper/cryptvol01
# tune2fs -i 0 -c 0 /dev/mapper/cryptvol01

5) Montar/desmontar volumen
Para montar el volumen a mano:

# mkdir /mnt/cryptvol01
# cryptsetup luksOpen /dev/sde1 cryptvol01
# mount /dev/mapper/cryptvol01 /mnt/cryptvol01

Y para desmontarlo:

# umount /mnt/cryptvol01
# cryptsetup luksClose /dev/mapper/cryptvol01

Documentación:
http://code.google.com/p/cryptsetup/
http://rm-rf.es/encriptar-un-filesystem-con-luks-y-cryptsetup/
http://wasesores.com/cifrar-discos-o-particiones-en-linux-ubuntu/
http://chernando.eu/seguridad/cifrando-una-particion-con-cryptsetup/

Advertisements