Icono del sitio Blog personal de Guido Cutipa

Cómo encriptar/cifrar particiones Linux con LUKS: Tutorial paso a paso

Hola amigos, en este post les mostraré una forma de proteger la privacidad de nuestros datos utilizando LUKS (para tener una partición linux con clave de acceso).

LUKS (de las siglas en inglés, Linux Unified Key Setup) es una especificación de cifrado de disco creado por Clemens Fruhwirth, originalmente destinado para Linux. Mientras la mayoría del software de cifrado de discos implementan diferentes e incompatibles formatos no documentados, LUKS especifica un formato estándar en disco, independiente de plataforma, para usar en varias herramientas. Esto no sólo facilita la compatibilidad y la interoperabilidad entre los diferentes programas, sino que también garantiza que todas ellas implementen gestión de contraseñas en un lugar seguro y de manera documentada.

La implementación de referencia funciona en Linux y se basa en una versión mejorada de cryptsetup, utilizando dm-crypt como la interfaz de cifrado de disco. En Microsoft Windows, los discos cifrados con LUKS pueden ser utilizados con FreeOTFE. Ha sido diseñado para ajustarse a la clave de configuración TKS1 de sistema seguro.

https://es.wikipedia.org/wiki/LUKS

LUKS (Linux Unified Key Setup), es un estándar para la encriptación de dispositivos, LUKS encripta la partición o el volumen; el volumen debe ser desencriptado antes de que el file system sea montado.

Este artículo asume que posees los conocimientos mínimos de Linux, sabes cómo usar la terminal, y lo más importante, conoces tu servidor. La configuración es simple y se asume que estás ejecutando la terminal con la cuenta de root, si no es así, deberás adicionar ‘sudo’ a los comandos para obtener los privilegios de root.

Instalar la herramienta cryptsetup

Es necesario instalar el siguiente paquete:

apt-get install cryptsetup

O:

apt install cryptsetup

Creación de una partición encriptada

Para esto, debemos tener ya una partición creada (vacía), en este tutotial asumiremos que la partición a encriptar es /dev/sdb2.

En los siguientes enlaces se encuentran referencias de como crear particiones en linux:

Para encriptar la partición y darle un password ejecutar:

cryptsetup luksFormat /dev/sdb2

Abrimos la partición con la contraseña correcta, el sistema lo abrirá como un volumen /dev/mapper/nombreParticion

cryptsetup luksOpen /dev/sdb2 nombreParticion

Después de abrirlo, le damos formato:

mkfs.ext4 /dev/mapper/nombreParticion

Creamos el directorio donde se montará el volumen y después lo montamos:

mkdir /particionsecreta
mount /dev/mapper/nombreParticion /particionsecreta

Para verificar el estado ejecutamos:

cryptsetup -v status nombreParticion

Desmontar partición encriptada

Una vez terminado el uso de nuestra partición encriptada, la desmontamos ejecutando:

umount /dev/mapper/nombreParticion

Cerramos el volumen con la contraseña:

cryptsetup luksClose nombreParticion

Montado de forma persistente

En caso de que se requiera montar de forma persistente la partición encriptada, será necesario realizar los siguientes cambios:

Crear un archivo /etc/crypttab:

nano /etc/crypttab

Adicionar el siguiente contenido:

nombreParticion    /dev/sdb2

Opcionalmente se puede adicionar la dirección del archivo con la contraseña, sin embargo, es inseguro hacerlo.

Después de creado el crypttab, añadimos una línea al /etc/fstab:

/dev/mapper/nombreParticion    /particionSecreta /ext4  defaults 1 2

Con eso se monta automaticamente, el momento de iniciar el sistema el equipo pedirá el password de la partición.

Para hacer la prueba de la última configuración ejecutamos:

mount -a

Salir de la versión móvil