marqueta.org
You can't always apt-get what you want
Infosec - Cycling - Estudiantes
RHCE / RHCSA
Once a sysadmin, always a sysadmin
Crear un contenedor cifrado
En determinadas ocasiones es posible que queramos crear un disco “virtual” cifrado para almacenar cierta información sensible; podemos hacerlo con LUKS.
Para empezar nos aseguramos de que cryptsetup
esté instalado:
% sudo apt-get update
% sudo apt-get install cryptsetup
Ya podemos crear el fichero del tamaño deseado que alojará el contenedor. En este caso crearemos un fichero de 2 GB:
% dd if=/dev/zero of=container.img bs=1M count=2048
Es posible usar como input /dev/random
o /dev/urandom
si queremos que el disco esté inicializado con valores “seguros”. No es necesario en nuestro caso, en que /dev/zero
es válido (y, por supuesto, mucho más rápido).
En este momento ya podemos crear el contenedor LUKS. Ojo que hay que contestar YES
a la pregunta y proporcionar la clave de cifrado que necesitaremos más adelante para leer el disco:
% cryptsetup -y luksFormat ~/container.img
WARNING!
========
This will overwrite data on /home/user/container.img irrevocably.
Are you sure? (Type 'yes' in capital letters): YES
Enter passphrase for /home/user/container.img:
Verify passphrase:
% file container.img
container.img: LUKS encrypted file, ver 2 [, , sha256] UUID: 78e3ed0c-613d-48f7-8f6e-4a2324a6ae51
Bien, vamos a abrir el contenedor. Necesitamos ser root:
sudo cryptsetup luksOpen container.img secret
[sudo] password for user:
Enter passphrase for container.img:
Veremos que tenemos un nuevo objeto en el device mapper:
% ls -l /dev/mapper/
total 0
crw------- 1 root root 10, 236 oct 18 10:58 control
lrwxrwxrwx 1 root root 7 oct 18 14:11 secret -> ../dm-0
Pues bien, ese es el que vamos a formatear:
% sudo mkfs.ext4 /dev/mapper/secret
…y ya podemos montarlo en el punto de montaje de nuestra elección:
% sudo mount /dev/mapper/secret work
% $ ls -l work/
total 16
drwx------ 2 root root 16384 oct 18 14:23 lost+found
Ojo con los permisos que queremos dar al punto de montaje. Y listo, ya podemos trabajar con el disco cifrado.
Al terminar seguiremos dos pasos: desmontarlo y “cerrar” el contenedor:
% sudo umount work
% sudo cryptsetup luksClose secret
En un siguiente artículo veremos cómo:
- Montarlo automáticamente en el arranque (esperando la contraseña)
- Ampliar el tamaño del disco