El cifrado de disco protege los datos en reposo. En un VPS el proveedor controla el hipervisor, por lo que no puede impedir que un proveedor decidido lea la memoria. Lo que hace bien es proteger frente a copias de seguridad perdidas, discos reciclados y almacenamiento robado o incautado. Sé claro sobre contra cuál de ellos te defiendes antes de dedicarle tiempo.
Decide de qué quieres protegerte
- Discos retirados o copiados: el cifrado ayuda mucho.
- Instantáneas filtradas: el cifrado ayuda si la clave no se almacena con la instantánea.
- Un atacante activo en el sistema en ejecución: el cifrado no ayuda, porque el volumen está desbloqueado.
- Un hipervisor malicioso: el cifrado no ayuda en un VPS. Un servidor dedicado con control total del hardware es la opción más sólida.
Opción 1: un volumen de datos cifrado
Este es el lugar más seguro para empezar. Conecta un segundo disco o crea un archivo loop, y guarda ahí los datos sensibles. El ejemplo usa un dispositivo vacío llamado /dev/vdb. Comprueba dos veces el nombre del dispositivo, porque formatear destruye su contenido.
sudo apt install -y cryptsetup
sudo cryptsetup luksFormat /dev/vdb
sudo cryptsetup open /dev/vdb secure
sudo mkfs.ext4 /dev/mapper/secure
sudo mkdir -p /srv/secure
sudo mount /dev/mapper/secure /srv/secure
Para cerrarlo de nuevo: sudo umount /srv/secure && sudo cryptsetup close secure.
Opción 2: un contenedor respaldado por archivo
Cuando no tienes un disco de repuesto, usa un archivo como contenedor.
sudo fallocate -l 20G /root/vault.img
sudo cryptsetup luksFormat /root/vault.img
sudo cryptsetup open /root/vault.img vault
sudo mkfs.ext4 /dev/mapper/vault
sudo mount /dev/mapper/vault /srv/vault
Opción 3: el disco raíz con desbloqueo remoto
Cifrar el disco raíz requiere una forma de introducir la frase de contraseña al arrancar, antes de que la red esté activa. La respuesta habitual es un pequeño servidor SSH (dropbear) dentro del initramfs. Esto depende de que tu proveedor te deje instalar una imagen personalizada o reinstalar con tu propio particionado, así que comprueba eso primero. Muchos paneles de VPS no lo permiten, y un error puede dejar el servidor sin poder arrancar, así que ten lista una opción de rescate.
En resumen: instala con una raíz cifrada, añade dropbear-initramfs, pon tu clave pública SSH en /etc/dropbear/initramfs/authorized_keys, regenera el initramfs, reinicia y desbloquea por SSH con cryptroot-unlock.
Gestiona bien la clave
- Usa una frase de contraseña larga y guárdala en un gestor de contraseñas, no en el servidor.
- Haz copia de seguridad de la cabecera LUKS:
sudo cryptsetup luksHeaderBackup /dev/vdb --header-backup-file header.img. Guárdala sin conexión. - No desbloquees automáticamente con un archivo de clave almacenado en el mismo disco. Eso anula el propósito.
- Recuerda que desbloquear al arrancar significa que un reinicio necesita tu presencia.
Combina el cifrado con copias de seguridad cifradas sólidas y lo básico del refuerzo en 15 minutos.