Guia para configuração do Gentoo com criptografia completa de disco usando LUKS + LVM

5

Estou procurando uma maneira de fazer a seguinte configuração acontecer no Gentoo:

/dev/sda1 -> /boot (ext2)
/dev/sda2 -> Luks encrypted
|
+-lvm-vg1
  |
  +- /dev/mapper/root-fs -> / (ext4)
  +- /dev/mapper/swap    ->   (swap)

É basicamente a mesma configuração que o Ubuntu faria ao fazer uma instalação gráfica.

Eu sei como configurar manualmente o LUKS e até mesmo a configuração do LVM, mas fico preso quando o reúno na inicialização. Como eu digo ao kernel e ao grub para destravar a partição LUKS e montar as partições LVM certas?

    
por user3181422 16.02.2016 / 22:16

1 resposta

10

Então eu descobri:

Eu particionei o disco parcialmente seguindo o manual:

# parted -a optimal /dev/sda
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted)mklabel gpt

(parted)unit mib

(parted)mkpart primary 1 3
(parted)name 1 grub
(parted)set 1 bios_grub on

(parted)mkpart primary 3 131
(parted)name 2 boot
(parted)mkpart primary 131 -1
(parted)name 3 lvm

(parted)set 2 boot on
(parted)q

A única mudança que fiz foi não fazer uma partição de swap e raiz, mas criar uma única partição e chamá-la de lvm (o nome não importa). Em seguida eu configurei LUKS:

# Load the dm-crypt module (probably not nessesary)
modprobe dm-crypt

# Crypt the partition we named lvm (in my case that would be /dev/sda3)
cryptsetup -c aes-cbc-essiv:sha256 -v luksFormat -s 256 /dev/sda3

# Open the luks volume
cryptsetup luksOpen /dev/sda3 sda3-luks

# Setup a LVM physical volume 
lvm pvcreate /dev/mapper/sda3-luks

# Setup a volume group
lvm vgcreate vg0 /dev/mapper/sda3-luks

Depois disso, configure os volumes reais:

# Fist setup the swap volume
lvm lvcreate -L 2048M vg0
# Then check how many 'extends' are free (Free PE) using lvm vgdisplay
# use that number to use up the rest of the space:
lvm lvcreate -l 7809 vg0

Para o resto nós basicamente seguimos o manual exceto onde você normalmente faria coisas para /dev/sda3 (swap) ou /dev/sda4 (root) você usaria agora /dev/mapper/vg0-lvol0 (swap) e /dev/mapper/vg0-lvol1 .

Importante é que, ao gerar o kernel (usei genkernel para isso), primeiro instale o cryptsetup usando emerge -av cryptsetup . e, em seguida, execute genkernel com os seguintes parâmetros:

genkernel --luks --lvm --busybox --menuconfig all

Certifique-se de configurar o kernel para suportar o LVM e os algoritmos de hash e criptografia escolhidos (no meu caso aes e sha256 ). Em seguida, continue seguindo o manual até iniciar o grub -config.

Antes de executar grub2-mkconfig , você deve editar o arquivo /etc/defaults/grub . (Eu devo declarar, para o registro que eu ', não tenho certeza se esta é a melhor solução, mas funciona para mim).

Nesse arquivo eu coloquei o seguinte (encontre e descomente o parâmetro):

GRUB_CMDLINE_LINUX="crypt_root=UUID=<uuid of sda3> dolvm"

Você pode encontrar o UUID correto usando ls -l /dev/disk/by-uuid . Depois disso, grub2-mkconfig deve encontrar problemas no kernel e no initramfs em /boot . Mais uma vez, siga o manual e após a reinicialização, você deverá receber uma solicitação de senha.

Espero que isso ajude alguém.

    
por 17.02.2016 / 09:31