Luks
Luks
Não use esse tutorial por enquanto! Se vc souber o problema por favor me avise!
Um pequeno ajuste para não ter que digitar 2 senhas no boot
Como Fazer a chave ser copiada para o initramfs (Solução insegura):
Preciso declarar no /etc/cryptsetup-initramfs/conf-hook
1
echo 'KEYFILE_PATTERN=/etc/keys/*.key' | sudo tee -a /etc/cryptsetup-initramfs/conf-hook
Importante! Esse passo só ocorre uma vez mas é fundamental pro sistema funcionar. Mas também é o problema deste tutorial, pois torna o ambiente inseguro A chave é copiada do disco que esta criptografado para dentro do initramfs que não é criptografado, nem esta em uma partição criptografada.
Criar a chave da partição:
Criar a chave especifica desta partição:
class="highlight">1
sudo dd if=/dev/urandom of=/etc/keys/vda3.key bs=512 count=8
Ajustar as permissões da chave:
class="highlight">1
2
sudo mkdir -m 700 /etc/keys
sudo chmod 400 /etc/keys/vda3.key
Editar o /etc/crypttab, a linha que trata do vda3 entre o UUID e demais para metros tem a palavra none, vamos trocar pelo caminho do arquivo.
De:
class="highlight">1
vda3_crypt UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx none luks,swap,discard,x-initrd.attach
Para:
class="highlight">1
vda3_crypt UUID=xxxxxxxx-xxxx-xxxx-xxxxx-xxxxxxxxxxxx /etc/keys/vda3.key luks,swap,discard,x-initrd.attach
Vou atribuir essa chave ao Luks. Será solicitado a senha atual. não vamos apagar ela, só estamos adicionando mais uma forma de abrir:
class="highlight">1
sudo cryptsetup luksAddKey /dev/vda3 /etc/keys/vda3.key
Atualizar a inicialização
Atualizar o initramfs para ele guardar a chave e saber a quem pertence:
class="highlight">1
sudo update-initramfs -u
Se deu errado?
Eu tive um problema ao criar o swap, precisei refazer: Desativei:
class="highlight">1
2
sudo swapoff /dev/mapper/vda3_crypt
sudo cryptsetup close vda3_crypt
Formatei novamente o Luks:
class="highlight">1
sudo cryptsetup luksFormat --type luks2 /dev/vda3
A saída:
class="highlight">1
2
3
4
5
6
7
WARNING!
========
Isto vai sobrescrever dados em /dev/vda3 permanentemente.
Are you sure? (Type 'yes' in capital letters): YES
Digite a senha para /dev/vda3:
Verificar senha:
Adicionei novamente a chave:
class="highlight">1
sudo cryptsetup luksAddKey /dev/vda3 /etc/keys/vda3.key
A saída:
class="highlight">1
2
Digite qualquer senha existente:
Warning: keyslot operation could fail as it requires more than available memory.
Abri com a chave para testar:
class="highlight">1
sudo cryptsetup open /dev/vda3 vda3_crypt --key-file /etc/keys/vda3.key
A saída:
class="highlight">1
Warning: keyslot operation could fail as it requires more than available memory.
Tive que pegar o novo id:
class="highlight">1
2
lsblk | grep vda3_crypt
sudo blkid /dev/vda3
Trocar no /etc/crypttab
class="highlight">1
sudo vi /etc/crypttab
Formatar o swap:
class="highlight">1
2
sudo mkswap /dev/mapper/vda3_crypt
sudo swapon /dev/mapper/vda3_crypt
Um ajuste de segurança:
class="highlight">1
echo 'UMASK=0077' | sudo tee /etc/initramfs-tools/conf.d/umask
/etc/initramfs-tools/initramfs.conf também pode conter o valor
Atualizado o initramfs:
class="highlight">1
sudo update-initramfs -u
A saída:
class="highlight">1
2
update-initramfs: Generating /boot/initrd.img-6.12.73+deb13-amd64
cryptsetup: WARNING: Resume target vda3_crypt uses a key file
Solução com cache de senha
Vamos usar a mesma senha em todas as partições Luks
Instalar a dependência
class="highlight">1
apt install keyutils
Ajustar o Grub
O Debian usa systemd como init e o systemd-cryptsetup-generator que normalmente consome o /etc/crypttab. A opção keyscript não é suportada pelo systemd.
Então temos que desativar essa função do systemd e pedir para o initramfs fazer isso da sua forma nativa.
Edite o grub /etc/default/grub:
class="highlight">1
sudo vi /etc/default/grub
Ajuste o conteúdo para adicionar luks.crypttab=no ao final do parâmetro GRUB_CMDLINE_LINUX_DEFAULT
class="highlight">1
GRUB_CMDLINE_LINUX_DEFAULT="... luks.crypttab=no"
Ajustar o crypttab
Adicionar parâmetros no /etc/crypttab no final da linha adicione seguido nos parâmetros.
class="highlight">1
,initramfs,keyscript=decrypt_keyctl
- initramfs pede para o initramfs descriptografar, só necessário para quem não é root nem resume.
- keyscript=decrypt_keyctl Um script de cache de senha, ele irá armazenar em cache a senha de todas as entradas de crypttab com o mesmo identificador.
Esta postagem está licenciada sob CC BY 4.0 pelo autor.