Cómo configurar una partición SWAP cifrada en una instalación existente de Debian 12.

Encriptar la partición de intercambio en un sistema Debian 12 existente es recomendable si se desea evitar que páginas de memoria, contraseñas, fragmentos de documentos y otros datos transitorios se escriban en el disco sin cifrar. Para un equipo que no requiere hibernación, Debian documenta un diseño sencillo: proteger la partición de intercambio con dm-crypt sin cifrar y generar una nueva clave de cifrado aleatoria en cada arranque.

Esta guía utiliza ese diseño. Presupone Debian 12 “bookworm”, una partición de intercambio dedicada y systemd como sistema de inicio. Los comandos son deliberadamente conservadores, ya que un error en la ruta de un dispositivo de bloques puede sobrescribir la partición incorrecta. Lea primero los puntos de decisión y luego sustituya los identificadores de dispositivo por los suyos, en lugar de copiar los valores de ejemplo sin más.

La documentación de cryptsetup de Debian describe específicamente el intercambio cifrado y recomienda desactivarlo, agregar la partición /etc/crypttabcon /dev/urandom, cambiar /etc/fstabal dispositivo mapeado y luego reactivar el intercambio. Consulte el archivo README de cryptsetup de Debian . El manual crypttab(5) de Debian 12 también documenta los campos de crypttab y las opciones de dm-crypt simples.

¿Deberías usar un intercambio cifrado con clave aleatoria?

Úselo cuando necesite una partición de intercambio cifrada y no requiera hibernación. La clave se regenera en cada arranque, por lo que el contenido antiguo de la partición de intercambio se vuelve ilegible después del apagado. Esta es precisamente la característica de seguridad que buscan la mayoría de las instalaciones de escritorio y servidor.

No utilice esta configuración si depende de la hibernación, la suspensión a disco, el modo de suspensión híbrida o la suspensión seguida de hibernación. La reanudación requiere que el siguiente arranque descifre la misma imagen de hibernación. Una nueva clave aleatoria lo imposibilita. Debian indica explícitamente que el intercambio de claves aleatorias no puede utilizarse como dispositivo de reanudación. La documentación de systemd hibernate-resume de Debian 12 también muestra que la reanudación depende de un dispositivo de reanudación persistente.

Si se requiere hibernación, utilice un diseño de cifrado persistente, como un dispositivo de intercambio con LUKS y una configuración adecuada de desbloqueo y reanudación. Esta configuración es diferente y queda fuera de esta guía.

¿Su espacio de intercambio ya está protegido mediante cifrado de disco?

Antes de realizar cualquier cambio, verifique la configuración. Si su volumen lógico de intercambio ya se encuentra dentro de un contenedor cifrado con LUKS, agregar otra capa de dm-crypt podría ofrecer pocas ventajas prácticas y, además, aumentar la complejidad.

swapon --show
lsblk -o NAME,PATH,TYPE,FSTYPE,SIZE,MOUNTPOINTS,PARTUUID

Mira el dispositivo que se muestra swapon --showy rastrea sus padres en lsblk. Un diseño común sin cifrar podría mostrarse /dev/sda3directamente como tipo swap. Una instalación de LVM cifrada podría mostrar en cambio el espacio de intercambio debajo de un crypto_LUKSpadre.

Ilustración de la terminal de Debian 12 que muestra la salida de swapon, lsblk y blkid para una partición de intercambio existente y su PARTUUID.
Identifique la partición de intercambio activa y un identificador de partición estable antes de realizar cualquier cambio. Los nombres e identificadores de dispositivos que se muestran aquí son solo ejemplos.

La distinción es importante porque este artículo trata sobre la conversión de una partición de intercambio dedicada no cifrada . Si swapon --showinforma de un archivo de intercambio, utilice un procedimiento específico para archivos de intercambio. Si el intercambio ya se encuentra dentro de un almacenamiento cifrado, primero decida si es necesaria una segunda capa.

¿Qué debes grabar antes de apagar el interruptor?

