Dm-crypt

De Guifi.net - Wiki Hispano

Dm-crypt es un mapeador de dispositivos[1] tal que provee cifrado transparente de dispositivos de bloque utilizando la nueva cryptoapi de Linux 2.6. Las escrituras a este dispositivo serán cifradas y las lecturas descifradas. Se podrá montar un sistema de archivos en el mismo de la manera habitual, pero no se podrán acceder los datos sin la clave.

Instalación de Herramientas

dmsetup

Ejecutar el comando:

apt-get install dmsetup

La instalación de este paquete creará los dispositivos de mapeo si es que no existen.

cryptsetup

cryptsetup es una herramienta que facilita el uso de dm-crypt, eliminando las llamadas directas a dmsetup.

apt-get install cryptsetup

Crear y cifrar una partición

Creamos la partición a nuestro gusto, si no está greada ya:

cfdisk /dev/sdb

En el siguiente ejemplo real se transformará el volumen físico /dev/sdb en el volumen lógico (cifrado) en /dev/mapper/101 (en este caso "101" es la etiqueta del dispositivo descifrado, en el ejemplo real hace referencia a una partición para una máquina virtual sobre OpenVZ) y se montará en /var/lib/vz/private/101.

Crear el volumen lógico:

cryptsetup -y create 101 /dev/sdb1

El parámetro "-y" fuerza a la usuaria a ingresar dos veces la clave a utilizar.

Crear el sistema de archivos:

 [[mkfs.ext4]] /dev/mapper/101

Montar el sistema de archivos:

mount /dev/mapper/101 /var/lib/vz/private/101

Acceder a la partición después de un reinicio

Cada vez que se reinicie el sistema operativo, se deberá re-ejecutar el comando cryptsetup e ingresar la misma clave. Si se ingresa una clave incorrecta, el dispositivo cifrado no podrá montarse y tendremos que destruirlo y crearlo otra vez. No hay que preocuparse ya que mientras no se formatee el dispositivo creado con la contraseña incorrecta, no se perderán datos.

Para que el montaje se realice en el booteo, se debe editar el fstab para tener /dev/mapper/101 montado en /var/lib/vz/private/101. Esto solo funcionará si cryptsetup es ejecutado antes que las particiones sean leídas de fstab.

/etc/init.d/cryptinit:
if [ -b /dev/mapper/101 ]; then
  /usr/bin/cryptsetup remove 101
fi
/usr/bin/cryptsetup create 101 /dev/sdb
 
cd/etc/rcS.d
ln -s../init.d/cryptinit S08cryptinit

Para hacer el montaje manualmente, se puede ejecutar el siguiente script:

if [ -b /dev/mapper/101 ]; then
  /usr/bin/cryptsetup remove 101
fi
/usr/bin/cryptsetup create privado /dev/sdb1
mount /dev/mapper/101 /var/lib/vz/private/101

Notas

  1. Mapeador de dispositivos o device-mapper es una nueva infraestructura en el Linux 2.6, la cual provee una manera genérica de crear capas virtuales de dispositivos de bloques que puedan realizar diferentes tareas sobre dispositivos de bloques reales, como ser stripping, concatenación, espejado, etc. El device-mapper es utilizado por las herramientas LVM2 y EVMS 2.x.

Enlaces externos

Herramientas personales