Ho avuto la stessa domanda, ecco come l'ho fatto su Ubuntu 12.04.1 e 12.10,
- prima di iniziare assicurati di avere un backup e puoi anche avviare il tuo sistema con ubuntu cd o usb; come se commettessi un errore, il tuo sistema potrebbe non avviarsi più o potresti perdere i dati. suppongo che tu abbia un sistema Ubuntu crittografato con LUKS, all'interno di LUKS hai 3 partizioni, SYSTEM-BOOT (non crittografato), SYSTEM-SWAP (crittografato) e SYSTEM-OS (crittografato) -
devi adattare UUID, SYSTEM-SWAP_crypt, SYSTEM-OS_crypt, SYSTEM-SWAP, SYSTEM-OS alla variazione utilizzata sul tuo sistema, per favore vedi link di riferimento sotto la mia soluzione per maggiori informazioni
Ottieni UUID:
blkid
Preparare>
swapoff /dev/mapper/SYSTEM-SWAP_crypt
cryptsetup luksClose SYSTEM-SWAP_crypt
Di 'a cryptsetup di calcolare la passphrase della partizione di swap dalla chiave di decrittazione del volume che contiene il filesystem di root>
/lib/cryptsetup/scripts/decrypt_derived SYSTEM-OS_crypt | cryptsetup luksFormat /dev/mapper/SYSTEM-SWAP --key-file -
/lib/cryptsetup/scripts/decrypt_derived SYSTEM-OS_crypt | cryptsetup luksOpen /dev/mapper/SYSTEM-SWAP SYSTEM-SWAP_crypt --key-file -
mkswap /dev/mapper/SYSTEM-SWAP_crypt
informa il sistema sulla partizione di swap, modifica crypttab>
nano /etc/crypttab
=? assicurarsi che due righe corrispondano
SYSTEM-OS_crypt UUID=uuid-of-luks-containing-osroot none luks
SYSTEM-SWAP_crypt UUID=uuid-of-luks-containing-swap SYSTEM-OS_crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived
informa il sistema della partizione di swap, modifica fstab>
nano /etc/fstab
=? assicurati di avere questa linea
/dev/mapper/SYSTEM-SWAP_crypt swap swap sw 0 0
informa il sistema sulla partizione di swap, modifica riprendi>
nano /etc/initramfs-tools/conf.d/resume
=? assicurati di avere questa linea
RESUME=UUID=uuid-of-encrypted-swap-SYSTEM-SWAP_crypt
aggiorna initramfs sulla partizione di avvio>
update-initramfs -u -k all
Riferimento
La risposta ispirata dall'installazione di un sistema Debian crittografato (collegamento archiviato):
Se stai usando un sistema Debian crittografato, probabilmente hai alcuni requisiti di sicurezza da soddisfare. In tal caso, è necessario utilizzare anche una partizione di swap crittografata.
La partizione di swap può essere crittografata in due modi:
- può essere ricreato ad ogni avvio, usando una passphrase casuale, o
- può essere creato come gli altri volumi crittografati con una passphrase persistente
Se si desidera utilizzare suspend-to-disk, non è possibile utilizzare il primo approccio in quanto sovrascriverebbe il footprint di memoria archiviato nella partizione di swap. Inoltre, non è possibile utilizzare un file chiave come le altre partizioni, poiché il filesystem di root non è (e non deve) essere montato quando inizia il processo di ripresa e deve leggere la partizione di swap decodificata.
Il modo in cui ho risolto questo è dicendo a cryptsetup di calcolare la passphrase della partizione di swap dalla chiave di decrittazione del volume che contiene il filesystem di root; il pacchetto cryptsetup lo implementa con /lib/cryptsetup/scripts/decrypt_derived
. Pertanto, per impostare la partizione di swap, faccio quanto segue, supponendo che hda2
sia la partizione che contiene lo swap crittografato e che il filesystem di root sia in hda5_crypt
:
swapoff /dev/mapper/hda2_crypt
cryptsetup luksClose hda2_crypt
dd if=/dev/urandom of=/dev/hda2
/lib/cryptsetup/scripts/decrypt_derived hda5_crypt \
| cryptsetup luksFormat /dev/hda2 --key-file -
/lib/cryptsetup/scripts/decrypt_derived hda5_crypt \
| cryptsetup luksOpen /dev/hda2 hda2_crypt --key-file -
mkswap /dev/mapper/hda2_crypt
Per comunicare al sistema questa partizione di swap, è necessario aggiungerla a
/etc/crypttab
e /etc/fstab
; assicurati che quei file contengano linee come le seguenti:
/etc/crypttab:
hda2_crypt /dev/hda2 hda5_crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived
/etc/fstab:
/dev/mapper/hda2_crypt swap swap sw 0 0
Con questo in atto, non appena si configura il sistema per la sospensione su disco, la partizione di swap verrà automaticamente impostata insieme al filesystem di root molto presto durante la sequenza di avvio. Per capire quale partizione di swap rendere disponibile a quel punto, cryptsetup controlla quanto segue: asfasfafs - una linea come RESUME=/dev/mapper/hda2_crypt
in /etc/initramfs-tools/conf.d/resume
- riprende l'impostazione del dispositivo in /etc/uswsusp.conf
(vedi uswsusp.conf(5)
) - una voce in /etc/suspend.conf
- a resume=/dev/mapper/hda2_crypt
nella riga di comando del kernel
Puoi controllare /usr/share/initramfs-tools/hooks/cryptroot
se vuoi saperne di più su questo.