Como criar uma partição criptografada ext4 no Ubuntu 15.04 com o novo kernel 4.1?

Como criar uma partição criptografada ext4 no Ubuntu 15.04 com o novo kernel 4.1?

Posso criar uma nova ext4partição criptografada com kernel 4.1 no Ubuntu 15.04?

Responder1

Primeiro, um aviso: não fiz isso com o Ubuntu, mas em uma máquina com o Debian "Stretch" instalado usando um kernel Linux 4.2.3 personalizado que eu habilitei EXT4_FS_ENCRYPTION.

As instruções dadas porkmeawnão funciona para mim exatamente como postado. Algumas coisas foram deixadas de fora (parâmetros e etapas da linha de comando).

  • Atualize e2fsprogsconforme mostrado acima
  • Gere seu sal aleatório. Usei o seguinte para armazená-lo em um "local seguro":

    head -c 16 /dev/urandom | xxd -p >~/tmp-salt.txt
    echo 0x`cat ~/tmp-salt.txt` >~/.cryptoSalt
    
  • Para usar a criptografia ext4 no sistema de arquivos, o sinalizador "encrypt" deve ser definido no superbloco. Este não é o padrão quando o sistema de arquivos ext4 é criado. Usando o utilitário "tune2fs" do e2fsprogs 1.43 ou posterior, defina a opção "encrypt":

    sudo tune2fs -O encrypt /dev/sda4
    
  • Monte ou remonte o sistema de arquivos para que o kernel saiba sobre a mudança (talvez seja automático, mas só fiz isso em uma partição separada, então não tenho certeza).

  • Crie um diretório no sistema de arquivos montado com a criptografia ativada:

    sudo mkdir -p /secret/home/$USER
    sudo chown $USER:$USER /secret/home/$USER
    
  • Crie a chave no chaveiro e use-a para definir a política do diretório a ser criptografado (o sudocomando não é necessário aqui):

    $ /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.
    
  • Após cada reinicialização, o add_keycomando pode ser usado para definir a chave para descriptografar o diretório e seus descendentes:

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

    Digite a mesma senha usada na etapa anterior e você não precisará se lembrar da string hexadecimal do descritor.

  • Você também pode usar add_keydiretamente. Isso usará um sal específico do sistema de arquivos (portanto, todas as pastas nessa partição terão o mesmo sal)

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

Responder2

O Linux 4.1 vem com um novo recurso Ext4 para criptografar diretórios de um sistema de arquivos. As chaves de criptografia são armazenadas no chaveiro. Para começar, certifique-se de ter ativado CONFIG_KEYSas CONFIG_EXT4_FS_ENCRYPTIONopções do kernel e de ter o kernel 4.1 ou superior.

Primeiro de tudo, você precisa atualizar o e2fsprogs para pelo menos a versão 1.43, que ainda é WIP no momento em que este artigo foi escrito, então precisamos buscá-lo norepositório git:

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

A fonte e4crypt desativou uma seção relevante em seu código-fonte, habilite-a editando misc/e4crypt.c e removendo estas duas linhas perto da linha 714:

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

Agora construa e instale novos e2fsprogs:

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

Verifique sua versão agora, deve ser 1.43-WIP:

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

Para trabalhar com chaves, precisamos instalar o keyutilspacote:

$ sudo apt-get install keyutils

Vamos criar um diretório que iremos criptografar. A política de criptografia só pode ser definida em diretórios vazios:

$ sudo mkdir -p /encrypted/dir

Primeiro gere um valor de sal aleatório e armazene-o em um local seguro:

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

Agora gere e adicione uma nova chave ao seu chaveiro: esta etapa deve ser repetida toda vez que você liberar seu chaveiro (reiniciar)

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

Agora você conhece um descritor para sua chave. Certifique-se de ter adicionado uma chave ao seu chaveiro:

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

Quase pronto. Agora defina uma política de criptografia para um diretório:

$ e4crypt set_policy f88747555a6115f5 /encrypted/dir

Isso é tudo. Se você tentar acessar o disco sem adicionar uma chave às chaves, os nomes dos arquivos e seus conteúdos serão vistos como algo sem sentido criptografado. Tenha cuidado ao executar versões antigas do e2fsck em seu sistema de arquivos - isso tratará nomes de arquivos criptografados como inválidos.

informação relacionada