# Come ottenere una home crittata?

## marziods

vorrei trovare un modo semplice per avviare la home crittata:

premetto che uso gia delle partizioni crittate che carico tramite il comando 

```
# cryptsetup create partizione /dev/sdaX

# mount /dev/mapper/partizione /mnt/part_crypt
```

ora vorrei che /dev/mapper/partizione diventi la mia /home quindi necessito che all'avvio venga montata con fstab.

è possibile farlo?

grazie 

Marzio

----------

## xdarma

Non ne so niente di partizioni crittate ma stavo provando DuckDuckGo e mi ha portato qui:

SECURITY System Encryption DM-Crypt with LUKS

Verso la fine c'è il capitolo: 17 Decrypting/Encrypting partitions at startup

che dovrebbe esserti utile.

----------

## marziods

ricordavo questo wiki... ma purtroppo sembra che http://en.gentoo-wiki.com sia giù da un po, infatti il link è nella cache di google ma non è raggiungibile...

hanno spento i server?

comunque ti ringrazio era 'dovrebbe essere' quello che cercavo

mandi mandi

----------

## djinnZ

dato che la mia partizione criptrata mi serve per forza condivisa con "quell'altro" mi sono rivolto a truecrypt ma ti consiglio di verificare l'ordine di caricamento dei device in rc.conf conf.d/rc questo me lo ricordo

----------

## fbcyborg

Ciao, 

non so se fa al tuo caso, ma hai provato per caso Tomb - Crypto Undertaker?

Io cio ho smanettato solo un po' su una debian in macchina virtuale, ma poi mi si è bloccato in un punto. Che ne pensate?

----------

## merlok

Allora ti posso rispondere per grandi linee perchè il pc davanti non c'è l'ho   :Laughing:  .

Comunque in /etc/conf.d/ trovi un file di configurazione chimato cryptsetup o dm-crypt, scusa ma ora non ricordo il nome preciso, all interno inserisci la partizione crittata e il nome del relativo mapper.

Aggiungi il demone dm-crypt in boot e poi in fstab fai montere il tuo /dev/mapper/xxXXxx come /home.

Se invece ti vuoi crittare anche la root avrai bisogno di una piccola initram-fs.

Spero di esser stato chiaro   :Very Happy: 

----------

## marziods

per usare gli script di init di dmcrypt dovrei usare baselayout-2 mentre io sono fermo a 1...

infatti mi avverte in fase di avvio che non si trova d'accordo  :Razz: 

mandi mandi...

NB in effetti erano i server wiki down per un upgrade...

----------

## fbcyborg

Volevo provare anche io a fare una partizione crittata solo che ho trovato questo wiki ma mi sono fermato perché non capisco cosa c'entri un file initrd e poi non sono sicuro che sia realmente un wiki "funzionante" (non so perché ho questa impressione).

C'è per caso qualche altra guida che io non trovo?

----------

## marziods

 *Quote:*   

> Volevo provare anche io a fare una partizione crittata solo che ho trovato questo wiki ma mi sono fermato perché non capisco cosa c'entri un file initrd e poi non sono sicuro che sia realmente un wiki "funzionante" (non so perché ho questa impressione). 

 

siccome questa wiki è per crittare l'intero sistema ( boot compresa) non inserire un file initrd non permetterebbe il caricamento iniziale del sistema di decrittazione e quindi l'avvio del sistema stesso. (se dico boiate correggetemi pure   :Embarassed:  vado a mente)

ho abbandonato per ora (ma solo per ora) l'idea di crittare /home ma mi riprometto appena la riprenderò di spiegarne i passaggi qui.

----------

## fbcyborg

Dunque, di recente mi hanno regalato un hard disk esterno USB ed ho voluto crittarlo. Mi sono armato di pazienza ed ho usato Truecrypt, seguendo questo howto per avere un disco completamente cifrato e con filesystem NTFS (così da poter esser letto anche su Winsozz).

Ho usato AES in modalità normale (non è un volume nascosto) con Hash SHA-512. Tra l'altro mi piacerebbe sapere cosa ne pensate circa l'algoritmo di crittografia da utilizzare. Fra tutti gli algoritmi e combinazioni possibili AES è quello che garantisce un'accesso a disco più veloce.

Alla fine di tutto, e dopo un sacco di tempo di attesa per preparare il disco ho ottenuto il mio disco crittato, montabile e smontabile sia con la GUI di Truecrypt che tramite riga di comando.

