Desbloqueio de LUKS com um dispositivo USB no Boot: mudanças entre as edições

De Área31 Hackerspace
(Criou página com 'thumb|200px|Membro do hackerspace feliz por ter um Linux criptografadinho com LUKS, e desbloqueável com um device USB, dufuturu. Autor: * Coffnix '''"Home Network Defense"''' __TOC__ = Utilize criptografia pra tudo = = Motivo = Pelo visto você é um bom menino (ou menine kekekeke), que criptografou seu disco certinho, e seguiu as boas práticas recomendadas pelo área31 hackerspace lendo os artigos Hack...')
 
Sem resumo de edição
Linha 27: Linha 27:
}}
}}


Adicione a nova chave ao luks. Ex:
Adicione a nova chave ao Luks, alterando de '''/dev/nvme0n1p6''' para seu dispositivo que contém o volume Luks, seja com ou sem LVM. Ex:
{{console|body=
{{console|body=
###i## cryptsetup luksAddKey /dev/nvme0n1p6 /extkey/keyfile
###i## cryptsetup luksAddKey /dev/nvme0n1p6 /extkey/keyfile
Linha 33: Linha 33:


== Configure o dracut ==
== Configure o dracut ==
Adicione o arquivo '''crypttab''' ao initrd:
{{file|name=/etc/dracut.conf.d/crypttab.conf|body=
{{file|name=/etc/dracut.conf.d/crypttab.conf|body=
install_items+=" /etc/crypttab "
install_items+=" /etc/crypttab "
}}
}}


 
Adicione ao '''initd''' os modulos necessários para uso do USB device e seu sistema de arquivos:
{{file|name=/etc/dracut.conf.d/50-extkey.conf|body=
{{file|name=/etc/dracut.conf.d/50-extkey.conf|body=
add_drivers+=" hid-logitech-dj xhci_hcd usbhid usb-storage ext4 vfat nls_cp437 nls_iso8859-1 "
add_drivers+=" hid-logitech-dj xhci_hcd usbhid usb-storage ext4 vfat nls_cp437 nls_iso8859-1 "
Linha 43: Linha 44:
}}
}}


Obtenha o UUID da partição VFAT para configurar o '''fstab''' e o '''crypttab''':
Obtenha o UUID da partição '''VFAT''' para configurar o '''fstab''' e o '''crypttab''':
{{console|body=
{{console|body=
###i## blkid {{!}} grep sdc1
###i## blkid {{!}} grep sdc1

Edição das 05h14min de 12 de novembro de 2023

Membro do hackerspace feliz por ter um Linux criptografadinho com LUKS, e desbloqueável com um device USB, dufuturu.
Autor: 
* Coffnix

"Home Network Defense"

Utilize criptografia pra tudo

Motivo

Pelo visto você é um bom menino (ou menine kekekeke), que criptografou seu disco certinho, e seguiu as boas práticas recomendadas pelo área31 hackerspace lendo os artigos HackForge e aprendeu até a criar seu próprio storage criptografado em roteador residencial. Logo, agora vc não quer ficar digitando senha do Luks durante o processo de BOOT, correcto? okay, vamos lá...

Requisitos

Aqui utilizamos OpenSUSE com Dracut + GRUB, mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize um initrd diferente.

Procedimento

Crie a chave

Crie uma partição FAT32 em um pendrive de pelo menos 100mb e formate:

root # mkfs.vfat -F 32 /dev/sdx1

Monte em /extkey e crie a chave:

root # mkdir -p /extkey ; mount /dev/sdx1 /extkey
root # dd if=/dev/urandom of=/extkey/keyfile bs=4096 count=1

Adicione a nova chave ao Luks, alterando de /dev/nvme0n1p6 para seu dispositivo que contém o volume Luks, seja com ou sem LVM. Ex:

root # cryptsetup luksAddKey /dev/nvme0n1p6 /extkey/keyfile

Configure o dracut

Adicione o arquivo crypttab ao initrd:

   /etc/dracut.conf.d/crypttab.conf
install_items+=" /etc/crypttab "

Adicione ao initd os modulos necessários para uso do USB device e seu sistema de arquivos:

   /etc/dracut.conf.d/50-extkey.conf
add_drivers+=" hid-logitech-dj xhci_hcd usbhid usb-storage ext4 vfat nls_cp437 nls_iso8859-1 "
add_fstab+=" /etc/fstab.rootkey "

Obtenha o UUID da partição VFAT para configurar o fstab e o crypttab:

root # blkid | grep sdc1
/dev/sdc1: UUID="43A0-9872" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="09de3d52-01"

Agora configure o fstab da raiz:

   /etc/fstab
UUID=43A0-9872 /extkey vfat noauto,nofail 0 0

E configure o fstab que irá ser utilizado pelo dracut:

   /etc/fstab.rootkey
UUID=43A0-9872 /extkey vfat noauto,nofail 0 0

Configure o crypttab:

   /etc/crypttab
#cr_nvme-eui.000000000000000100a075233f141b69-part6  UUID=a067b3b0-b2c2-403c-8f7c-6221c2656b09  none  x-initrd.attach
cr_nvme-eui.000000000000000100a075233f141b69-part6 UUID=a067b3b0-b2c2-403c-8f7c-6221c2656b09 /keyfile:UUID=43A0-9872 keyfile-timeout=5

Crie o novo initrd

root # dracut --force --regenerate-all --verbose

Caso esteja em ambiente chroot:

root # update-bootloader
root # dracut --hostonly --kver 6.5.9-1-default -f

Atualize o grub

Altere o arquivo de configuração do grub:

   /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/system/swap security=apparmor mitigations=auto"
GRUB_CMDLINE_LINUX="rhgb quiet"

Atualize o grub.conf:

root # update-bootloader

Reboot e seja feliz!

Cookies nos ajudam a entregar nossos serviços. Ao usar nossos serviços, você concorda com o uso de cookies.