La cifratura del filesystem di un domU
Se la sicurezza delle virtual machine è importante si può pensare a cifrare il filesystem del dominio.
Occurre, però, preparare un kernel ad hoc che supporti gli algoritmi di cifratura, device mapper e target crypt.
Per fare ciò nella fase di configurazione di Linux bisogna attivare i moduli “Device mapper support and Crypt target support” e “Aes cipher algorithms” oltre che ai moduli per Xen.
Quindi è possibile far partire il domU usando il kernel appena compilato e installato sulla virtual machine.
E’ necessario installare alcuni tool ne domU: cryptsetup (persente nel disco di installazione della distribuzione).
Il filesystem cifrato verrà memorizzato in un file loopback.
# dd if=/dev/zero of=/home/valent/root-fs.img bs=1M count=1 seek=4095
Il file immagine root-fs.img avrà una dimensione di 4 GB.
E’ necessario innestare l’immagine sul device loop adoperando il comando:
# losetup -f /home/valent/root-fs.img
Per creare un volume logico:
# cryptsetup -y create root-fs-crypt /dev/loop0
E’ richiesta una password.
Per controllare il successo dell’operazione si può usare:
# dmsetup ls
Dovrebbe apparire:
root-fs-crypt (253, 0)
Si può ora formattare il root-fs-crypt con ext3:
# mkfs.ext3 /dev/mapper/root-fs-crypt
Questo è l’output del comando:
mke2fs 1.40.2 (12-Jul-2007)
Etichetta del filesystem=
Tipo SO: Linux
Dimensione blocco=4096 (log=2)
Dimensione frammento=4096 (log=2)
131072 inode, 262144 blocchi
13107 blocchi (5.00%) riservati per l’utente root
Primo blocco dati=0
Maximum filesystem blocks=268435456
8 gruppi di blocchi
32768 blocchi per gruppo, 32768 frammenti per gruppo
16384 inode per gruppo
Backup del superblocco salvati nei blocchi:
32768, 98304, 163840, 229376
Scrittura delle tavole degli inode: fatto
Creazione del journal (8192 blocchi): fatto
Scrittura delle informazioni dei superblocchi e dell’accounting del filesystem: fatto
Questo filesystem verrà automaticamente controllato ogni 29 mount, o
180 giorni, a seconda di quale venga prima. Usare tune2fs -c o -i per cambiare.
Si può montare il filesytem loop su un ramo di mnt
# mount /dev/mapper/root-fs-crypt.img /mnt/root-fs
Ora è necessario installare il sistema operativo desiderato adoperando /mnt/root-fs come directory di root. Al termine dell’installazione si può smontare il tutto:
# umount /mnt/root-fs
Sempre nel domU inserire nel file /etc/fstab questa voce:
/dev/mapper/root-fs-crypt /mnt/root-fs ext3 defaults 0 2
In più occorre modificare anche /etc/crypttab aggiungendo
root-fs-crypt /dev/mapper/root-fs-crypt none check=ext3,retry=5
Finalmente è possibile fare il boot usando il filesystem cifrato, all’avvio è richiesta la password che è stata immessa al momento della creazione del volume.