Come configurare una partizione SWAP crittografata su un'installazione esistente di Debian 12

Crittografare la partizione di swap su un sistema Debian 12 esistente è utile quando si desidera impedire che pagine di memoria, password, frammenti di documenti e altri dati temporanei vengano scritti su disco in chiaro. Per una macchina che non necessita di ibernazione, Debian documenta una soluzione semplice: proteggere la partizione di swap con dm-crypt e generare una nuova chiave di crittografia casuale ad ogni avvio.

Questa guida utilizza tale architettura. Presuppone Debian 12 "bookworm", una partizione di swap dedicata e systemd come sistema di init. I comandi sono volutamente prudenti perché un errore nel percorso di un dispositivo a blocchi può sovrascrivere la partizione sbagliata. Leggete prima i punti decisionali, quindi sostituite gli identificatori dei dispositivi con i vostri anziché copiare ciecamente i valori di esempio.

La documentazione di cryptsetup di Debian descrive nello specifico lo swap crittografato e raccomanda di disattivare lo swap, aggiungere la partizione a /etc/crypttabcon /dev/urandom, passare /etc/fstabal dispositivo mappato e quindi riattivare lo swap. Vedi il file README di cryptsetup di Debian . Il manuale crypttab(5) di Debian 12 documenta anche i campi di crypttab e le opzioni di dm-crypt.

Dovresti usare uno swap crittografato con chiave casuale?

Utilizzatelo quando desiderate una partizione di swap crittografata e non avete bisogno dell'ibernazione. La chiave viene rigenerata a ogni avvio, quindi il vecchio contenuto della swap diventa illeggibile dopo lo spegnimento. Questa è esattamente la proprietà di sicurezza richiesta dalla maggior parte delle installazioni desktop e server.

Non utilizzare questa configurazione specifica se si fa affidamento sull'ibernazione, sulla sospensione su disco, sulla sospensione ibrida o sulla sospensione seguita da ibernazione. Il ripristino richiede che il successivo avvio decrittografi la stessa immagine di ibernazione. Una nuova chiave casuale rende ciò impossibile. Debian specifica esplicitamente che lo scambio di chiavi casuali non può essere utilizzato come dispositivo di ripristino. Anche la documentazione di systemd hibernate-resume di Debian 12 mostra che il ripristino dipende da un dispositivo di ripristino persistente.

Se l'ibernazione è un requisito, utilizzare invece un sistema di crittografia persistente, come un dispositivo di swap basato su LUKS con un'apposita configurazione di sblocco e ripristino. Si tratta di una configurazione diversa, che non viene trattata in questa guida.

La tua area di swap è già protetta dalla crittografia del disco?

Prima di apportare qualsiasi modifica, verificate. Se il volume logico di swap si trova già all'interno di un contenitore crittografato con LUKS, l'aggiunta di un ulteriore livello dm-crypt potrebbe non offrire vantaggi pratici significativi, aumentando al contempo la complessità.

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

Osserva il dispositivo mostrato da swapon --showe traccia i suoi genitori in lsblk. Un layout comune non crittografato potrebbe essere mostrato /dev/sda3direttamente come tipo swap. Un'installazione LVM crittografata potrebbe invece mostrare swap sotto un crypto_LUKSgenitore.

Illustrazione del terminale di Debian 12 che mostra l'output di swapon, lsblk e blkid per una partizione di swap esistente e il suo PARTUUID
Prima di apportare qualsiasi modifica, identifica la partizione di swap attiva e un identificatore di partizione stabile. I nomi e gli identificatori dei dispositivi mostrati qui sono solo a scopo esemplificativo.

La distinzione è importante perché questo articolo tratta della conversione di una partizione di swap dedicata non crittografata . Se swapon --showinvece viene segnalato un file di swap, utilizzare una procedura specifica per i file di swap. Se lo swap si trova già all'interno di una memoria crittografata, valutare innanzitutto se un secondo livello sia effettivamente necessario.

Cosa bisogna registrare prima di disattivare lo swap?

Annota il percorso esatto della partizione, la sua dimensione e il suo PARTUUID . Un PARTUUID identifica la voce nella tabella delle partizioni e rimane utile anche dopo che la firma di swap all'interno della partizione viene sostituita da dati crittografati.

Per esempio:

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

Potresti visualizzare un output contenente un valore come:

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

Negli esempi seguenti, il percorso stabile corrispondente è:

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

Evitate di fare affidamento sul /dev/sda3fatto che l'enumerazione dei dischi potrebbe cambiare. Evitate inoltre di utilizzare il vecchio UUID del filesystem di swap come identificatore di origine a lungo termine: la configurazione di swap crittografato ricrea la firma di swap sul dispositivo crittografato mappato, pertanto il vecchio UUID di swap non crittografato non è l'identità persistente corretta per la partizione sottostante.

