Inicio Linux & Systems Networks & Infrastructure Cybersecurity Cloud & DevOps SIEM & Monitoring DFIR & Threat Intel Development & Other Todas las categorias Herramientas

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

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

Tabla de contenidos

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.

CODE
lsblk

Output:

CODE
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.

BASH
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:

BASH
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.

BASH
sudo vi /etc/fstab

Comentar o eliminar la línea que hace referencia a la swap, por ejemplo:

CODE
#/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.

BASH
sudo vi /etc/crypttab

Agrega la siguiente línea (reemplaza sdb por tu partición real):

CODE
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.

BASH
sudo vi /etc/fstab

Output:

CODE
/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:

BASH
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.

CODE
[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:

BASH
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:

BASH
sudo swapon --show

Output:

BASH
NAME      TYPE       SIZE USED PRIO
/dev/dm-0 partition 1024M   0B   -2

También podemos verificar el estado de la partición encriptada:

BASH
sudo cryptsetup status cryptswap

Output:

CODE
/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