Cómo Encriptar la Partición Swap en un Servidor GNU/Linux Debian

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *