Cómo cifrar un sistema de archivos BTRFS?

Cómo cifrar un sistema de archivos BTRFS?

La función de cifrado a nivel de sistema de archivos BTRFS todavía no está disponible. Pero puede usar una herramienta de cifrado de terceros como dm-crypt Para cifrar todos los dispositivos de almacenamiento de su sistema de archivos BTRFS.

En este artículo, le mostraré cómo cifrar los dispositivos de almacenamiento agregados a un sistema de archivos BTRFS con DM-Crypt. Entonces empecemos.

Abreviaturas

  • Luks - Configuración de teclas unificadas de Linux
  • HDD - Disco duro
  • SSD - Unidad de estado sólido

Requisitos previos

Para seguir este artículo:

  • Debe estar ejecutando Fedora 33 Workstation o Ubuntu 20.04 Distribución LTS Linux en su computadora.
  • Debe tener un HDD/SSD gratuito en su computadora.

Como puedes ver, tengo un HDD SDB en mi ubuntu 20.04 máquina LTS. Lo encriptaré y lo formatearé con el sistema de archivos BTRFS.

$ sudo lsblk -e7

Instalación de los paquetes requeridos en Ubuntu 20.04 LTS

Para cifrar dispositivos de almacenamiento y formatearlos con el sistema de archivos BTRFS, debe tener el btrfs-progs y criptetup Paquetes instalados en su Ubuntu 20.04 máquina LTS. Afortunadamente, estos paquetes están disponibles en el repositorio oficial de paquetes de Ubuntu 20.04 LTS.

Primero, actualice el caché del repositorio del paquete APT con el siguiente comando:

$ sudo apt actualización


Instalar btrfs-progs y criptetup, Ejecute el siguiente comando:

$ sudo apt install btrfs-progs cryptsetup


Para confirmar la instalación, presione Y y luego presiona <Ingresar>.


El btrfs-progs y criptetup Los paquetes y sus dependencias se están instalando.


El btrfs-progs y criptetup Los paquetes deben instalarse en este momento.

Instalación de paquetes requeridos en Fedora 33

Para cifrar dispositivos de almacenamiento y formatearlos con el sistema de archivos BTRFS, debe tener el btrfs-progs y criptetup Paquetes instalados en su máquina de estación de trabajo Fedora 33. Afortunadamente, estos paquetes están disponibles en el repositorio oficial de paquetes de la estación de trabajo Fedora 33.

Primero, actualice el caché del repositorio del paquete DNF con el siguiente comando:

$ sudo dnf makecache


Instalar btrfs-progs y criptetup, Ejecute el siguiente comando:

$ sudo dnf instalación btrfs -progs cryptsetup -y


Fedora 33 Workstation utiliza el sistema de archivos BTRFS de forma predeterminada. Por lo tanto, es más probable que ya tenga estos paquetes instalados, como puede ver en la captura de pantalla a continuación. Si por alguna razón, no están instalados, se instalarán.

Generando una clave de cifrado

Antes de que pueda cifrar sus dispositivos de almacenamiento con criptetup, Necesita generar una llave aleatoria de 64 bytes largas.

Puede generar su clave de cifrado y almacenarla en el /etc/cryptkey Archivo con el siguiente comando:

$ sudo dd if =/dev/urandom of =/etc/cryptkey bs = 64 count = 1


Se debe generar y almacenar una nueva clave de cifrado en el /etc/cryptkey archivo.


El archivo clave de cifrado /etc/cryptkey todos pueden ser leídos por defecto, como puede ver en la captura de pantalla a continuación. Este es un riesgo de seguridad. Solo queremos el raíz el usuario para poder leer/escribir en el /etc/archivo cryptkey.

$ ls -lh /etc /cryptkey


Para permitir que solo el usuario raíz lea/escriba al /etc/archivo cryptkey, Cambie los permisos de archivo de la siguiente manera:

$ sudo chmod -v 600 /etc /cryptkey


Como puede ver, solo el raíz El usuario tiene permiso de lectura/escritura (RW) para el /etc/cryptkey archivo. Entonces, nadie más puede ver lo que hay en el /etc/cryptkey archivo.

$ ls -lh /etc /cryptkey

Cifrar los dispositivos de almacenamiento con DM-Crypt

Ahora que ha generado una clave de cifrado, puede cifrar su dispositivo de almacenamiento. digamos, SDB, Con la tecnología de cifrado de disco Luks V2 (versión 2) de la siguiente manera:

$ sudo cryptSetup -v --Type Luks2 Luksformat /dev /sdb /etc /cryptkey

criptetup le pedirá que confirme la operación de cifrado.

NOTA: Todos los datos de su HDD/SSD deben eliminarse. Por lo tanto, asegúrese de mover todos sus datos importantes antes de intentar cifrar su HDD/SSD.


Para confirmar la operación de cifrado de disco, escriba (en mayúsculas) y presione . Puede tomar un tiempo completar.


En este punto, el dispositivo de almacenamiento /dev/sdb debe estar encriptado con la clave de cifrado /etc/cryptkey.

Apertura de dispositivos de almacenamiento cifrado

Una vez que haya cifrado un dispositivo de almacenamiento con criptetup, necesitas abrirlo con el criptetup herramienta para poder usarlo.

Puede abrir el dispositivo de almacenamiento encriptado SDB y asignarlo a su computadora como datos Dispositivo de almacenamiento de la siguiente manera:

$ sudo cryptsetup open --key-archivo =/etc/cryptkey-data de type luks2/dev/sdb


