Monthly Archives: February 2011

Sistema linux cifrado: partición de datos y swap

Hay cosas peores que el robo de un ordenador portátil, por ejemplo el robo de un portátil con toda la documentación dentro. No sólo por el robo de la información, que si hacemos copias de seguridad (ejem, ejem) debería ser mínimo, sino por la desagradable sensación de dejar parte de nuestra vida en manos de un desconocido, eso sin contar las claves, documentos y demás que si sean vitales para nuestro trabajo.

En Linux existe una solución muy sencilla para evitar ese problema, y es cifrar todas las particiones que sean elegidas para guardar los datos (generalmente el home del usuario, aunque es conveniente hacerlo con el swap).

El cifrado de particiones no afecta al rendimiento general del equipo, y ha sido pulido hasta convertirse en una opción estándar que suele ser ofrecida incluso durante la instalación, aunque siempre es mejor hacer las cosas a mano hasta saber cual es el funcionamiento real.

Eso es lo que intentaré explicar en los siguientes puntos. Como configurar un sistema linux ya instalado para que tenga cifradas las particiones de datos.

Creando la partición

Como trabajamos con una distribución basada en Red Hat (CentOS), las particiones de datos suelen estar guardadas en un contenedor LVM. En mi caso sigo sus reglas y en la instalación hago un contenedor LVM con todo el espacio que me queda para datos y sólo creo un partición swap. Luego, según lo voy necesitando lo voy asignando.

Creamos una partición de 10G para el home de los usuarios:

{bst@procserver00}~: lvm
lvm> lvcreate VolGroup00 -L 9.75G
#Lo crea como lvol0. Se puede cambiar de nombre:
lvrename VolGroup00 lvol0 LogVolHome

Borrar la información y cifrar los datos

Si el disco es nuevo o no nos importan mucho los datos que había dentro podemos saltar este paso. En caso contrario es buena idea no dejar ni rastro de los datos antiguos, aunque puede llevar bastante tiempo:

dd of=/dev/mapper/VolGroup00-LogVolHome bs=1G count=0 seek=8

En este punto tenemos la partición lista para ser cifrada. Lo haremos con un cifrado AES de 256 bits, suele ser la opción recomendada aunque si miramos el manual podemos ver los tipos de cifrados soportados.

cryptsetup --verify-passphrase --verbose --hash=sha256 --cipher=aes-cbc-essiv:sha256 --key-size=256 luksFormat /dev/mapper/VolGroup00-LogVolHome

WARNING!
========
This will overwrite data on /dev/mapper/VolGroup00-LogVolHome irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:

Acabamos de crear una partición cifrada dentro de nuestro contenedor LVM. Ahora intentaremos trabajar sobre ella:

cryptsetup luksOpen /dev/mapper/VolGroup00-LogVolHome homecr
Enter LUKS passphrase for /dev/mapper/VolGroup00-LogVolHome:
key slot 0 unlocked.
Command successful.

Con estos comandos hemos abierto la partición cifrada y la hemos llamado homecr. Ya podemos trabajar sobre ella, aunque antes es necesario formatearla:

mkfs.ext3 /dev/mapper/homecr

Este dispositivo funciona exactamente como cualquier unidad de disco. Es decir, podemos habilitarla y empezar a trabajar sobre ella:

mount /dev/mapper/homecr /home/

read more

Posted in Comandos, Tutoriales Tagged with: ,