LUKS: cifrado de datos de disco duro de Linux con soporte NTFS en Linux


El acrónimo LUKS significa Configuración de clave unificada de Linux , que es un método ampliamente utilizado de cifrado de disco utilizado por el Kernel de Linux y se implementa con el paquete cryptsetup .

La línea de comando cryptsetup cifra un disco de volumen sobre la marcha utilizando una clave de cifrado simétrica derivada de la frase de contraseña proporcionada que se proporciona cada vez que se monta un disco de volumen, una partición y también un disco completo (incluso una memoria USB) jerarquía del sistema de archivos y utiliza el cifrado aes-cbc-essiv: sha256 .

Debido a que LUKS puede cifrar todos los dispositivos de bloque (discos duros, memorias USB, discos flash, particiones, grupos de volúmenes, etc.) en sistemas Linux, se recomienda en gran medida para proteger medios de almacenamiento extraíbles, discos duros de portátiles o archivos de intercambio de Linux y no se recomienda para archivos. cifrado de nivel.

NTFS (Sistema de archivos de nueva tecnología) es un sistema de archivos propietario desarrollado por Microsoft.

Ubuntu 14.04 proporciona soporte completo para el cifrado LUKS y también soporte nativo NTFS para Windows con la ayuda del paquete ntfs-3g .

Para demostrar mi punto en este tutorial, agregué un nuevo disco duro (cuarto) en el cuadro Ubuntu 14.04 (la referencia del sistema al disco duro recién agregado es /dev/sdd ) que se dividirá en dos particiones.

  1. One partition (/dev/sdd1 -primary) used for LUKS encryption.
  2. The second partition (/dev/sdd5 – extended) formatted NTFS for accessing data on both Linux and Windows based systems.

Además, las particiones se montarán automáticamente en Ubuntu 14.04 después de reiniciar.

Paso 1: crear particiones de disco

1. Después de agregar físicamente su disco duro a su máquina, use el comando ls para listar todos los /dev/dispositivos (el cuarto disco es /dev/sdd ).

# ls /dev/sd*

2. A continuación, compruebe su disco duro recién agregado con el comando fdisk .

$ sudo fdisk –l /dev/sdd

Debido a que no se había escrito ningún sistema de archivos, el disco aún no contiene una tabla de particiones válida.

3. Los siguientes pasos cortan el disco duro para obtener un resultado de dos particiones usando la utilidad de disco cfdisk .

$ sudo cfdisk /dev/sdd

4. La siguiente pantalla abre el modo interactivo cfdisk . Seleccione el Espacio libre de su disco duro y navegue a la opción Nuevo usando las flechas de la tecla izquierda/derecha.

5. Elija su tipo de partición como Principal y presione Enter .

6. Escriba el tamaño de partición que desee en MB .

7. Cree esta partición al Inicio del espacio libre en el disco duro.

8. Luego navegue hasta la opción de partición Tipo y presione Enter .

9. El siguiente mensaje presenta una lista de todos los tipos de sistemas de archivos y su código numérico (número hexadecimal). Esta partición estará encriptada con Linux LUKS , así que elija el código 83 y presione Enter nuevamente para crear la partición.

10. Se crea la primera partición y el indicador de la utilidad cfdisk vuelve al principio. Para crear la segunda partición utilizada como NTFS , seleccione el espacio libre restante, navegue hasta la opción Nuevo y presione la tecla Intro .

11. Esta vez la partición será Lógica Extendida . Entonces, navegue a la opción Lógica y nuevamente presione Enter .

12. Ingrese el tamaño de su partición nuevamente. Para usar el espacio libre restante como la nueva partición, deje el valor predeterminado en tamaño y simplemente presione Enter .

13. Vuelva a elegir su código de tipo de partición. Para el sistema de archivos NTFS , elija el código de volumen 86 .

14. Después de revisar y verificar las particiones, seleccione Escribir , responda en la siguiente pregunta interactiva y luego Salir para dejar cfdisk . utilidad.

Felicidades ! Sus particiones se han creado con éxito y ahora están listas para ser formateadas y utilizadas.

15. Para verificar nuevamente el disco Tabla de particiones , emita nuevamente el comando fdisk que mostrará información detallada sobre la tabla de particiones.

$ sudo fdisk –l /dev/sdd

Paso 2: crear un sistema de archivos de partición

16. Para crear un sistema de archivos NTFS en la segunda partición, ejecute el comando mkfs .

$ sudo mkfs.ntfs /dev/sdd5

17. Para que la partición esté disponible, debe montarse en el sistema de archivos en un punto de montaje. Monte la segunda partición en el cuarto disco duro en el punto de montaje /opt usando el comando mount .

$ sudo mount /dev/sdd5 /opt

18. A continuación, compruebe si la partición está disponible y aparece en el archivo /etc/mtab mediante el comando cat.

