Cifrado de disco completo LUKS: Guía de configuración del servidor Linux

15 min de lectura - 5 de junio de 2026

hero section cover
Tabla de contenidos
  • Guía del servidor de cifrado de disco completo LUKS
  • ¿Por qué LUKS2 y qué hay que comprobar primero?
  • Distribución del disco
  • Configuración de LUKS con LVM
  • Gestión de claves y desbloqueo remoto
  • Fortalecimiento y prevención de bloqueos
Compartir

Cifrado de disco completo LUKS para servidores Linux, que abarca la configuración de LUKS2, la disposición de LVM, la gestión de claves, el desbloqueo remoto con Tang y TPM, y el endurecimiento.

Guía del servidor de cifrado de disco completo LUKS

LUKS (Linux Unified Key Setup) cifra todo un dispositivo de bloques de Linux, de modo que el contenido es ilegible sin la clave maestra. Una unidad robada, un chasis fuera de servicio, un disco de copia de seguridad olvidado: ninguno de ellos expone sus datos una vez que LUKS se ha configurado correctamente. Esta publicación explica cómo implementar el cifrado de disco completo LUKS en un servidor, incluyendo la distribución LVM, la gestión de claves, el desbloqueo remoto y los modos de fallo que impiden a los usuarios acceder a sus propios datos.

La implementación de referencia aquí es LUKS2 con LVM dentro del contenedor cifrado, en un servidor Linux con AES-NI en la CPU. Esa combinación gestiona cualquier carga de trabajo moderna, ofrece un buen rendimiento y cumple los requisitos de datos en reposo de HIPAA, PCI-DSS, RGPD y SOC 2.

¿Por qué LUKS2 y qué hay que comprobar primero?

LUKS cifra en la capa de dispositivos de bloque utilizando dm-crypt, con la clave maestra almacenada en ranuras de claves dentro del encabezado de LUKS. Esa separación es importante: se pueden rotar las frases de contraseña o añadir nuevas claves sin tener que volver a cifrar el disco.

LUKS2 es la opción predeterminada actual. Admite hasta 32 ranuras de clave, metadatos en formato JSON, recifrado en línea y cifrado autenticado mediante el --integrity indicador. LUKS1 admite 8 ranuras de clave y funciona bien en sistemas antiguos, pero las nuevas implementaciones deberían comenzar con LUKS2.

La sobrecarga de rendimiento con AES-NI suele ser inferior al 5 % en el hardware moderno. Compruébalo antes de empezar:

grep -o aes /proc/cpuinfo | head -1
cryptsetup benchmark

Si grep no devuelve nada, su CPU carece de AES-NI y el cifrado se verá limitado por la CPU bajo una carga elevada de E/S. cryptsetup benchmark muestra el rendimiento por cifrado, por lo que puede elegir el más rápido que admita su hardware. Confirme también que cryptsetup está instalado y que el dm-crypt módulo del kernel está disponible. Ambos vienen por defecto en Ubuntu, Debian, RHEL y Arch.

Distribución del disco

Dos particiones permanecen sin cifrar: la partición del sistema EFI (512 MB FAT32) y /boot (de 1 a 2 GB, ext4 o xfs). GRUB necesita leer ambas antes de poder solicitar la contraseña. Todo lo demás se encuentra dentro del contenedor LUKS.

La distribución recomendada es LVM dentro de LUKS: un contenedor LUKS que contiene un grupo de volúmenes LVM, con volúmenes lógicos para root, swap y cualquier partición de datos. Esto mantiene los metadatos de LVM cifrados y permite cambiar el tamaño o crear instantáneas de los volúmenes sin tocar la capa LUKS. LUKS sobre LVM también funciona, pero deja al descubierto la estructura del grupo de volúmenes.

ParticiónTamañoSistema de archivosCifrado
Sistema EFIDe 512 MB a 1 GBFAT32No
/bootDe 1 a 2 GBext4 / xfsNo
Contenedor LUKSEspacio restanteLUKS2
Raíz LVMDe 20 a 100 GB+ext4 / xfsSí (dentro de LUKS)
Intercambio LVMIgual que la RAMswapSí (dentro de LUKS)