Registre la ruta exacta de la partición, su tamaño y su PARTUUID . Un PARTUUID identifica la entrada de la tabla de particiones y sigue siendo útil incluso después de que la firma de intercambio dentro de la partición sea reemplazada por datos cifrados.

Por ejemplo:

sudo blkid /dev/sda3
ls -l /dev/disk/by-partuuid/

Es posible que vea una salida que contenga un valor como este:

PARTUUID="11111111-2222-3333-4444-555555555555"

En los ejemplos que se muestran a continuación, la ruta estable correspondiente es:

/dev/disk/by-partuuid/11111111-2222-3333-4444-555555555555

Evite confiar en la /dev/sda3posibilidad de que cambie la enumeración de discos. Asimismo, evite usar el UUID del sistema de archivos de intercambio antiguo como identificador de origen a largo plazo: la configuración de intercambio cifrado recrea la firma de intercambio en el dispositivo cifrado asignado, por lo que el UUID de intercambio sin procesar antiguo no es la identidad persistente correcta para la partición subyacente.

1. ¿Cómo se prepara el sistema de forma segura?

Instale cryptsetup si aún no está presente y, a continuación, haga una copia de seguridad de los dos archivos de configuración que va a editar.

sudo apt update
sudo apt install cryptsetup
sudo cp -a /etc/crypttab /etc/crypttab.before-encrypted-swap 2>/dev/null || true
sudo cp -a /etc/fstab /etc/fstab.before-encrypted-swap

Si /etc/crypttabaún no existe, no hay problema; créelo cuando edite la configuración.

A continuación, asegúrese de que el sistema tenga suficiente memoria disponible para el breve período en que la partición de intercambio esté desactivada. Luego, desactive únicamente la partición de intercambio que está convirtiendo. Usar el dispositivo exacto es más seguro que swapoff -aen una máquina con varias áreas de intercambio.

sudo swapoff /dev/sda3
swapon --show
Ilustración de la terminal de Debian 12 que muestra la desactivación del intercambio y la instalación del paquete cryptsetup.
Desactive el intercambio de memoria objetivo antes de aplicar el cifrado. En sistemas con varios dispositivos de intercambio, opere en el dispositivo deseado en lugar de desactivar todo innecesariamente.

No ejecute el proceso mkswapen la partición sin cifrar a partir de este punto. La firma de intercambio debe crearse en el dispositivo de mapeo cifrado, no en la partición de respaldo sin cifrar.

2. ¿Qué debe contener /etc/crypttab?

Cree o edite /etc/crypttaby agregue una entrada para la asignación de intercambio cifrado. A continuación se muestra la documentación de Debian cryptsetup:

cswap /dev/disk/by-partuuid/11111111-2222-3333-4444-555555555555 /dev/urandom plain,cipher=aes-xts-plain64,size=256,swap

Reemplace el ejemplo de PARTUUID con el de su sistema.

Los campos significan:

  • cswapes el nombre del mapeador, creando /dev/mapper/cswap.
  • El segundo campo es la partición de intercambio subyacente real.
  • /dev/urandomProporciona una nueva clave aleatoria cada vez que se crea la asignación.
  • plainSelecciona dm-crypt simple en lugar de una cabecera LUKS persistente.
  • cipher=aes-xts-plain64,size=256Hace que los parámetros de plain-dm-crypt sean explícitos en lugar de depender de valores predeterminados que pueden cambiar.
  • swapLe indica a la integración de cryptsetup que este dispositivo mapeado es de intercambio y que debe inicializarse adecuadamente.
Ilustración de GNU nano en Debian 12 editando /etc/crypttab con una asignación cswap que usa una ruta PARTUUID estable y /dev/urandom
La entrada crypttab crea una asignación cifrada temporal llamada cswap con una clave nueva de /dev/urandom en cada activación.

El manual de crypttab de Debian advierte que dm-crypt no almacena metadatos de cifrado, hash ni tamaño de clave en la cabecera, a diferencia de LUKS. Por ello, es útil registrar explícitamente el cifrado y el tamaño de la clave. El manual también documenta, discardaunque con reservas, las implicaciones de seguridad; no lo añada simplemente porque el dispositivo de almacenamiento sea una unidad SSD, a menos que haya evaluado previamente los riesgos.

