Posso criar uma nova ext4
partição criptografada com o kernel 4.1 no Ubuntu 15.04?
Posso criar uma nova ext4
partição criptografada com o kernel 4.1 no Ubuntu 15.04?
Respostas:
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).
e2fsprogs
como mostrado acimaGere 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 sudo
comando 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_key
comando 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_key
diretamente. 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.
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.
/usr/bin/e4crypt
" está faltando o "s" no "/ [s] bin".
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_KEYS
e CONFIG_EXT4_FS_ENCRYPTION
opçõ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 keyutils
pacote:
$ 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.