En este tutorial, aprenderemos a encriptar la partición swap de un servidor Linux bajo Debian, asegurando que no requiera una contraseña en cada arranque. Este proceso es esencial para mantener la seguridad y privacidad de los datos, especialmente en entornos de servidor. Utilizaremos el disco /dev/sdb
para esta configuración.
1. Verificar la Configuración del Disco
Primero, verificamos los discos disponibles y nos aseguramos de que la partición swap no esté montada.
lsblk
Output:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 100G 0 disk
└─sda1 8:1 0 100G 0 part /
sdb 8:16 0 1G 0 disk
2. Instalar cryptsetup
Instalamos cryptsetup
, que es la herramienta necesaria para encriptar la partición.
sudo apt update
sudo apt install cryptsetup
3. Deshabilitar la Swap Actual
Si la partición swap está activa, deshabilítala con el siguiente comando:
sudo swapoff -a
4. Modificar fstab
Editamos el archivo /etc/fstab
para eliminar o comentar cualquier entrada existente para la partición swap. Esto es crucial para evitar conflictos.
sudo vi /etc/fstab
Comentar o eliminar la línea que hace referencia a la swap, por ejemplo:
#/dev/sda2 none swap sw 0 0
5. Configurar crypttab
Editamos el archivo /etc/crypttab
para agregar una entrada para la nueva partición swap encriptada. Supongamos que tu partición swap es /dev/sdb
.
sudo vi /etc/crypttab
Agrega la siguiente línea (reemplaza sdb
por tu partición real):
cryptswap /dev/sdb /dev/urandom swap,cipher=aes-xts-plain64:sha256,size=256
6. Modificar fstab
para la Nueva Swap Encriptada
Editamos el archivo /etc/fstab
nuevamente para agregar una entrada para la partición swap encriptada.
sudo vi /etc/fstab
Output:
/dev/mapper/cryptswap none swap sw 0 0
7. Habilitar la Swap Encriptada Manualmente
Ejecuta los siguientes comandos para habilitar la partición swap encriptada manualmente:
sudo cryptsetup open --type plain --key-file /dev/urandom /dev/sdb cryptswap
sudo mkswap /dev/mapper/cryptswap
sudo swapon /dev/mapper/cryptswap
8. Automatizar el Proceso para el Arranque
Para asegurarnos de que la swap encriptada se active automáticamente en cada arranque, creamos un archivo de servicio de systemd.
[Unit]
Description=Encrypted Swap
After=local-fs.target
[Service]
Type=oneshot
ExecStartPre=/sbin/cryptsetup close cryptswap || true
ExecStart=/sbin/cryptsetup open --type plain --key-file /dev/urandom /dev/sdb cryptswap
ExecStart=/sbin/mkswap /dev/mapper/cryptswap
ExecStart=/sbin/swapon /dev/mapper/cryptswap
ExecStop=/sbin/swapoff /dev/mapper/cryptswap
ExecStop=/sbin/cryptsetup close cryptswap
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
9. Habilitar el Servicio
Guardamos el archivo y luego habilitamos y activamos el servicio con los siguientes comandos:
sudo systemctl daemon-reload
sudo systemctl enable encrypted-swap.service
sudo systemctl start encrypted-swap.service
10. Verificar el Estado de la Swap Encriptada
Para verificar que la swap encriptada está activa, usamos:
sudo swapon --show
Output:
NAME TYPE SIZE USED PRIO
/dev/dm-0 partition 1024M 0B -2
También podemos verificar el estado de la partición encriptada:
sudo cryptsetup status cryptswap
Output:
/dev/mapper/cryptswap is active and is in use.
type: PLAIN
cipher: aes-xts-plain64:sha256
keysize: 256 bits
key location: dm-crypt
device: /dev/sdb
sector size: 512
offset: 0 sectors
size: 2097152 sectors
mode: read/write