Page 1 of 1

[HOWTO] Come criptare la /home usando cryptsetup e luks

Posted: Thu Jan 05, 2012 5:53 pm
by fbcyborg
Nel rispondere alla discussione aperta da marziods alla fine mi sono ritrovato a scrivere un howto, che poi è un mix di altre guide che si trovano in rete, ma è specifica per la criptazione di una partizione e nella fattispecie della /home.

In giro ci sono per lo più guide che prevedono la criptazione di tutto / ma con pochi e semplici passi si può avere la /home criptata. Ecco come ho fatto.

Per prima cosa, ho preso come riferimento questo Wiki: DM-Crypt.

Procediamo per gradi.
Effettuare il backup del contenuto della partizione /home.
Impostare il kernel secondo il seguente schema:

Code: Select all

File systems  --->
	<*> Second extended fs support
	<*> Reiserfs support

Device Drivers  --->
	Block devices  --->
		<*> Loopback device support
		< > Cryptoloop Support
		(4096) Default RAM disk size (kbytes)
	Multiple devices driver support (RAID and LVM)  --->
		<*> Device mapper support
		<*> Crypt target support

General Setup  --->
	[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support

Cryptographic API  --->
	<*> SHA 224 and SHA256 digest algorithm
	<*> AES cipher algorithms (x86_64)
Nel mio caso ho impostato solo ext2 ed ext4 come built-in, poiché uso solo quei due filesystem.
(Il supporto a initramfs in realtà non è necessario se si sta criptando solo la home)

Installare cryptsetup e multipath-tools:

Code: Select all

emerge cryptsetup multipath-tools

Code: Select all

rc-update add dmcrypt boot
Supponendo che /dev/sda3 sia la partizione che contiene i dati della /home operiamo uno shred sulla stessa per rendere illeggibili i dati precedenti:

Code: Select all

shred -v -n 2 /dev/sda3
Formattare la partizione con luks per creare l'header e la master key:

Code: Select all

cryptsetup -y -s 256 luksFormat /dev/sda3
Digitare YES e inserire la password scelta.

Nota:
man cryptsetup wrote:Default mode is configurable during compilation, you can see compiled-in default using cryptsetup --help. If not changed, the default is for plain dm-crypt and LUKS mappings "aes-cbc-essiv:sha256".
Quindi nel comando qui sopra è sottintesa la seguente opzione:

Code: Select all

--cipher aes-cbc-essiv:sha256
Nel caso si voglia usare un altro algoritmo di cifratura, apportare le modifiche necessarie alla configurazione del kernel.

Associare /dev/sda3 a /dev/mapper/home:

Code: Select all

cryptsetup luksOpen /dev/sda3 home
A questo punto la partizione /dev/sda3 è accessibile tramite /dev/mapper/home.
Attenzione: questa è solo un'impostazione temporanea. Più avanti le istruzioni per rendere la cosa automatica al boot.

Formattare e montare la partizione:

Code: Select all

mkfs.ext4 /dev/mapper/home
mount /dev/mapper/home /home
Ora è possibile copiare il contenuto della /home (precedentemente spostato da un'altra parte nel caso non si trattasse di una nuova installazione) nella nuova partizione criptata.

Modificare i file:

Code: Select all

/dev/mapper/home  /home         ext4  noatime   0 1

Code: Select all

## /home with passphrase
target=home
source='/dev/sda3'
Al prossimo reboot verrà chiesta la password per accedere alla partizione di /home.