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

11

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

Oto_Shan
fonte
2
possível duplicata de Como criar uma partição criptografada?
Ron
Isto não é uma duplicata, pois nenhuma das respostas existentes é sobre o recurso específico adicionado no kernel 4.1, referência: phoronix.com/…
LiveWireBT

Respostas:

9

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 habilitei EXT4_FS_ENCRYPTION.

As instruções dadas pelo kmeaw não funcionam exatamente para mim como postadas. Algumas coisas foram deixadas de fora (parâmetros e etapas da linha de comando).

  • Atualize e2fsprogscomo 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 "criptografar" deve ser definido no superbloco. Esse 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 "criptografar":

    sudo tune2fs -O encrypt /dev/sda4
    
  • Monte ou remonte o sistema de arquivos para que o kernel saiba da mudança (talvez seja automático, mas eu fiz isso apenas em uma partição separada, por isso 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 para o 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 não será necessário lembrar a sequência hexadecimal do descritor.

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

    $ /usr/sbin/e4crypt add_key /secret/home/$USER
    Added key with descriptor [0132fed69f946c86]
    Key with descriptor [0132fed69f946c86] applies to /secret/home/theuser.
    
Daniel Glasser
fonte
O artigo no wiki do Arch sugere ler a seguinte postagem no blog, cujo autor escreveu um programa para simplificar algumas das etapas: blog.quarkslab.com/… No momento em que escrevi, o 16.04 ainda estava em desenvolvimento e possui as duas configurações correspondentes do kernel conjunto de opções, o e2fsprogs ainda está na versão 1.42.
LiveWireBT
Bem ... eu tentei essas instruções e minha pasta está bloqueada ... em um cp .. /secret/home/$USER/.eu recebo: «cp: não é possível criar o arquivo regular '/secret/home/alexis/test-top-secret-image.svg': Chave necessária não disponível » . Eu apenas segui suas instruções, então acho que algo mudou.
Alexis Wilke
A segunda instância de " /usr/bin/e4crypt" está faltando o "s" no "/ [s] bin".
Alexis Wilke
3

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 habilitado CONFIG_KEYSe CONFIG_EXT4_FS_ENCRYPTIONopções de kernel e você tem de kernel 4.1 ou superior.

Primeiro, você precisa atualizar o e2fsprogs para pelo menos a versão 1.43, que ainda é WIP no momento da redação, portanto, precisamos buscá-lo no repositório git :

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

O e4crypt source desativou uma seção relevante em seu código-fonte, habilite-o editando misc / e4crypt.c e removendo essas duas linhas próximas à linha 714:

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

Agora crie 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, ela 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 criptografaremos. A política de criptografia pode ser definida apenas em diretórios vazios:

$ sudo mkdir -p /encrypted/dir

Primeiro gere um valor aleatório de sal 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 (reinicialização)

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

Agora você conhece um descritor para sua chave. Verifique se você adicionou 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 ao chaveiro, os nomes de arquivos e seu conteúdo serão vistos como mensagens criptografadas. Cuidado ao executar versões antigas do e2fsck no seu sistema de arquivos - ele tratará os nomes de arquivos criptografados como inválidos.

kmeaw
fonte
Esta resposta teve problemas graves de formatação. Eu tentei melhorar o máximo que pude, mas não faz sentido para mim por que alguém obviamente tentaria usar a formatação de markdown, manipular comandos complexos e também fazer uma edição semelhante no wiki do Arch ao mesmo tempo, mas depois olhe no lixo renderizado na visualização e decida deixá-lo como está. Não há explicação satisfatória ou referência adicional para o motivo de remover as linhas. Além disso, é sugerido o uso do debuild de uma maneira que não se destina (com um pacote não debianizado, há um pacote experimental no Debian) e não funciona. -1
LiveWireBT 28/02