Installare in una cryptroot
Tenere presente che ci sono alcune avvertenze nell'utilizzo di questa guida per criptare le partizioni root opppure dati. Eccole:
- Applicabile solo da aptosid-2010-03-apate in poi.
- Questa è una guida di base per iniziare. È vostra responsabilità saperne di più riguardo a LUKS, cryptsetup e crittografia. Le Fonti e le Risorse che potrebbero essere utili sono elencate alla fine di questa pagina, tuttavia la lista non è certamente esaustiva.
- cryptsetup non può crittografare una partizione dati esistente, quindi si deve creare una nuova partizione, configurarla con cryptsetup e quindi spostarci i dati.
- Si può anche utilizzare file chiave ed avere chiavi multiple per i dati, (fino ad 8, includendo la rimozione delle chiavi), ma questo è oltre lo scopo di questa guida.
- Non ci si deve dimenticare le frasi di accesso dal momento che si perderebbe tutto! Persino un chroot senza conoscere le frasi di accesso non può essere di aiuto se non per la directory /boot.
- Durante il processo d'avvio iniziale verrà richiesta la frase di accesso per la periferica criptata ed il sistema si avvierà normalmente.
Esempi di crittografia:
Utilizzare la crittografia con i gruppi LVM
Questo esempio utilizza la crittografia dentro il volume LVM, permette di separare la home da / ed avere una partizione di swap senza la necessità di password multiple; è applicabile da aptosid-2010-03-apate in poi.
Prima di avviare il programma di installazione si devono preparare i filesystem che verranno utilizzati per l'installazione. Per le linee guida base per il partizionamento LVM, ci si deve riferire a Logical Volume Manager - partizionamento LVM.
C'è bisogno di almeno una partizione con un filesystem non criptato /boot un filesystem criptato / ed inoltre creare filesystem criptati /home e swap.
- Se non si prevede di utilizzare un gruppo di volumi lvm esistente creare normalmente un gruppo di volumi lvm. Questo esempio considera che il gruppo di volumi si chiami vg per contenere l'avvio ed i dati criptati.
- C'è bisogno di un volume logico per /boot ed i dati criptati, utilizzare lvcreate per creare i volumi logici nel gruppo di volumi vg con le dimensioni che si vogliono:
lvcreate -n boot --size 250m vg lvcreate -n crypt --size 300g vg
Qui si sono chiamati i volumi logici boot e crypt con dimensioni rispettivamente di 250Mb e 300Gb. - Creare il filesystem per /boot in modo che sia disponibile per il programma di installazione:
mkfs.ext4 /dev/mapper/vg-boot
- Utilizzare cryptsetup per criptare vg-crypt utilizzando l'opzione più veloce xts con la lunghezza della chiave più sicura di 512bit e quindi aprirla. Verrà richiesta la password due volte per impostarla ed una terza volta per aprirla. Aprirla con le impostazioni di default di cryptopts usando come nome cryptroot:
cryptsetup --verify-passphrase --cipher aes-xts-plain:sha512 luksFormat /dev/mapper/vg-crypt
cryptsetup luksOpen /dev/mapper/vg-crypt cryptroot
- Adesso utilizzare lvm dentro la periferica criptata per creare un secondo gruppo di volumi che verrà utilizzato per le periferiche /swap e /home. pvcreate cryptroot per farla diventare un volume fisico ed utilizzarla con vgcreate per creare un altro gruppo di volumi che si chiamerà cryptvg:
pvcreate /dev/mapper/cryptroot vgcreate cryptvg /dev/mapper/cryptroot
- Quindi utilizzare lvcreate nel nuovo gruppo di volumi criptato cryptvg per creare i volumi logici / , /swap e /home delle dimensioni che si vogliono:
lvcreate -n swap --size 2g cryptvg lvcreate -n root --size 40g cryptvg lvcreate -n home --size 80g cryptvg
Adesso si hanno i volumi logici swap, root e home creati rispettivamente con 2Gb, 40Gb e 80Gb. - Creare i filesystems per cryptvg-swap, cryptvg-root e cryptvg-home in modo da renderli disponibili nel programma di installazione:
mkswap /dev/mapper/cryptvg-swap mkfs.ext4 /dev/mapper/cryptvg-root mkfs.ext4 /dev/mapper/cryptvg-home
- Adesso tutto è pronto per avviare il programma di installazione dove si dovranno utilizzare:
vg-boot per /boot,
cryptvg-root per /,
cryptvg-home per /home,
and cryptvg-swap per swap dovrebbe essere riconosciuto come per magia.
Il sistema installato alla fine dovrebbe avere una linea di comando per il kernel che include le seguenti opzioni:
root=/dev/mapper/cryptvg-root cryptopts=source=/dev/mapper/vg-crypt,target=cryptroot,lvm=cryptvg-root
Adesso si hanno crypt e boot dentro il gruppo di volumi lvm vg e root, home e swap dentro il gruppo di volumi vgcrypt che si trova dentro la periferica criptata protetta da password.
Note: If reinstalling to a previously encrypted lvm volume the installer needs to be made aware of the crypt:
cryptsetup luksOpen /dev/mapper/cryptvg-root cryptvg vgchange -a y
Note per la crittografia con i metodi di partizionamento tradizionali
La prima cosa da decidere è come si vuole partizionare il disco. C'è bisogno di almeno 2 partizioni, una partizione normale per /boot e una per i dati criptati.
Assumendo che è necessario swap (la quale deve essere criptata a sua volta) c'è la necessità di una terza partizione e si dovrà inserire la password per swap separatamente durante l'avvio (così si avranno due richieste di password).
È possibile utilizzare chiavi per la swap dall'interno del sistema criptato con il partizionamento tradizionale, tuttavia non si potrà fare il sospendi su disco. A causa di questi problemi, l'opzione migliore nel lungo termine è quella di utilizzare i volumi LVM con partizioni e chiavi completamente criptate.
Presupposti essenziali:
- Ci sono solo 3 partizioni in questo disco:
/boot, di 250mb
swap, di 2 Gb
/ e /home combinate (per esempio, bilanciate). - Sono richieste 2 frasi di accesso, 1 per swap e l'altra per / e /home combinate.
Adesso che si è fatto il partizionamento, si devono preparare le partizioni criptate in modo che siano riconosciute dal programma di installazione.
Se si è utilizzata una applicazione grafica per il partizionamento, chiuderla ed aprire un terminale, dato che i comandi per la crittografia devono essere eseguiti dalla linea di comando.
La partizione /boot
Creare la partizione /boot come ext4, se non si è ancora fatto:
/sbin/mkfs.ext4 /dev/sda1
Partizione swap criptata
Per la partizione swap criptata per prima cosa si deve formattare ed aprire la periferica grezza, /dev/sda2, come una periferica criptata, come la periferica vg-crypt come sopra ma aprirla con un nome differente, swap.
cryptsetup --verify-passphrase --cipher aes-xts-plain:sha512 luksFormat /dev/sda2
cryptsetup luksOpen /dev/sda2 swap
echo "swap UUID=$(blkid -o value -s UUID /dev/sda2) none luks" >> /etc/crypttab
Formattare la swap creata /dev/mapper/swap in modo che venga risconosciuta dal programma di installazione:
/sbin/mkswap /dev/mapper/swap
Partizione / criptata
Per la partizione / criptata per prima cosa si deve formattare ed aprire la periferica grezza, /dev/sda3, come una periferica criptata, come la periferica vg-crypt come sopra.
cryptsetup --verify-passphrase --cipher aes-xts-plain:sha512 luksFormat /dev/sda3
cryptsetup luksOpen /dev/sda3 cryptroot
Formattare /dev/mapper/cryptroot in modo che sia visualizzata nel programma di installazione:
/sbin/mkfs.ext4 /dev/mapper/cryptroot
Aprire il programma di installazione
Adesso si è pronti per avviare il programma di installazione dove si deve usare:
sda1 per /boot,
cryptroot per / e /home
swap dovrebbe essere riconosciuta come per magia.
Il sistema installato alla fine dovrebbe avere una linea di comando per il kernel che include le seguenti opzioni (sebbene verrà utilizzato l'UUID esistente):
root=/dev/mapper/cryptroot cryptopts=source=UUID=12345678-1234-1234-1234-1234567890AB,target=cryptroot
A questo punto si ha /boot in una partizione semplice, uno swap criptato protetto da password ed una partizione criptata con root e /home.
Fonti e Risorse:
Letture necessarie:
man cryptsetup
LUKS.
Protect Your Stuff With Encrypted Linux Partitions.
KVM how to use encrypted images.