sábado, 3 de septiembre de 2016

Disco virtual cifrado con LUKS

Esta es una guía paso a paso para crear una unidad de disco virtual cifrada con LUKS en Fedora (aunque también debería funcionar en otras distribuciones) similar a lo que podíamos hacer con TrueCrypt. Probablemente encuentres en Internet muchas guías similares pero estos son los pasos que me han funcionado a mi y como tengo mala memoria los voy a dejar en este post para consultarlos cuando los necesite nuevamente.







Crear el disco virtual

Paso 1: Instalar dependencias

# dnf install cryptsetup

Paso 2: Crear un archivo para el disco virtual. En mi caso lo crearé con 1 GB de espacio.

# dd if=/dev/urandom of=/home/alguien/midisco bs=1M count=1024

Paso 3: Configuramos nuestro archivo (disco virtual) como un dispositivo loop.

# losetup /dev/loop0 /home/alguien/midisco 
# losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  0 /home/alguien/midisco


Paso 4: Configuramos LUKS en el dispositivo loop:

# cryptsetup luksFormat /dev/loop0

WARNING!
========
Esto sobreescribirá los datos en /dev/loop0 de forma irrevocable.

Are you sure? (Type uppercase yes): YES
Introduzca la frase contraseña: escribe-tu-clave
Verifique la frase contraseña: escribe-tu-clave


Paso 5: Abrimos el disco cifrado. Se creará una entrada en "/dev/mapper" que funcionará como un dispositivo de bloques normal. LUKS hace transparente el cifrado y descifrado hacia ese dispositivo.

# cryptsetup luksOpen /dev/loop0 cifrado
Introduzca la frase contraseña de /home/alguien/midisco:
 

# ls -lash /dev/mapper/cifrado
0 lrwxrwxrwx. 1 root root 7 feb 29 12:25 /dev/mapper/cifrado -> ../dm-4


Paso 6: Ahora le damos formato al dispositivo para poder utilizarlo como cualquier otra partición.

# mkfs.ext4 /dev/mapper/cifrado
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 261632 4k blocks and 65408 inodes
Filesystem UUID: e7a2d95f-2d05-4525-9560-e634e2c1b1e3
Respaldo del superbloque guardado en los bloques:
    32768, 98304, 163840, 229376

Allocating group tables: hecho                          
Escribiendo las tablas de nodos-i: hecho                          
Creating journal (4096 blocks): hecho
Escribiendo superbloques y la información contable del sistema de ficheros: hecho


Paso 7: Montamos la partición en alguna parte del árbol de ficheros.

# mount /dev/mapper/cifrado /home/alguien/cifrado

# ls -lash /home/alguien/cifrado/
total 24K
4,0K drwxr-xr-x.  3 root    root    4,0K feb 29 12:29 .
4,0K drwx------. 64 alguien alguien 4,0K feb 29 12:03 ..
 16K drwx------.  2 root    root     16K feb 29 12:29 lost+found


Y eso es todo, lo que guardemos en ese punto de montaje se guardará en nuestra unidad virtual cifrada y luego de cerrar el contenedor LUKS será inaccesible.


Cerrar el disco virtual

Paso 8: Cuando terminemos de trabajar desmontamos la partición, cerramos el contenedor LUKS y borramos el dispositivo loop0.

# umount /home/alguien/cifrado

# cryptsetup luksClose cifrado

# losetup -d /dev/loop0


Abrir el disco virtual

La próxima vez que necesitemos abrir nuestro contenedor cifrado repetiremos los pasos 3, 5 y 7.

# losetup /dev/loop0 /home/alguien/midisco

# cryptsetup luksOpen /dev/loop0 cifrado
Introduzca la frase contraseña de /home/alguien/midisco: 
escribe-tu-clave

# mount /dev/mapper/cifrado /home/alguien/cifrado/


Para terminar, aprovecho este post para compartir este enlace que explica como implementar negación plausible con LUKS.

Un saludo.

No hay comentarios:

Publicar un comentario