martes, 27 de abril de 2010

Crear sistemas de archivos cifrados con Ubuntu

Existen varias formas de cifrar sistemas de archivos en Linux, de hecho en la siguiente url https://help.ubuntu.com/community/EncryptedFilesystems se pueden consultar guías para realizarlo en Ubuntu.

Como ejemplo vamos a utilizar una forma sin entrar en discusiones de si es la mejor o la peor.

Primero vamos a crear un archivo con datos aleatorios que será el que contenga el sistema de archivos y que cifraremos para que nadie pueda ver su contenido.

Para hacer la prueba vale con un archivo de 100MB.

sudo dd if=/dev/urandom of=almacen bs=1M count=100

Ahora asociamos un dispositivo de tipo loop con el archivo que contendrá el sistema de archivos cifrado. Hay que hacer esto porque vamos a tratar el archivo como un dispositivo de bloques (dispositivo loop + archivo = dispositivo de bloques). Esto se consigue con el comando losetup y como se va a cifrar hay que especificar el algoritmo de cifrado. En esta caso se va a usar Blowfish con clave de 2048 bits. Existe mas algoritmos: XOR, AES128, AES192, AES256, twofish128, twofish160, twofish192, twofish256, blowfish128, blowfish160, blowfish192, blowfish256, serpent128, serpent192, serpent256, mars128, mars192, mars256, rc6-128, rc6-192, rc6-256, tripleDES,...

sudo losetup -e blowfish2048 /dev/loop0 almacen

En este momento hay que introducir la contraseña que se usara para proteger la clave que se va a generar para cifrar los datos. Si se obtienen el siguiente error: "ioctl: LOOP_SET_STATUS: No existe el fichero ó directorio" es necesario instalar el modulo para el cifrado que se va a utilizar.

sudo apt-get install loop-aes-utils
sudo losetup -e blowfish2048 /dev/loop0 almacen

Ahora hay que crear el sistema de archivos (dar formato) dentro del archivo.

sudo mkfs -t ext3 /dev/loop0

Lo siguiente es crear un punto de montaje para el sistema de archivos encriptado y montarlo.

sudo mkdir /mnt/cifrado
sudo mount -t ext3 /dev/loop0 /mnt/cifrado

A partir de este instante todo lo que se guarde en /mnt/cifrado quedara cifrado e inaccesible si no se tiene la contraseña. Así que cuidado con perderla.

Para terminar, una vez que ya se ha terminado de usar el sistema de archivos, hay que desmontarlo y eliminar la asociación entre el dispositivo loop y el archivo que contiene el sistema de archivos.

sudo umount /mnt/cifrado
sudo losetup -d /dev/loop0

No hay comentarios:

Publicar un comentario