3. ¿Qué cambios se producen en /etc/fstab?

Busque la antigua línea de intercambio sin cifrar en /etc/fstab. Puede usar un UUID, una ruta de dispositivo u otro identificador persistente. Por ejemplo:

UUID=OLD-SWAP-UUID none swap sw 0 0

Reemplácelo con el dispositivo cifrado asignado:

/dev/mapper/cswap none swap sw 0 0

No deje ambas entradas activas. Si tanto la partición sin formato como la /dev/mapper/cswappartición de intercambio están habilitadas, se anula el propósito del cifrado de la partición y se corre el riesgo de que la activación durante el arranque se produzcan errores.

Ilustración de GNU nano en Debian 12 que muestra /etc/fstab con la antigua entrada raw swap deshabilitada y /dev/mapper/cswap configurado como swap.
El archivo fstab debe apuntar al dispositivo de mapeo cifrado, no a la partición de intercambio original sin formato.

El manual fstab(5) de Debian define el formato de entrada de intercambio, mientras que swapon(8) explica cómo se activan las entradas marcadas como intercambio.

4. ¿Cómo se activa y verifica antes de reiniciar?

Después de guardar ambos archivos, inicie el mapeo cifrado y luego habilite la entrada de intercambio. La documentación de cryptsetup de Debian utiliza:

sudo cryptdisks_start cswap
sudo swapon -a

Ahora verifique las tres capas:

swapon --show
sudo cryptsetup status cswap
lsblk -o NAME,TYPE,FSTYPE,SIZE,MOUNTPOINTS

Un resultado saludable debería mostrar intercambio en /dev/mapper/cswap, no directamente en la partición original. cryptsetup status cswapdebería informar que la asignación está activa.

Si cryptdisks_startno está disponible en su instalación, no improvise comandos destructivos. Vuelva a comprobar que el cryptsetuppaquete esté instalado y que la sintaxis de crypttab sea válida. También puede dejar que el proceso de arranque normal de Debian cree la asignación después de completar la configuración de reanudación que se describe a continuación. Debian 12 utiliza generadores de systemd para traducir la configuración de crypttab y fstab a unidades de tiempo de arranque.

5. ¿Necesitas desactivar la reanudación de la hibernación?

Sí, si esta partición estaba configurada como dispositivo de reanudación del sistema. Una clave aleatoria no puede descifrar una imagen de hibernación escrita con la clave anterior. Las instrucciones de Debian para el intercambio cifrado indican explícitamente a los administradores que desactiven la reanudación al convertir la antigua partición de intercambio de reanudación en una partición de intercambio cifrada con clave aleatoria.

Compruebe la configuración actual:

grep -R "^[[:space:]]*RESUME=" /etc/initramfs-tools/conf.d/ 2>/dev/null

Si se refiere a la partición de intercambio que acaba de convertir, establezca resume en none:

echo "RESUME=none" | sudo tee /etc/initramfs-tools/conf.d/resume
sudo update-initramfs -u

Aquí es donde radica la update-initramfs -uimportancia. No es necesario reconstruir el initramfs simplemente porque haya cambiado una entrada de intercambio posterior al arranque; sí es necesario actualizarlo al eliminar un destino de reanudación de hibernación antiguo que el initramfs podría intentar utilizar.

Prueba de reinicio: ¿qué prueba que la configuración funciona?

Reinicie el sistema únicamente después de que la activación en vivo funcione y los archivos de configuración sean correctos:

sudo reboot

Una vez que el sistema regrese, ejecute:

swapon --show
sudo cryptsetup status cswap
lsblk -o NAME,TYPE,FSTYPE,SIZE,MOUNTPOINTS
cat /proc/swaps