ext4 es la opción predeterminada segura para el volumen raíz. xfs gestiona mejor los archivos grandes y las escrituras en paralelo, lo cual es importante para servidores multimedia, de listas de correo y de bases de datos. Para SSD y NVMe, añade la discard opción en /etc/crypttab para habilitar TRIM. TRIM revela qué sectores están en uso, lo que supone una pequeña fuga de información. En la mayoría de las cargas de trabajo, merece la pena por el beneficio de la nivelación de desgaste. Si tu modelo de amenazas incluye el análisis forense del dispositivo, déjalo desactivado.

Configuración de LUKS con LVM

Identifique el disco de destino con lsblk y borra cualquier metadato existente:

wipefs -a /dev/sdX

Opcionalmente, sobrescriba con datos aleatorios para que los bloques cifrados no se distingan del espacio vacío:

dd if=/dev/urandom of=/dev/sdX bs=1M status=progress

Inicialice el contenedor LUKS2. Utilice --sector-size 4096 para NVMe y SSD modernos con sectores físicos de 4K:

cryptsetup luksFormat --type luks2 --sector-size 4096 /dev/sdX
cryptsetup luksOpen /dev/sdX cryptdata

Haz una copia de seguridad del encabezado inmediatamente, antes de guardar ningún dato en el disco:

cryptsetup luksHeaderBackup /dev/sdX --header-backup-file luks-header-backup.img

Crea LVM sobre el contenedor desbloqueado y, a continuación, formatea los volúmenes lógicos:

pvcreate /dev/mapper/cryptdata
vgcreate vg_secure /dev/mapper/cryptdata
lvcreate -L 50G -n lv_root vg_secure
lvcreate -L 8G -n lv_swap vg_secure
 
mkfs.xfs /dev/vg_secure/lv_root
mkswap /dev/vg_secure/lv_swap

Añade una entrada a /etc/crypttab utilizando el UUID, no /dev/sdX, que puede cambiar entre reinicios. Obténlo con blkid /dev/sdX:

cryptdata UUID=<your-uuid> none luks,discard

A continuación, monte mediante /etc/fstab:

/dev/vg_secure/lv_root  /  xfs  defaults,noatime  0 1

Regenera el initramfs para que los enlaces de cifrado se carguen al arrancar:

# Debian/Ubuntu
update-initramfs -u -k all
 
# RHEL/Fedora
dracut -f --regenerate-all

Reinicia, introduce la contraseña y confirma la configuración con cryptsetup status cryptdata y lsblk -f. Este último debería mostrar crypto_LUKS como FSTYPE en la partición cifrada.

Gestión de claves y desbloqueo remoto

LUKS2 admite 32 ranuras de clave. Utiliza al menos tres desde el principio: una frase de contraseña de administrador, una clave de recuperación almacenada fuera de línea (impresa y guardada bajo llave, o en una memoria USB cifrada en una caja fuerte) y un archivo de clave para el desbloqueo automático de volúmenes de datos secundarios. Limítese a los 95 caracteres ASCII imprimibles, ya que los caracteres no ASCII causan problemas de distribución del teclado en el indicador de arranque que son muy difíciles de depurar. Cambie la contraseña de administrador cada vez que alguien con acceso abandone el equipo.

Para ver las ranuras activas con cryptsetup luksDump /dev/sdX, añade una clave con cryptsetup luksAddKey, y revoca una con cryptsetup luksKillSlot. Proteja cualquier archivo de claves con permisos estrictos:

chmod 0400 /etc/luks/keyfile.bin

En el caso de los servidores sin interfaz gráfica en centros de datos remotos, el mensaje de solicitud de contraseña es un problema. Hay tres formas de gestionarlo:

MétodoIdeal paraVentajas e inconvenientes
Dropbear en initramfsDesbloqueo manual a través de SSHSigue requiriendo intervención humana al reiniciar
Clevis + Tang (NBDE)Desbloqueo automático en una red de confianzaEl servidor debe conectarse al servidor Tang para arrancar
TPM2 a través de systemd-cryptenrollAutomatización ligada al hardwareLas actualizaciones de firmware pueden cambiar los valores PCR y bloquear el acceso

