Cómo encriptar una partición con DM-Crypt LUKS

cryptsetup

A nadie escapa que hay que buscar mejorar la seguridad de nuestros equipos en la medida de lo posible, ello tanto para ordenadores de sobremesa como para portátiles, aunque en el caso de estos últimos es directamente algo imperativo -sobre todo si los utilizamos para el trabajo- ya que el hecho de llevarlos de uno a otro lugar aumenta las posibilidades de perderlo o de que nos sea robado, y en ambos casos nuestra información puede quedar expuesta y las consecuencias de ello serían muy graves.

Las alternativas en este sentido son unas cuantas, y eso es lo bueno del software libre en general, aunque en este caso quiero hablar de DM-Crypt LUKS, una solución de encriptación muy popular desde hace tiempo gracias al hecho de estar integrada al kernel como un módulo -ofreciendo acceso a las API de Crypto del kernel de Linux– y ofrecer encriptación transparente y la posibilidad de mapear dispositivos y particiones en niveles de bloques virtuales, permitiendo así encriptar particiones, discos duros completos, volúmenes RAID, volúmenes lógicos, archivos o unidades extraíbles.

Para comenzar necesitamos disponer de una partición libre (en mi caso, /dev/sda4), así que si ese no es el caso vamos a tener que crear una nueva partición mediante alguna herramienta como GParted. Una vez que ya disponemos de espacio libre vamos a comenzar por instalar cryptsetup si es que ya no disponemos de esta herramienta, que en general suele estar incluída por defecto pero quizá cuando instalamos nuestro Ubuntu optamos por una instalación mínima:

# apt-get install cryptsetup

Ahora vamos a comenzar por inicializar la partición que vamos a encriptar, para lo cual utilizamos aquella partición libre que mencionábamos más atrás. Este es un paso que además genera la clave inicial, y aunque su nombre pareciera indicarnos que se da formato a la partición eso no sucede, sino que simplemente se la prepara para trabajar con la encriptación (en nuestro caso hemos optado por AES con un tamaño de clave de 512 bytes:

# cryptsetup –verbose –verbose –cipher aes-xts-plain64 –key-size 512 –hash sha512 –iter-time 5000 –use-random luksFormat /dev/sda4

Vamos a recibir un mensaje de advertencia donde se nos avisa que los contenidos que tengamos almacenados en este momento en /dev/sda4, y se nos pregunta si estamos seguros. Asentimos escribiendo YES, así en mayúsculas, y luego se nos pide ingresar la frase LUKS, dos veces para asegurarnos que no haya errores.

Ahora ‘abrimos’ el contenedor encriptado, a la vez que le otorgamos un nombre virtual, que será con el que nos aparezca en el sistema (por ejemplo cuando ejecutamos el comando df -h para visualizar las diferentes particiones, en nuestro caso lo veremos en /dev/mapper/encriptado):

# crytpsetup luksOpen /dev/sda4 encriptado

Se nos pide la clave LUKS que hemos creado anteriormente, la ingresamos y ya estamos listos. Ahora debemos crear el sistema de archivos para esta partición encriptada:

# mkfs.ext3 /dev/mapper/encriptado

El paso siguiente es el de añadir esta partición al archivo /etc/crypttab, de funcionamiento similar a /etc/fstab ya que se encarga de proveer de las unidades encriptadas al inicio del sistema:

# cryto_test /dev/sda4 none luks

Luego creamos el punto de montaje de esta partición encriptada y añadimos toda esa información al archivo /etc/fstab para que tengamos todo disponible con cada reinicio:

# mkdir /mnt/encriptado

# nano /etc/fstab

Añadiendo lo siguiente deberíamos estar bien, aunque quienes busquen lo más personalizado pueden echar un vistado a las páginas de manual de fstab (man fstab) donde hay abundante información al respecto:

/dev/mapper/encriptado /mnt/encriptado ext3 defaults 0 2

Ahora, cada vez que reiniciemos el sistema se nos pedirá que ingresemos la frase de contraseña, y luego de hacerlo se desbloqueará la partición encriptada para que podamos tenerla disponible.


Un comentario, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Jaime dijo

    Gracias por tu artículo.
    Tengo un problema no se si a más personas les ocurre como a mi:

    Sigo los pasos que has detallado y después de comprobar que está instalado inicio el segundo caso–>

    cryptsetup –verbose –verbose –cipher aes-xts-plain64 –key-size 512 –hash sha512 –iter-time 5000 –use-random luksFormat /dev/sda4

    cryptsetup: Acción desconocida

    Estoy usando Kubuntu 15.04. Alguna idea de como se puede solucionar.

    Gracias