Los criterios clave para el éxito son sencillos:

  • /dev/mapper/cswapestá activo como intercambio.
  • La partición de respaldo sin procesar no aparece directamente como intercambio activo.
  • cryptsetup status cswapinforma de una asignación dm-crypt simple activa.
  • La máquina arranca sin solicitar una contraseña de intercambio; la clave aleatoria se genera automáticamente.

También puedes reiniciar dos veces y comparar el comportamiento del mapeo. La clave del diseño es que la clave de cifrado es efímera; el contenido del archivo de intercambio del arranque anterior no se puede recuperar después de que se vuelva a crear el mapeo.

¿Qué ocurre si la máquina entra en modo de emergencia?

Las causas más comunes son una ruta de dispositivo de respaldo incorrecta, un error tipográfico en /etc/crypttabo una /etc/fstablínea que aún apunta al antiguo swap sin formato. Inicie en modo de recuperación o utilice un entorno de rescate, monte el sistema de archivos raíz en modo lectura/escritura y restaure las copias de seguridad si es necesario.

Entre las comprobaciones útiles se incluyen:

sudo cryptsetup status cswap
systemctl status systemd-cryptsetup@cswap.service
systemctl status dev-mapper-cswap.swap
journalctl -b -u systemd-cryptsetup@cswap.service

Los nombres de las unidades pueden codificarse de forma diferente para nombres de mapeadores inusuales, así que utilícelos systemctl list-units '*cryptsetup*'si el nombre exacto del servicio no es obvio.

¿Qué ocurre con el descarte de unidades SSD?

No actives la opción discard por defecto solo para intentar mejorar el rendimiento teórico de un SSD. La documentación de crypttab de Debian indica que el paso de solicitudes discard a través de un dispositivo cifrado tiene implicaciones de seguridad. El manual de swapon de Debian también señala que discard puede mejorar el rendimiento en algunos SSD, pero a menudo no lo hace. Si la necesitas, evalúa primero tu modelo de almacenamiento y tu modelo de amenazas, y luego añádela de forma deliberada.

¿Sigue siendo útil el intercambio cifrado si el sistema de archivos raíz no está cifrado?

Sí, pero es importante entender los límites. El intercambio cifrado protege las páginas de memoria escritas en la partición de intercambio. No cifra los archivos guardados en un sistema de archivos raíz o de inicio no cifrado, el historial de comandos, las cachés de aplicaciones, los volcados de memoria, los archivos temporales ni los registros. Si el objetivo es una protección integral contra la exposición de datos en caso de robo del disco, el cifrado completo del disco o del sistema de archivos ofrece un control más exhaustivo.

Lista de verificación final

  • Confirme que el destino sea una partición de intercambio dedicada y sin cifrar, no un archivo de intercambio y que no esté ya protegido por un dispositivo principal cifrado.
  • Registre una ruta de partición estable como por ejemplo /dev/disk/by-partuuid/...:
  • Desactive el intercambio sin procesar antes de configurar dm-crypt.
  • Agregue una entrada random-key plain-dm-crypt a /etc/crypttab.
  • Señala /etc/fstabsolo a /dev/mapper/cswap.
  • Active la asignación y verifíquela antes de reiniciar.
  • Si el intercambio anterior era un dispositivo de reanudación, configúrelo RESUME=noney ejecútelo update-initramfs -u.
  • Tras reiniciar, verifique que solo el mapeador cifrado esté activo como intercambio.

Para los sistemas Debian 12 que no hibernan, este enfoque mantiene la configuración reducida y evita almacenar una clave de intercambio persistente. La clave no reside en qué comando de cifrado ejecutar, sino en si el intercambio con clave aleatoria se ajusta a los requisitos de administración de energía. Una vez resuelto esto, el resto consiste en una migración controlada de la partición de intercambio sin formato a una asignación dm-crypt que se recrea de forma segura en cada arranque.

Dejar un comentario

Solucionar el problema de los controladores de la tarjeta de sonido no detectados en Pardus Linux 23

Solucionar el problema de los controladores de la tarjeta de sonido no detectados en Pardus Linux 23