Dal momento che anche io sono interessato a farmi una /home criptata, mi sorgono alcuni dubbi/domande.

L'howto che ho segnalato dice di fare:

```
rc-update add truecrypt boot
```

Ciò in realtà non è necessario, e non è necessario averlo in esecuzione. Infatti riesco a montare il disco crittato anche se è stoppato.

Per quanto riguarda la /home crittata, immagino che invece serva qualche servizio in esecuzione al boot. Potrebbe essere dmcrypt (ma anche Truecrypt?), che però appartiene al pacchetto cryptsetup.

Qualche indicazione può essere presa anche dal sito di un progetto di cui faccio parte: VDD-Project. Qui si criptano delle partizioni LVM che poi vengono montate appositamente dalle macchine virtuali. Però forse abbiamo bisogno di cose più semplici.

Comunque l'idea è quella di criptare /dev/sdaX con truecrypt -t -c e poi fare in modo di montarla usando lo script dmcrypt opportunamente configurato in /etc/conf.d/dmcrypt.

In tale file ho visto le seguenti cose:

```
## /home with passphrase

#target=crypt-home

#source='/dev/hda5'

```

Questa mi sembra la configurazione più semplice. Ho l'impressione che con questa configurazione venga chiesta la password in fase di boot e si proceda normalmente.

```
## /home with regular keyfile

#target=crypt-home

#source='/dev/hda5'

#key='/full/path/to/homekey'
```

Come sopra, ma con un file chiave.

```
## /home with gpg protected key

#target=crypt-home

#source='/dev/hda5'

#key='/full/path/to/homekey:gpg'
```

Come sopra ma con chiave protetta da gpg, quindi più utile. Una password per proteggere un file con la password. Dubbia utilità.

```
## /home with regular keyfile on removable media(such as usb-stick)

#target=crypt-home

#source='/dev/hda5'

#key='/full/path/to/homekey'

#remdev='/dev/sda1'
```

Come sopra, ma più utile. Metto la chiave su pendrive e solo se c'è la chiave dentro si procede. Te ti perdi la pendrive o comunque si rovina sei fucked.

Meglio farsi una copia.

```
##/home with gpg protected key on removable media(such as usb-stick)

#target=crypt-home

#source='/dev/hda5'

#key='/full/path/to/homekey:gpg'

#remdev='/dev/sda1'
```

Come sopra ma protetta con gpg.

```
##/tmp with regular keyfile

#target=crypt-tmp

#source='/dev/hda6'

#key='/full/path/to/tmpkey'

#pre_mount='/sbin/mkreiserfs -f -f ${dev}'

#post_mount='chown root:root ${mount_point}; chmod 1777 ${mount_point}'
```

Questo non l'ho capito molto bene.

```
## Loopback file example

#mount='crypt-loop-home'

#source='/dev/loop0'

#loop_file='/mnt/crypt/home'
```

Questo se non ho capito male serve solo a montare una /home che però è contenuta in un loop file. 

La soluzione più semplice e pratica mi sembra la prima. La chiavetta USB è comoda ma comporta i problemi che dicevo.

A quanto ho capito dovrebbe chiedere la password mentre fa il boot e se corretta, si procede con il boot. Altrimenti? Boh!

Che dite? Approfondiamo la questione?

----------

## fbcyborg

 *marziods wrote:*   

> vorrei trovare un modo semplice per avviare la home crittata:
> 
> premetto che uso gia delle partizioni crittate che carico tramite il comando 
> 
> ```
> ...

 

Ciao Marzio, 

ho ripreso un po' la faccenda ed in pochi passi sono riuscito a mettere su, una home criptata.

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.

Ora però mi è rimasto un dubbio: quanto è forte la protezione che ho usato?

Come migliorare il tutto?

----------

## maurs

Su ubuntu è possibile impostare la cryptazione della home in modo che venga "decryptata" al momento del login, evitando così di dover inserire due password.

Anche se di sicuro la tua soluzione è molto più sicura (password diverse), quella in ubuntu è molto più lineare. 

Sarebbe interessante portare questa modalità anche su gentoo, se non esiste già...

----------

## fbcyborg

Forse Ubuntu, usa una metodologia leggermente diversa: EncryptedHome. Ma non sono sicurissimo.

----------