1. Come si prepara il sistema in modo sicuro?

Installa cryptsetup se non è già presente, quindi esegui un backup dei due file di configurazione che modificherai.

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

Se /etc/crypttabnon esiste ancora, non c'è problema; creala quando modifichi la configurazione.

Successivamente, assicurati che il sistema disponga di memoria sufficiente per il breve periodo in cui lo swap è disabilitato. Quindi disattiva solo la partizione di swap che stai convertendo. Utilizzare esattamente lo stesso dispositivo è più sicuro che swapoff -autilizzare una macchina con più aree di swap:

sudo swapoff /dev/sda3
swapon --show
Illustrazione del terminale di Debian 12 che mostra la disabilitazione dello swap e l'installazione del pacchetto cryptsetup.
Disabilitare la partizione di swap di destinazione prima di applicare la crittografia. Nei sistemi con più dispositivi di swap, operare sul dispositivo desiderato anziché disabilitare tutto inutilmente.

Dopo questo punto, non eseguire più operazioni mkswapsulla partizione raw. La firma di swap deve essere creata sul dispositivo mapper crittografato, non sulla partizione di supporto non crittografata.

2. Cosa va inserito in /etc/crypttab?

Crea o modifica /etc/crypttabe aggiungi una voce per la mappatura dello swap crittografato. Di seguito, la procedura è conforme alla documentazione di Debian relativa a cryptsetup:

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

Sostituisci il PARTUUID di esempio con quello del tuo sistema.

I campi significano:

  • cswapè il nome del mapper, che crea /dev/mapper/cswap.
  • Il secondo campo rappresenta la partizione di swap sottostante effettiva.
  • /dev/urandomfornisce una nuova chiave casuale ogni volta che viene creata la mappatura.
  • plainSeleziona l'intestazione dm-crypt standard anziché un'intestazione LUKS persistente.
  • cipher=aes-xts-plain64,size=256Rende espliciti i parametri di plain-dm-crypt invece di dipendere da valori predefiniti che potrebbero cambiare.
  • swapcomunica all'integrazione cryptsetup che il dispositivo mappato è di swap e deve essere inizializzato in modo appropriato.
Illustrazione di GNU nano su Debian 12 che modifica /etc/crypttab con una mappatura cswap che utilizza un percorso PARTUUID stabile e /dev/urandom
La voce crypttab crea una mappatura crittografata temporanea denominata cswap con una nuova chiave proveniente da /dev/urandom ad ogni attivazione.

Il manuale di crypttab di Debian avverte che, a differenza di LUKS, il comando dm-crypt standard non memorizza i metadati relativi a cifratura, hash o dimensione della chiave nell'intestazione. Per questo motivo, è utile registrare esplicitamente la cifratura e la dimensione della chiave. Il manuale documenta anche discardle implicazioni di sicurezza, pur evidenziandole; non aggiungete questi dati solo perché il dispositivo di supporto è un SSD, a meno che non abbiate valutato attentamente i rischi.

3. Quali modifiche vengono apportate al file /etc/fstab?

Trova la vecchia riga di swap non crittografata in /etc/fstab. Potrebbe utilizzare un UUID, un percorso del dispositivo o un altro identificatore persistente. Ad esempio:

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

Sostituiscilo con il dispositivo crittografato mappato:

/dev/mapper/cswap none swap sw 0 0

Non lasciare entrambe le voci attive. Se sia la partizione raw che la /dev/mapper/cswappartizione di swap sono abilitate, si vanifica lo scopo della crittografia della partizione e si rischia di confondere l'attivazione all'avvio.

Illustrazione di GNU nano su Debian 12 che mostra /etc/fstab con la vecchia voce raw swap disabilitata e /dev/mapper/cswap configurato come swap
Il file fstab dovrebbe puntare al dispositivo mapper crittografato, non alla partizione di swap raw originale.

Il manuale fstab(5) di Debian definisce il formato della voce di swap, mentre swapon(8) spiega come vengono attivate le voci contrassegnate come swap.

4. Come si attiva e si verifica prima del riavvio?

Dopo aver salvato entrambi i file, avviare la mappatura crittografata e quindi abilitare la voce di swap. La documentazione di cryptsetup di Debian utilizza:

sudo cryptdisks_start cswap
sudo swapon -a

Ora verifica tutti e tre i livelli:

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

Un risultato positivo dovrebbe mostrare lo swap su /dev/mapper/cswap, non direttamente sulla partizione originale. cryptsetup status cswapdovrebbe segnalare la mappatura come attiva.