Solucione el problema de la tarjeta de sonido que falta en Pardus Linux 23. Compruebe la detección de ALSA, los módulos del kernel, los servicios de audio, los perfiles de salida, el firmware y las actualizaciones de forma segura.

Solucionar el problema de resolución de pantalla atascada en 1024x768 en una máquina virtual Pardus KVM

Solucionar el problema de resolución de pantalla atascada en 1024x768 en una máquina virtual Pardus KVM

Solucione el problema de una máquina virtual Pardus KVM atascada en 1024x768 comprobando la GPU virtual, el agente SPICE, la sesión X11 o Wayland y verificando que los modos de visualización superiores sean correctos.

Cómo montar automáticamente un directorio SSHFS remoto al arrancar en Debian

Cómo montar automáticamente un directorio SSHFS remoto al arrancar en Debian

En Debian, se monta automáticamente un directorio SSHFS remoto al arrancar el sistema utilizando SSH basado en claves, /etc/fstab, opciones de red de systemd, automontaje y pasos de verificación.

Solucionar el error "No se puede asignar memoria" durante una actualización del sistema SLES

Solucionar el error "No se puede asignar memoria" durante una actualización del sistema SLES

Solucione el problema "No se puede asignar memoria" durante una actualización de SLES. Compruebe la RAM, el espacio de intercambio, los registros de OOM y los límites de procesos, y luego recupere el sistema sin interrumpir las transacciones de paquetes.

Solucionar problemas de calibración de la pantalla táctil en tabletas con Harmonica OS: Elegir la solución adecuada para Linux

Solucionar problemas de calibración de la pantalla táctil en tabletas con Harmonica OS: Elegir la solución adecuada para Linux

Solucione problemas de desplazamiento táctil, rotación y mapeo de pantalla en tabletas Harmonica OS (HamoniKR). Compare las soluciones de X.Org y libinput, realice pruebas de forma segura y sepa cuándo la calibración no será suficiente.

Cómo configurar una partición SWAP cifrada en una instalación existente de Debian 12.

Cómo configurar una partición SWAP cifrada en una instalación existente de Debian 12.

Encripta una partición de intercambio existente de Debian 12 con dm-crypt, una clave aleatoria nueva en cada arranque, /etc/crypttab, /etc/fstab y pasos de verificación seguros.

Cómo monitorizar el estado de la unidad SMART en Ubuntu mediante alertas por correo electrónico

Cómo monitorizar el estado de la unidad SMART en Ubuntu mediante alertas por correo electrónico

Instala smartmontools en Ubuntu para monitorizar el estado de las unidades y enviar alertas SMART por correo electrónico. Comprueba la compatibilidad de los dispositivos, configura la entrega de correo, prueba las notificaciones y soluciona los fallos.

Solucionar el error "No se encontró ningún dispositivo de arranque" después de instalar Debian en un sistema UEFI.

Solucionar el error "No se encontró ningún dispositivo de arranque" después de instalar Debian en un sistema UEFI.

Solucione los fallos de arranque UEFI de Debian comprobando el modo de arranque del instalador, la partición del sistema EFI, las entradas NVRAM, los archivos GRUB EFI, el arranque seguro y las alternativas de firmware.

Cómo configurar instantáneas Btrfs automatizadas en Ubuntu Desktop

Cómo configurar instantáneas Btrfs automatizadas en Ubuntu Desktop

Configura Snapper para crear y eliminar instantáneas Btrfs programadas en Ubuntu Desktop. Primero, verifica la estructura de tus subvolúmenes, habilita los temporizadores de systemd y comprueba la retención de forma segura.

Solucione de forma segura el problema de falta de espacio en el aprovisionamiento ligero LVM de SUSE Linux Enterprise.

Solucione de forma segura el problema de falta de espacio en el aprovisionamiento ligero LVM de SUSE Linux Enterprise.

Diagnosticar y recuperar un pool LVM thin completo en SUSE Linux Enterprise distinguiendo el agotamiento de datos del agotamiento de metadatos, ampliando el almacenamiento, reparando los metadatos y habilitando la extensión automática.