Dropbear ejecuta un pequeño servidor SSH en el initramfs. Te conectas por SSH tras el arranque e introduces la frase de contraseña manualmente. Clevis con Tang utiliza cifrado de disco vinculado a la red: el servidor se desbloquea siempre que pueda conectarse a un servidor Tang en la red de confianza. Tang no almacena tu clave, sino que proporciona una mitad de un intercambio McCallum-Relyea. Utiliza varios servidores Tang con el sss pin para que el desbloqueo siga funcionando si uno está desconectado. La vinculación TPM 2.0 a través de systemd-cryptenroll vincula la clave a PCR 7 (estado de arranque seguro), por lo que el servidor solo se desbloquea si no se ha manipulado el firmware ni el gestor de arranque. Mantén siempre una frase de contraseña como alternativa cuando utilices TPM, ya que las actualizaciones de firmware cambian los valores de PCR.

Fortalecimiento y prevención de bloqueos

Utilice frases de contraseña de al menos 20 caracteres. Habilite el cifrado autenticado con --integrity si luksFormat si su modelo de amenazas incluye la manipulación de datos y no solo la confidencialidad. Conlleva un coste de amplificación de escritura, por lo que debe realizar primero una prueba de rendimiento.

No clines un contenedor LUKS entre máquinas. La clave del volumen se copia con él, por lo que cambiar la contraseña en un host no protegerá al otro. Reformatea cada disco individualmente.

Para un desmantelamiento seguro, cryptsetup erase /dev/sdX borra todas las ranuras de claves en milisegundos, lo que hace que el disco sea irrecuperable sin destrucción física. Eso por sí solo es un argumento de peso para cifrar todo de forma predeterminada.

Modos de fallo habituales:

SíntomaCausa probableSolución
El arranque se bloquea en la solicitud de la contraseñaConfiguración del teclado incorrectaCambia la distribución o utiliza la clave de recuperación
«El dispositivo no es un dispositivo LUKS válido»Ruta de dispositivo incorrectaComprueba lsblk si se trata de una partición o del disco completo
El teclado no responde al arrancarOrden de los hooks de InitramfsColocar keyboard antes encrypt en mkinitcpio.conf
GRUB omite la solicitud de contraseñaGRUB_ENABLE_CRYPTODISK no establecidoEstablecer GRUB_ENABLE_CRYPTODISK=y en /etc/default/grub, reinstala GRUB
«No se ha encontrado el dispositivo raíz»Falta lvm2 o encrypt ganchosAñade hooks y ejecuta mkinitcpio -P

El modo de fallo más importante es la corrupción del encabezado. Si el encabezado de LUKS se pierde o se corrompe, los datos se pierden. No hay forma de recuperarlos salvo restaurarlos desde una copia de seguridad del encabezado. Guarde una copia en un soporte independiente, a ser posible en dos ubicaciones, y nunca en el propio disco cifrado. Para volúmenes secundarios no críticos, añada nofail a /etc/crypttab para que un montaje fallido no bloquee el arranque.

Los servidores dedicados de FDC se suministran con hardware que admite AES-NI y cifrado completo de disco de serie. Configura un servidor dedicado cuando estés listo para la implementación.

background image
¿Su servidor está frenando su crecimiento?

¿Cansado de despliegues lentos o límites de ancho de banda? FDC Servers ofrece potencia dedicada instantánea, alcance global y planes flexibles diseñados para cualquier escala. ¿Listo para actualizar?

Libere el rendimiento ahora

Blog

Destacados de la semana

Más artículos
Linux Traffic Control (tc): una guía práctica

Linux Traffic Control (tc): una guía práctica

Controle el ancho de banda, priorice el tráfico y configure la entrada y salida en Linux con tc. Configuración de HTB, IFB, DSCP y fq_codel para servidores reales.

12 min de lectura - 5 de junio de 2026

Por qué es importante tener un VPS potente y sin contador

7 min de lectura - 9 de mayo de 2025

Más artículos