Se cryptdisks_startnon è disponibile nella tua installazione, non improvvisare comandi distruttivi. Verifica che il cryptsetuppacchetto sia installato e che la sintassi di crypttab sia valida. Puoi anche lasciare che il normale processo di avvio di Debian crei la mappatura dopo aver completato la configurazione di ripristino descritta di seguito. Debian 12 utilizza i generatori systemd per tradurre la configurazione di crypttab e fstab in unità di avvio.

5. È necessario disabilitare la ripresa dall'ibernazione?

Sì, se questa partizione è stata configurata come dispositivo di ripristino del sistema. Una chiave casuale non può decrittografare un'immagine di ibernazione scritta con la chiave precedente. Le istruzioni di Debian per la partizione di swap crittografata indicano esplicitamente agli amministratori di disabilitare il ripristino quando si converte la vecchia partizione di swap di ripristino in una partizione di swap crittografata con chiave casuale.

Verifica la configurazione attuale:

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

Se si riferisce alla partizione di swap appena convertita, imposta resume su none:

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

È qui che entra update-initramfs -uin gioco la questione. Non è necessario ricostruire l'initramfs solo perché è cambiata una normale voce di swap post-avvio; è invece necessario aggiornarlo quando si rimuove una vecchia destinazione di ripristino dell'ibernazione che l'initramfs potrebbe altrimenti tentare di utilizzare.

Test di riavvio: cosa dimostra che la configurazione funziona?

Riavvia il sistema solo dopo che l'attivazione live è andata a buon fine e i file di configurazione sono corretti:

sudo reboot

Dopo il ripristino del sistema, eseguire:

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

I criteri chiave per il successo sono semplici:

  • /dev/mapper/cswapè attivo come swap.
  • La partizione di supporto raw non viene elencata direttamente come swap attivo.
  • cryptsetup status cswapsegnala una mappatura dm-crypt attiva e semplice.
  • La macchina si avvia senza richiedere una passphrase di scambio; la chiave casuale viene generata automaticamente.

È anche possibile riavviare due volte e confrontare il comportamento della mappatura. Il principio alla base di questa progettazione è che la chiave di crittografia è effimera; il contenuto della partizione di swap dell'avvio precedente non è recuperabile dopo la ricreazione della mappatura.

Cosa succede se la macchina passa in modalità di emergenza?

Le cause più comuni sono un percorso errato del dispositivo di backup, un errore di battitura /etc/crypttabo una /etc/fstabriga che punta ancora alla vecchia partizione di swap raw. Avvia il sistema in modalità di ripristino o utilizza un ambiente di ripristino, monta il filesystem root in modalità lettura/scrittura e ripristina i backup, se necessario.

Tra i controlli utili si possono citare:

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

I nomi delle unità potrebbero essere codificati in modo diverso per i nomi dei mapper insoliti, quindi usarli systemctl list-units '*cryptsetup*'se il nome esatto del servizio non è ovvio.

Che dire dello scarto degli SSD?

Non abilitare l'opzione "discard" per impostazione predefinita solo per inseguire prestazioni teoriche superiori con gli SSD. La documentazione di crypttab di Debian afferma che il passaggio delle richieste di "discard" attraverso un dispositivo crittografato ha implicazioni per la sicurezza. Analogamente, il manuale di swapon di Debian osserva che l'opzione "discard" può migliorare le prestazioni su alcuni SSD, ma spesso non lo fa. Se ne hai bisogno, valuta prima il tuo modello di archiviazione e il tuo modello di rischio, quindi aggiungila consapevolmente.

Lo swap crittografato è ancora utile se il filesystem di root non è crittografato?

Sì, ma bisogna comprenderne i limiti. La crittografia dello swap protegge le pagine di memoria scritte nella partizione di swap. Non crittografa i file salvati su un filesystem root o home non crittografato, la cronologia della shell, le cache delle applicazioni, i dump di arresto anomalo, i file temporanei o i log. Se l'obiettivo è una protezione completa contro l'esposizione dei dati in caso di furto del disco, la crittografia dell'intero disco o del filesystem offre un controllo più efficace.

Lista di controllo finale

  • Verificare che la destinazione sia una partizione di swap dedicata non crittografata, non un file di swap e che non sia già protetta da un dispositivo padre crittografato.
  • Registra un percorso di partizione stabile come /dev/disk/by-partuuid/....
  • Disabilita lo swap raw prima di configurare dm-crypt.
  • Aggiungi una voce random-key plain-dm-crypt a /etc/crypttab.
  • Punta /etc/fstabsolo a /dev/mapper/cswap.
  • Attiva la mappatura e verificala prima di riavviare.
  • Se il vecchio swap era un dispositivo di ripristino, impostarlo RESUME=noneed eseguirlo update-initramfs -u.
  • Dopo il riavvio, verificare che solo il mapper crittografato sia attivo come swap.

