Come creare una partizione crittografata ext4 su Ubuntu 15.04 con il nuovo kernel 4.1?


Risposte:


9

Prima di tutto un disclaimer: non l'ho fatto con Ubuntu, ma su una macchina con Debian "Stretch" installato usando un kernel Linux 4.2.3 personalizzato su cui ho abilitato EXT4_FS_ENCRYPTION.

Le istruzioni fornite da kmeaw non funzionano per me esattamente come pubblicate. Alcune cose sono state escluse (parametri e passaggi della riga di comando).

  • Aggiorna e2fsprogscome mostrato sopra
  • Genera il tuo sale casuale. Ho usato quanto segue per conservarlo in un "luogo sicuro":

    head -c 16 /dev/urandom | xxd -p >~/tmp-salt.txt
    echo 0x`cat ~/tmp-salt.txt` >~/.cryptoSalt
    
  • Per utilizzare la crittografia ext4 sul file system, il flag "encrypt" deve essere impostato nel superblocco. Questo non è il valore predefinito quando viene creato il file system ext4. Utilizzando l'utilità "tune2fs" da e2fsprogs 1.43 o successive, imposta l'opzione "encrypt":

    sudo tune2fs -O encrypt /dev/sda4
    
  • Montare o rimontare il file system in modo che il kernel sia a conoscenza del cambiamento (forse è automatico, ma l'ho fatto solo su una partizione separata, quindi non ne sono sicuro.)

  • Creare una directory sul file system montata con la crittografia abilitata:

    sudo mkdir -p /secret/home/$USER
    sudo chown $USER:$USER /secret/home/$USER
    
  • Crea la chiave nel portachiavi e usala per impostare il criterio per la crittografia della directory (qui il sudocomando non è necessario):

    $ /usr/sbin/e4crypt add_key -S s:`cat ~/.cryptoSalt`
    Enter passphrase (echo disabled):
    Added key with descriptor [0132fed69f946c86]
    $ /usr/bin/e4crypt set_policy 0132fed69f946c86 /secret/home/$USER
    Key with descriptor [0132fed69f946c86] applies to /secret/home/theuser.
    
  • Dopo ogni riavvio, è add_keypossibile utilizzare il comando impostare la chiave per la decrittografia della directory e dei suoi discendenti:

    $ /usr/sbin/e4crypt add_key -S s:`cat ~/.cryptoSalt`
    Enter passphrase (echo disabled):
    Added key with descriptor [0132fed69f946c86]
    

    Immettere la stessa password utilizzata nel passaggio precedente e non è necessario ricordare la stringa esadecimale del descrittore.

  • Puoi anche usare add_keydirettamente. Questo utilizzerà un salt specifico per il filesystem (quindi tutte le cartelle in quella partizione avranno lo stesso salt)

    $ /usr/sbin/e4crypt add_key /secret/home/$USER
    Added key with descriptor [0132fed69f946c86]
    Key with descriptor [0132fed69f946c86] applies to /secret/home/theuser.
    

L'articolo nella wiki di Arch suggerisce di leggere il seguente post sul blog, il cui autore ha scritto un programma per semplificare alcuni dei passaggi: blog.quarkslab.com/… Al momento in cui scrivo 16.04 è ancora in fase di sviluppo e ha le due corrispondenti configurazioni del kernel opzioni impostate, e2fsprogs è ancora alla versione 1.42.
LiveWireBT

Bene ... ho provato quelle istruzioni e la mia cartella è bloccata ... su un cp .. /secret/home/$USER/.ottengo: «cp: impossibile creare il file regolare '/secret/home/alexis/test-top-secret-image.svg': chiave richiesta no disponibile » . Ho appena seguito le tue istruzioni, quindi immagino che qualcosa sia cambiato.
Alexis Wilke,

Nella seconda istanza di " /usr/bin/e4crypt" manca la "s" in "/ [s] bin".
Alexis Wilke,

3

Linux 4.1 viene fornito con una nuova funzionalità Ext4 per crittografare le directory di un filesystem. Le chiavi di crittografia sono memorizzate nel portachiavi. Per iniziare, assicurati di aver abilitato CONFIG_KEYSe CONFIG_EXT4_FS_ENCRYPTIONle opzioni del kernel e di avere il kernel 4.1 o successivo.

Prima di tutto, devi aggiornare e2fsprogs almeno alla versione 1.43, che è ancora WIP al momento della scrittura, quindi dobbiamo recuperarlo dal repository git :

$ git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git

e4crypt source ha disabilitato una sezione pertinente nel suo codice sorgente, abilitandola modificando misc / e4crypt.c e rimuovendo queste due righe vicino alla linea 714:

    printf("arg %s\n", argv[optind]);
    exit(0);

Ora costruisci e installa nuovi e2fsprogs:

$ sudo apt-get install devscripts build-essential gettext texinfo pkg-config debhelper m4
$ debuild
$ sudo dpkg -i e2fsprogs_1.43-WIP_amd64.deb

Controlla la tua versione ora, dovrebbe essere 1.43-WIP:

# e2fsck -V
e2fsck 1.43-WIP (18-May-2015)
        Using EXT2FS Library version 1.43-WIP, 18-May-2015

Per lavorare con le chiavi, è necessario installare il keyutilspacchetto:

$ sudo apt-get install keyutils

Facciamo una directory che crittograferemo. I criteri di crittografia possono essere impostati solo su directory vuote:

$ sudo mkdir -p /encrypted/dir

Innanzitutto genera un valore salato casuale e conservalo in un luogo sicuro:

$ head -c 16 /dev/random | xxd -p
877282f53bd0adbbef92142fc4cac459

Ora genera e aggiungi una nuova chiave nel tuo portachiavi: questo passaggio dovrebbe essere ripetuto ogni volta che scarichi il tuo portachiavi (riavvia)

$ sudo e4crypt -S 0x877282f53bd0adbbef92142fc4cac459
Enter passphrase (echo disabled): 
Added key with descriptor [f88747555a6115f5]

Ora conosci un descrittore per la tua chiave. Assicurati di aver aggiunto una chiave al tuo portachiavi:

$ keyctl show
Session Keyring
1021618178 --alswrv   1000  1000  keyring: _ses
 176349519 --alsw-v   1000  1000   \_ logon: ext4:f88747555a6115f5

Quasi fatto. Ora imposta un criterio di crittografia per una directory:

$ e4crypt set_policy f88747555a6115f5 /encrypted/dir

È tutto. Se provi ad accedere al disco senza aggiungere una chiave nel portachiavi, i nomi dei file e il loro contenuto verranno visualizzati come incomprensibili crittografati. Fai attenzione a eseguire le vecchie versioni di e2fsck sul tuo filesystem - tratterà i nomi di file crittografati come non validi.


Questa risposta ha avuto gravi problemi di formattazione. Ho cercato di migliorare il più possibile, ma per me non ha senso il motivo per cui si dovrebbe ovviamente tentare di utilizzare la formattazione di markdown, gestire comandi complessi e anche fare una modifica simile nel wiki Arch allo stesso tempo, ma poi guardare alla spazzatura resa nell'anteprima e decidi di lasciarla così com'è. Non ci sono spiegazioni soddisfacenti o ulteriori riferimenti sul motivo per cui le linee devono essere rimosse. Inoltre si suggerisce di usare debuild in un modo non previsto (con un pacchetto non debianizzato, c'è un pacchetto sperimentale in Debian) e non funziona. -1
LiveWireBT
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.