Ahora, el dispositivo de almacenamiento descifrado estará disponible en la ruta /dev/mapper/data. Debe crear su sistema de archivos deseado en el /dev/mapper/dispositivo de datos y monta el /dev/mapper/dispositivo de datos en lugar de /dev/sdb de aquí en adelante.

Creación del sistema de archivos BTRFS en dispositivos cifrados:

Para crear un sistema de archivos BTRFS en el dispositivo de almacenamiento descifrado /dev/mapper/data Con los datos de la etiqueta, ejecute el siguiente comando:

$ sudo mkfs.btrfs -l data/dev/mapper/data


Se debe crear un sistema de archivos BTRFS en el /dev/mapper/dispositivo de almacenamiento de datos, que se descifra desde el dispositivo de almacenamiento /dev/sdb (encriptado con luks 2).

Montaje del sistema de archivos BTRFS cifrado

Puede montar el sistema de archivos BTRFS que también ha creado anteriormente.

Digamos que desea montar el sistema de archivos BTRFS que ha creado anteriormente en el /datos directorio.

Entonces, crea el /datos Directorio de la siguiente manera:

$ sudo mkdir -v /datos


Para montar el sistema de archivos BTRFS creado en el /dev/mapper/dispositivo de almacenamiento de datos en el /datos directorio, ejecute el siguiente comando:

$ sudo monte /dev /mapper /data /data


Como puede ver, el sistema de archivos BTRFS creado en el dispositivo de almacenamiento cifrado SDB está montado en el /datos directorio.

$ sudo BTRFS FileSystem Show /Data

Montaje automáticamente en el sistema de archivos BTRFS encriptado en el tiempo de arranque

También puede montar el sistema de archivos BTRFS cifrado en el momento de arranque.

Para montar el sistema de archivos BTRFS cifrado en el momento de la arranque, debe:

  • descifrar el dispositivo de almacenamiento /dev/sdb en el momento de la bota usando el /etc/cryptkey archivo de clave de cifrado
  • Monte el dispositivo de almacenamiento descifrado /dev/mapper/data hacia /datos directorio

Primero, encuentre el uuid del SDB Dispositivo de almacenamiento cifrado con el siguiente comando:

$ sudo blkid /dev /sdb


Como puede ver, el uuid del SDB El dispositivo de almacenamiento cifrado es 1C66B0DE-B2A3-4D28-81C5-81950434F972. Será diferente para ti. Entonces, asegúrese de cambiarlo con el tuyo de ahora en adelante.


Para descifrar automáticamente el SDB Dispositivo de almacenamiento en el momento de arranque, debe agregar una entrada en el /etc/crypttab archivo.

Abre el /etc/crypttab archivo con el nano Editor de texto de la siguiente manera:

$ sudo nano /etc /crypttab


Agregue la siguiente línea al final del /etc/crypttab Archivo si está utilizando un HDD.

Datos UUID = 1C66B0DE-B2A3-4D28-81C5-81950434F972 /ETC /LUKS CRIPTYKEY, NOARLY

Agregue la siguiente línea al final del /etc/crypttab Archivo si está utilizando un SSD.

datos uuid = 1c66b0de-b2a3-4d28-81c5-81950434f972 /etc /cryptkey luks, noarly, descarte

Una vez que haya terminado, presione <Control> + X, seguido por Y, y <Ingresar> Para guardar el /etc/crypttab archivo.


Ahora, encuentre el uuid de los descifrados /dev/mapper/data Dispositivo de almacenamiento con el siguiente comando:

$ sudo blkid/dev/mapper/data


Como puede ver, el uuid del /dev/mapper/data El dispositivo de almacenamiento descifrado es DAFD9D61-BDC9-446A-8B0C-AA209BFAB98D. Será diferente para ti. Entonces, asegúrese de cambiarlo con el tuyo de ahora en adelante.


Para montar automáticamente el dispositivo de almacenamiento descifrado /dev/mapper/data En el directorio /Data en el momento del arranque, debe agregar una entrada en el /etc/fstab archivo.

Abre el /etc/archivo fstab con el nano Editor de texto de la siguiente manera:

$ sudo nano /etc /fstab


Ahora, agregue la siguiente línea al final del /etc/fstab archivo:

Uuid = dafd9d61-bdc9-446a-8b0c-aa209bfab98d /datos btrfs predeterminados 0 0 0

Una vez que haya terminado, presione <Control> + X, seguido por Y, y <Ingresar> Para guardar el /etc/fstab archivo.


Finalmente, reinicie su computadora para que los cambios entren en vigencia.

$ sudo reinicio


El dispositivo de almacenamiento encriptado SDB se descifra en un datos dispositivo de almacenamiento y el datos El dispositivo de almacenamiento está montado en el /datos directorio.

$ sudo lsblk -e7


Como puede ver, el sistema de archivos BTRFS, que se creó en el descifrado /dev/mapper/data El dispositivo de almacenamiento está montado en el /datos directorio.

$ sudo BTRFS FileSystem Show /Data

Conclusión

En este artículo, le he mostrado cómo cifrar un dispositivo de almacenamiento utilizando la tecnología de cifrado Luks 2 con criptsetup. También aprende cómo descifrar el dispositivo de almacenamiento encriptado y formatearlo con el sistema de archivos BTRFS también. Así como cómo descifrar automáticamente el dispositivo de almacenamiento encriptado y montarlo en el momento de arranque. Este artículo debería ayudarlo a comenzar con el cifrado del sistema de archivos BTRFS.