Per i sistemi Debian 12 che non supportano l'ibernazione, questo approccio mantiene la configurazione leggera ed evita di memorizzare una chiave di swap persistente. La decisione chiave non è "quale comando di crittografia devo eseguire?", ma se lo swap con chiave casuale soddisfa i requisiti di gestione dell'alimentazione. Una volta stabilito questo, il resto consiste in una migrazione controllata dalla partizione di swap raw a una mappatura dm-crypt che viene ricreata in modo sicuro ad ogni avvio.

Lascia un commento

Come configurare un server SUSE RMT locale (sostituto di SMT)

Come configurare un server SUSE RMT locale (sostituto di SMT)

Configurare SUSE RMT su SLES 15, sincronizzare i metadati SCC, replicare i repository selezionati, registrare i client tramite HTTPS e comprendere i limiti della migrazione da SMT.

Risoluzione del problema "Driver della scheda audio non rilevati" su Pardus Linux 23

Risoluzione del problema "Driver della scheda audio non rilevati" su Pardus Linux 23

Risolvere i problemi relativi a una scheda audio mancante su Pardus Linux 23. Verificare in modo sicuro il rilevamento ALSA, i moduli del kernel, i servizi audio, i profili di output, il firmware e gli aggiornamenti.

Risolvere il problema della risoluzione dello schermo bloccata a 1024x768 su una macchina virtuale KVM Pardus.

Risolvere il problema della risoluzione dello schermo bloccata a 1024x768 su una macchina virtuale KVM Pardus.

Risolvi i problemi di una macchina virtuale Pardus KVM bloccata a 1024x768 controllando la GPU virtuale, l'agente SPICE, la sessione X11 o Wayland e verificando che le modalità di visualizzazione superiori siano impostate correttamente.

Come montare automaticamente una directory SSHFS remota all'avvio in Debian

Come montare automaticamente una directory SSHFS remota all'avvio in Debian

Montare automaticamente una directory SSHFS remota all'avvio in Debian utilizzando SSH basato su chiave, /etc/fstab, opzioni di rete systemd, montaggio automatico e passaggi di verifica.

Risolvere il problema "Impossibile allocare memoria" durante un aggiornamento del sistema SLES

Risolvere il problema "Impossibile allocare memoria" durante un aggiornamento del sistema SLES

Risolvere il problema "Impossibile allocare memoria" durante un aggiornamento SLES. Controllare la RAM, lo swap, i log di OOM e i limiti dei processi, quindi ripristinare il sistema senza interrompere le transazioni dei pacchetti.

Risolvere i problemi di calibrazione del touchscreen sui tablet con Harmonica OS: scegliere la soluzione Linux più adatta

Risolvere i problemi di calibrazione del touchscreen sui tablet con Harmonica OS: scegliere la soluzione Linux più adatta

Risolvi i problemi di offset del tocco, rotazione e mappatura del display sui tablet con Harmonica OS (HamoniKR). Confronta le soluzioni di X.Org e libinput, esegui i test in sicurezza e scopri quando la calibrazione non è sufficiente.

Come configurare una partizione SWAP crittografata su un'installazione esistente di Debian 12

Come configurare una partizione SWAP crittografata su un'installazione esistente di Debian 12

Crittografa una partizione di swap Debian 12 esistente con dm-crypt, una nuova chiave casuale ad ogni avvio, /etc/crypttab, /etc/fstab e passaggi di verifica sicuri.

Come monitorare lo stato di salute di SMART Drive su Ubuntu tramite avvisi e-mail

Come monitorare lo stato di salute di SMART Drive su Ubuntu tramite avvisi e-mail

Configura smartmontools su Ubuntu per monitorare lo stato di salute del disco e inviare avvisi SMART via e-mail. Verifica la compatibilità del dispositivo, configura l'invio delle e-mail, testa le notifiche e risolvi eventuali problemi.

Risolvere il problema "Nessun dispositivo di avvio trovato" dopo l'installazione di Debian su un sistema UEFI

Risolvere il problema "Nessun dispositivo di avvio trovato" dopo l'installazione di Debian su un sistema UEFI

Risolvi gli errori di avvio UEFI di Debian verificando la modalità di avvio del programma di installazione, la partizione di sistema EFI, le voci NVRAM, i file EFI di GRUB, Secure Boot e i fallback del firmware.

Come configurare gli snapshot Btrfs automatici su Ubuntu Desktop

Come configurare gli snapshot Btrfs automatici su Ubuntu Desktop

Configura Snapper per creare ed eliminare snapshot Btrfs programmati su Ubuntu Desktop. Verifica prima la struttura dei sottovolumi, abilita i timer di systemd e assicurati che la conservazione sia sicura.