Cómo cifrar unidades de almacenamiento con LUKS en Linux

Cómo cifrar unidades de almacenamiento con LUKS en Linux
Este artículo cubrirá una guía sobre el uso de la "configuración de clave unificada de Linux" o el estándar de cifrado de LUKS que se puede utilizar para crear unidades de almacenamiento cifradas y protegidas con contraseña. Durante el cifrado, Luks reserva un espacio en la unidad de almacenamiento y almacena la información necesaria necesaria para el cifrado y el descifrado en la unidad de almacenamiento en sí. Esta metodología de cifrado en disco garantiza la compatibilidad de plug and play en las distribuciones de Linux y la fácil transferibilidad de las unidades de datos. Siempre que tenga LUK instalados en su sistema Linux y conozca la contraseña, podrá descifrar fácilmente cualquier unidad de datos cifrada de LUKS en cualquier distribución de Linux.

Instalación de luks

Luks es parte del paquete "CryptSetup", puede instalarlo en Ubuntu ejecutando el comando a continuación:

$ sudo apt install cryptsetup

Puede instalar CryptSetup en Fedora ejecutando el comando a continuación:

$ sudo dnf install cryptSetup-Luks

CryptSetup se puede instalar en Archlinux usando el siguiente comando:

$ sudo Pacman -S CryptSetup

También puede compilarlo desde su código fuente disponible aquí.

Encontrar unidades de almacenamiento conectadas en un sistema Linux

Para cifrar una unidad con LUKS, primero deberá determinar su ruta correcta. Puede ejecutar el comando a continuación para enumerar todas las unidades de almacenamiento instaladas en su sistema Linux.

$ LSBLK -O Nombre, ruta, modelo, proveedor, tamaño, fsused, fsuse%, tipo, punto de montaje

Verá alguna salida similar a esta en un terminal:

Si observa los metadatos de salida y unidad, puede encontrar fácilmente una ruta para unidades conectadas (enumeradas en la columna "ruta"). Por ejemplo, he conectado una unidad de pulgar externa realizada por trascend. Mirando la captura de pantalla, se puede inferir que la ruta para esta unidad es "/dev/sdb".

Alternativamente, puede ejecutar el comando a continuación para encontrar la ruta correcta para cualquier unidad de almacenamiento conectada.

$ sudo lshw -short -c disco

Obtendrá alguna salida similar a esta.

Cualquiera que sea la ruta de transmisión en su caso, tome nota de ella, ya que se usará durante el cifrado de LUKS.

Cifrar una unidad con LUKS

Antes de seguir adelante, debe saber que el cifrado de Luks eliminará todos los datos existentes en la unidad. Si hay archivos importantes en la unidad de almacenamiento, haga una copia de seguridad de antemano.

Ahora que tiene la ruta de unidad desde el paso anterior, puede cifrar una unidad usando LUKS ejecutando el comando a continuación. Asegúrese de reemplazar "/dev/sdc" con la ruta de unidad que encontró en el paso anterior.

$ sudo cryptsetup --verbose luksformat /dev /sdc

Siga las instrucciones en pantalla e ingrese una contraseña.

Al final, debe recibir un mensaje de "comando exitoso" que indique que el cifrado ha sido exitoso.

También puede volcar los metadatos de cifrado y verificar que la unidad se haya cifrado correctamente ejecutando el comando a continuación (reemplazar "/dev/sdc" según sea necesario):

$ sudo cryptsetup luksdump /dev /sdc

Descifrar y montar una unidad encriptada de Luks

Para descifrar una unidad encriptada con LUKS, ejecute el comando a continuación mientras especifica la ruta de la unidad encriptada conectada a su sistema. Puede reemplazar "Drivedata" con cualquier otro nombre, actuará como un identificador para el dispositivo descifrado.

$ sudo cryptSetup -VERBOSE LUKSOPEN /DEV /SDC DRIVEDATA

El mensaje "Comando exitoso" indica que la unidad se ha descifrado y mapeado como un nuevo dispositivo de almacenamiento llamado "Drivedata" en su sistema. Si ejecuta el comando "LSBLK", la unidad asignada aparecerá como una nueva unidad de almacenamiento conectada a su sistema Linux.

Hasta este punto, la unidad encriptada de Luks ha sido descifrado y mapeado como un dispositivo, pero no está montado. Puede verificar la información sobre la unidad asignada ejecutando el comando a continuación (reemplace "Drivedata" según sea necesario):

$ sudo cryptsetup -verbose status drivedata

La unidad mapeada actúa como un dispositivo de almacenamiento real conectado a su sistema. Pero todavía no contiene particiones con sistemas de archivos. Para leer y escribir archivos en la unidad asignada, deberá crear una partición. Para crear una partición ext4, ejecute el siguiente comando mientras especifica la ruta de la unidad mapeada.

$ sudo mkfs.ext4/dev/mapper/drivedata

Espere a que termine el proceso. Este paso debe hacerse solo una vez o cuando necesite forzar la eliminación completa de la partición. No realice este paso cada vez que conecte la unidad encriptada, ya que borrará los datos existentes.

Para administrar archivos en la unidad asignada formateada como una partición ext4, deberá montarlo. Para hacerlo, ejecute los siguientes dos comandos en sucesión.

$ sudo mkdir /medios /mydrive
$ sudo monte/dev/mapper/Drivedata/Media/mydrive

El primer comando crea un nuevo punto de montaje para la unidad mapeada. Puede suministrar cualquier camino. El siguiente comando monta la unidad asignada para que pueda acceder a ella desde la ruta especificada en el comando anterior.

Una vez montado, podrá acceder a la unidad asignada desde un administrador de archivos gráfico o desde la línea de comando como cualquier otra unidad de almacenamiento. Para desmontar, ejecute el siguiente comando mientras especifica la ruta completa del punto de montaje.

$ sudo Umount /Media /mydrive

Conclusión

Luks proporciona una forma de cifrar una unidad de almacenamiento completa a la que solo se puede acceder utilizando la contraseña creada durante el cifrado. Dado que es un sistema de cifrado en disco en el disco donde la información de cifrado se almacena en el dispositivo cifrado en sí, puede conectar la unidad encriptada en cualquier sistema de Linux y descifrarla utilizando LUK para obtener acceso inmediato a datos cifrados.