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

## 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:

```
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:

```
emerge cryptsetup multipath-tools
```

```
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:

```
shred -v -n 2 /dev/sda3
```

Formattare la partizione con luks per creare l'header e la master key:

```
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: 

```
--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:

```
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:

```
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:

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

```
## /home with passphrase

target=home

source='/dev/sda3'
```

Al prossimo reboot verrà chiesta la password per accedere alla partizione di /home.

----------

