Desde el punto de vista de la seguridad, es importante cifrar sus datos confidenciales para protegerlos de miradas indiscretas y piratas informáticos. La configuración de clave unificada de Linux (LUKS) es una gran herramienta y un estándar común para el cifrado de disco de Linux. Debido a que almacena toda la información de configuración pertinente en el encabezado de la partición, facilita la migración de datos.
Para configurar discos o particiones cifradas con LUKS, deberá utilizar la utilidad cryptsetup. Desafortunadamente, una de las desventajas de encriptar sus discos es que tiene que proporcionar manualmente la contraseña cada vez que se reinicia el sistema o se vuelve a montar el disco.
Más recursos de Linux
- Hoja de trucos de los comandos de Linux
- Hoja de trucos de comandos avanzados de Linux
- Curso en línea gratuito:Descripción general técnica de RHEL
- Hoja de trucos de red de Linux
- Hoja de trucos de SELinux
- Hoja de trucos de los comandos comunes de Linux
- ¿Qué son los contenedores de Linux?
- Nuestros últimos artículos sobre Linux
Sin embargo, Network-Bound Disk Encryption (NBDE) puede desbloquear discos cifrados de forma automática y segura sin la intervención del usuario. Está disponible en varias distribuciones de Linux, comenzando con Red Hat Enterprise Linux 7.4, CentOS 7.4 y Fedora 24, y en versiones posteriores de cada una.
NBDE se implementa con las siguientes tecnologías:
- Marco de horquilla: Una herramienta de marco conectable que descifra y desbloquea automáticamente volúmenes LUKS
- Servidor Tang: Un servicio para vincular claves criptográficas a la presencia en la red
Tang proporciona las claves de cifrado al cliente Clevis. Según los desarrolladores de Tang, esto proporciona una alternativa segura, sin estado y anónima a los servicios de custodia de claves.
Dado que NBDE utiliza la arquitectura cliente-servidor, debe configurar tanto el cliente como el servidor. Puede usar una máquina virtual en su red local para su servidor Tang.
Instalación del servidor
Instale Tang usando sudo:
sudo yum install tang -y
Habilite el servidor Tang:
sudo systemctl enable tangd.socket --now
El servidor Tang funciona en el puerto 80 y debe agregarse a firewalld. Agregue la regla de firewall adecuada:
sudo firewall-cmd --add-port=tcp/80 --perm
sudo firewall-cmd --reload
El servidor debería estar ahora instalado.
Instalación del cliente
Para este ejemplo, suponga que agregó un nuevo disco de 1 GB llamado /dev/vdc
a su sistema.
Crea la partición primaria usando fdisk o parted:
sudo fdisk /dev/vdc
Complete los siguientes pasos para instalar el cliente.
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x4a6812d4.
Command (m for help):
Introduzca n para crear la nueva partición:
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Presiona Entrar tecla para seleccionar la partición primaria:
Using default response p
Partition number (1-4, default 1):
Presiona Entrar tecla para seleccionar el número de partición predeterminado:
First sector (2048-2097151, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151):
Presiona Entrar tecla para seleccionar el último sector:
Using default value 2097151
Partition 1 of type Linux and of size 1023 MiB is set
Command (m for help): wq
Escriba wq para guardar los cambios y salir de fdisk:
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Ejecute partprobe
para informar al sistema de los cambios en la tabla de particiones:
sudo partprobe
Instale el paquete cryptsetup usando sudo:
sudo yum install cryptsetup -y
Usa el cryptsetup luksFormat
comando para cifrar el disco. Deberá escribir SÍ cuando se le solicite y también elija e ingrese una frase de contraseña para encriptar el disco:
sudo cryptsetup luksFormat /dev/vdc1
WARNING!
========
This will overwrite data on /dev/vdc1 irrevocably.
Are you sure? (Type uppercase yes):
Enter passphrase for /dev/vdc1:
Verify passphrase:
Utilice cryptsetup luksOpen
comando para asignar la partición cifrada a un dispositivo lógico. Por ejemplo, use encryptedvdc1
como el nombre. También deberá ingresar la frase de contraseña nuevamente:
sudo cryptsetup luksOpen /dev/vdc1 encryptedvdc1
Enter passphrase for /dev/vdc1:
La partición cifrada ahora está disponible en /dev/mapper/encryptedvdc1
.
Cree un sistema de archivos XFS en la partición cifrada:
sudo mkfs.xfs /dev/mapper/encryptedvdc1
Cree un directorio para montar la partición cifrada:
sudo mkdir /encrypted
Utilice cryptsetup luksClose
comando para bloquear la partición:
cryptsetup luksClose encryptedvdc1
Instale los paquetes Clevis usando sudo:
sudo yum install clevis clevis-luks clevis-dracut -y
Modifique /etc/crypttab para abrir el volumen cifrado en el momento del arranque:
sudo vim /etc/crypttab
Agregue la siguiente línea:
encryptedvdc1 /dev/vdc1 none _netdev
Modifique /etc/fstab para montar automáticamente el volumen cifrado durante un reinicio o en el momento del arranque:
sudo vim /etc/fstab
Agregue la siguiente línea:
/dev/mapper/encryptedvdc1 /encrypted xfs _netdev 1 2
Para este ejemplo, suponga que la dirección IP del servidor Tang es 192.168.1.20
. También puede usar el nombre de host o el dominio si lo prefiere.
Ejecute la siguiente clevis
comando:
sudo clevis bind luks -d /dev/vdc1 tang '{"url":"http://192.168.1.20"}'
The advertisement contains the following signing keys:
rwA2BAITfYLuyNiIeYUMBzkhk7M
Do you wish to trust these keys? [ynYN] Y
Enter existing LUKS password:
Escribe Y para aceptar las claves del servidor Tang y proporcionar la contraseña de LUKS existente para la configuración inicial.
Habilite clevis-luks-askpass.path a través de systemctl para evitar que se le solicite la frase de contraseña para particiones no raíz.
sudo systemctl enable clevis-luks-askpass.path
El cliente está instalado. Ahora, cada vez que reinicie el servidor, el disco cifrado debería descifrarse y montarse automáticamente recuperando las claves del servidor Tang.
Si el servidor Tang no está disponible por algún motivo, deberá proporcionar la frase de contraseña manualmente para descifrar y montar la partición.