$ cat /etc/mtab

19. Para desmontar la partición, utilice el siguiente comando.

$ sudo umount /opt

20. Asegúrese de que el paquete cryptsetup esté instalado en su sistema.

$ sudo apt-get install cryptsetup		[On Debian Based Systems]

# yum install cryptsetup				[On RedHat Based Systems]

21. Ahora es el momento de formatear la primera partición en el cuarto disco duro con el sistema de archivos ext4 emitiendo el siguiente comando.

$ sudo luksformat  -t ext4  /dev/sdd1

Responda con en mayúsculas a la pregunta “ ¿Está seguro? ” e ingrese tres veces la frase de contraseña deseada.

Nota: Dependiendo del tamaño de su partición y la velocidad del HDD , la creación del sistema de archivos puede tardar un poco.

22. También puede verificar el estado del dispositivo de partición.

$ sudo cryptsetup luksDump  /dev/sdd1

23. LUKS admite un máximo de 8 contraseñas agregadas. Para agregar una contraseña , use el siguiente comando.

$ sudo cryptsetup luksAddKey /dev/sdd1

Para eliminar una contraseña, utilice.

$ sudo cryptsetup luksRemoveKey /dev/sdd1

24. Para que esta partición cifrada esté activa, debe tener una entrada de nombre (inicializarse) en el directorio /dev/mapper con la ayuda de cryptsetup paquete.

Esta configuración requiere la siguiente sintaxis de línea de comando:

$ sudo cryptsetup luksOpen  /dev/LUKS_partiton  device_name

Donde " nombre_dispositivo " puede ser cualquier nombre descriptivo que le guste. (Lo llamo mío volumen_criptográfico ). El comando real se verá como se muestra a continuación.

$ sudo cryptsetup luksOpen  /dev/sdd1 crypted_volume

25. Luego verifique si su dispositivo está listado en /dev/mapper , directorio, enlace simbólico y estado del dispositivo.

$ ls /dev/mapper
$ ls –all /dev/mapper/encrypt_volume
$ sudo cryptsetup –v status encrypt_volume

26. Ahora, para hacer que el dispositivo de partición esté ampliamente disponible, móntelo en su sistema bajo un punto de montaje usando el comando mount.

$ sudo mount  /dev/mapper/crypted_volume  /mnt

Como puede verse, la partición está montada y es accesible para escribir datos.

27. Para que no esté disponible, simplemente desconéctelo de su sistema y cierre el dispositivo.

$ sudo umount  /mnt
$ sudo cryptsetup luksClose crypted_volume

Paso 3: montar la partición automáticamente

Si usa un disco duro fijo y necesita que ambas particiones se monten automáticamente en el sistema después de reiniciar, debe seguir estos dos pasos.

28. Primero edite el archivo /etc/crypttab y agregue los siguientes datos.

$ sudo nano /etc/crypttab
  1. Target name: A descriptive name for your device ( see above point 22 on EXT4 LUKS).
  2. Source drive: The hard-disk partition formatted for LUKS ( see above point 21 on EXT4 LUKS).
  3. Key file: Choose none
  4. Options: Specify luks

La línea final se vería como se muestra a continuación.

encrypt_volume               /dev/sdd1          none       luks

29. Luego edite /etc/fstab y especifique el nombre de su dispositivo, punto de montaje, tipo de sistema de archivos y otras opciones.

$ sudo nano /etc/fstab

En la última línea, utilice la siguiente sintaxis.

/dev/mapper/device_name (or UUID)	/mount_point     filesystem_type     options    dump   pass

Y agregue su contenido específico.

/dev/mapper/encrypt_volume      /mnt    ext4    defaults,errors=remount-ro     0     0

30. Para obtener el UUID del dispositivo, utilice el siguiente comando.

$ sudo blkid

31. Para agregar también el tipo de partición NTFS creado anteriormente, use la misma sintaxis anterior en una nueva línea en fstab (aquí se usa la redirección de archivos adjuntos de Linux).

$ sudo su -
# echo "/dev/sdd5	/opt	ntfs		defaults		0              0"  >> /etc/fstab

32. Para verificar los cambios reinicie su máquina, presione Enter después del mensaje de inicio " Iniciando la configuración del dispositivo de red " y escriba la frase de contraseña .

Como puede ver, ambas particiones de disco se montaron automáticamente en la jerarquía del sistema de archivos de Ubuntu. Como consejo, no use volúmenes encriptados automáticamente del archivo fstab en servidores físicamente remotos si no puede tener acceso a la secuencia de reinicio para proporcionar su contraseña de volumen encriptada.

La misma configuración se puede aplicar en todos los tipos de medios extraíbles como memorias USB, memorias Flash, discos duros externos, etc. para proteger datos importantes, secretos o sensibles en caso de escuchas o robos.