dm-crypt (Español)/Encrypting a non-root file system (Español)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Estado de la traducción: esta traducción de Dm-crypt/Encrypting a non-root file system fue revisada el 2019-09-19. Si existen cambios puede actualizarla o avisar al equipo de traducción.

Los siguientes son ejemplos de encriptación de un sistema de archivos secundario, es decir, no raíz, con dm-crypt.

Descripción general

El cifrado de un sistema de archivos secundario generalmente protege solo los datos confidenciales, mientras deja el sistema operativo y los archivos de programa sin cifrar. Esto es útil para cifrar un medio externo, como una unidad USB, de modo que se pueda mover a diferentes equipos de forma segura. También se podría optar por encriptar conjuntos de datos por separado según quién tenga acceso a ellos.

Como dm-crypt es una capa de cifrado de nivel de bloque, solo cifra dispositivos completos, #Partición completa y #Dispositivo loop. Para cifrar archivos individuales se requiere una capa de cifrado de nivel de sistema de archivos, como eCryptfs o EncFS. Consulte Disk encryption (Español) para obtener información general sobre cómo proteger datos privados.

Partición

Este ejemplo cubre el cifrado de la partición /home, pero se puede aplicar a cualquier otra partición no raíz comparable que contenga datos de usuario.

Sugerencia: puede tener el directorio /home de un solo usuario en una partición, o crear una partición común para todos los directorios /home de los usuarios.

Primero asegúrese de que la partición esté vacía (sin un sistema de archivos asociado). Elimine la partición y cree una vacía si tiene un sistema de archivos. Luego prepare la partición borrándola con seguridad, vea Dm-crypt (Español)/Drive preparation (Español)#Borrar de forma segura la unidad de disco duro.

Cree la partición que contendrá el contenedor cifrado.

Luego configure el encabezado LUKS con:

# cryptsetup opciones luksFormat --type luks2 dispositivo

Sustituya dispositivo por la partición creada anteriormente. Vea Dm-crypt (Español)/Device encryption (Español)#Opciones de cifrado para la modalidad LUKS para conocer los detalles disponibles para opciones.

Para obtener acceso a la partición cifrada, desbloquéala con el mapeador de dispositivos, utilizando:

# cryptsetup open dispositivo nombre

Después de desbloquear la partición, estará disponible en /dev/mapper/nombre. Ahora crea un sistema de archivos de su elección con:

# mkfs.sistema_de_archivos /dev/mapper/nombre

Monte el sistema de archivos en /home, o si solo un usuario tiene acceso en /home/nombre_de_usuario, vea #Montaje y desmontaje manual.

Sugerencia: monte y desmonte una vez para verificar que el mapeado está funcionando como se espera.

Montaje y desmontaje manual

Para montar la partición:

# cryptsetup open dispositivo nombre
# mount -t sistema_de_archivos /dev/mapper/nombre /mnt/home

Para desmontarla:

# umount /mnt/home
# cryptsetup close nombre
Sugerencia: GVFS también puede montar particiones cifradas. Se puede usar un administrador de archivos con soporte para gvfs (por ejemplo, Thunar (Español)) permite montar la partición, y hará emerger un cuadro de diálogo solicitando la contraseña. Para otros escritorios, zulucryptAUR también proporciona una interfaz gráfica.

Desbloqueo y montaje automatizados

Existen tres soluciones diferentes para automatizar el proceso de desbloqueo de la partición y el montaje del sistema de archivos.

En el momento del arranque

Utilizando el archivo de configuración /etc/crypttab, el desbloqueo ocurre en el momento del arranque mediante el análisis automático de systemd. Esta es la solución recomendada si desea utilizar una partición común para todas las particiones «home» de los usuarios o montar automáticamente otro dispositivo de bloques cifrado.

Consulte Dm-crypt (Español)/System configuration (Español)#crypttab para obtener referencias y Dm-crypt (Español)/System configuration (Español)#Montaje en el momento del arranque para ver un ejemplo de configuración.

En el inicio de sesión del usuario

Utilizando pam_exec es posible desbloquear (cryptsetup open) la partición en el inicio de sesión del usuario: esta es la solución recomendada si desea tener el directorio «home» de un solo usuario en una partición. Vea dm-crypt (Español)/Mounting at login (Español).

También es posible desbloquear el inicio de sesión del usuario con pam_mount.

Dispositivo loop

Hay dos métodos para usar un dispositivo loop como un contenedor cifrado, uno que usa directamente losetup y otro no.

Sin losetup

La utilización de losetup directamente se puede evitar completamente haciendo lo siguiente [1]:

# dd if=/dev/urandom of=key.img bs=20M count=1
# cryptsetup --align-payload=1 luksFormat key.img

Antes de ejecutar cryptsetup, mire primero las opciones de cifrado para la modalidad LUKS y los algoritmos de cifrado y modalidades de operación para seleccionar la configuración adicional deseada.

Las instrucciones para abrir el dispositivo y el sistema de archivos son las mismas que para #Partición.

Tener un archivo demasiado pequeño le dará un error Requested offset is beyond real size of device /dev/loop0, pero, como referencia aproximada, la creación de un archivo 4 MiB lo encriptará con éxito. [2]

IfSi se crea un archivo más grande, dd de /dev/urandom se detendrá después de 32 MiB, requiriendo la opción iflag=fullblock para completar la escritura. [3]

El procedimiento de montar y desmontar manualmente es equivalente a #Montaje y desmontaje manual.

Con losetup

Un dispositivo de looppermite asignar un dispositivo de bloques a un archivo con la herramienta estándar losetup de util-linux. El archivo puede contener un sistema de archivos, que se puede usar como cualquier otro sistema de archivos. Muchos usuarios conocen TrueCrypt como una herramienta para crear contenedores cifrados. Casi la misma funcionalidad se puede lograr con un sistema de archivos loopback cifrado con LUKS y es el que se muestra en el siguiente ejemplo.

Primero, comience creando un contenedor cifrado, utilizando un generador de números aleatorios apropiado:

# dd if=/dev/urandom of=/bigsecret bs=1M count=10

Esto creará el archivo bigsecret con un tamaño de 10 megabytes.

Nota: para evitar tener que redimensionar el contenedor más adelante, asegúrese de hacerlo más grande que el tamaño total de los archivos que se cifrarán, para al menos también alojar los metadatos asociados que necesita el sistema de archivos interno. Si va a usar el modo LUKS, su encabezado de metadatos requiere de uno a dos megabytes por sí solo.

A continuación, cree el nodo del dispositivo /dev/loop0,de modo que podamos montar/usar nuestro contenedor:

# losetup /dev/loop0 /bigsecret
Nota: si le da el error /dev/loop0: No such file or directory, primero debe cargar el módulo del kernel con modprobe loop. En estos tiempos (Kernel 3.2) se crean dispositivos loop bajo demanda. Solicite un nuevo dispositivo loop con # losetup -f.

A partir de ahora, el procedimiento es el mismo que para #Partición, excepto por el hecho de que el contenedor ya está asignado al azar y no necesitará otro borrado seguro.

Sugerencia: los contenedores con dm-crypt pueden ser muy flexibles. Eche un vistazo a las características y documentación de Tomb. Proporciona un script de dm-crypt para un manejo rápido y flexible.

Desmontar y montar manualmente

Para desmontar el contenedor:

# umount /mnt/secret
# cryptsetup close secret
# losetup -d /dev/loop0

Para montar el contenedor de nuevo:

# losetup /dev/loop0 /bigsecret
# cryptsetup open /dev/loop0 secret
# mount -t ext4 /dev/mapper/secret /mnt/secret