Como preseed criptografar apenas a partição raiz?

13

Eu tenho 3 partições: EFI ( /boot/efi), boot ( /boot) e root ( /). Eu quero criptografar apenas / . Eu posso fazer isso manualmente através do instalador, mas quero fazer o pré-processamento.

Como eu o defino? Minha receita (não criptografada) se parece com a abaixo. É uma espécie de confusão de sugestões para as Partições do Sistema EFI que encontrei (não encontrei um guia claro).

boot-root ::
  100 100 100 fat32
    $primary
    $iflabel{ gpt }
    $reusemethod( }
    use_filesystem{ } filesystem{ vfat }
    method{ efi } format{ }
    mountpoint{ /boot/efi }
  .
  300 300 300 ext4
    use_filesystem{ } filesystem{ ext4 }
    method{ format } format{ }
    mountpoint{ /boot }
  .
  100% 3000 100% ext4
    use_filesystem{ } filesystem{ ext4 }
    method{ format } format{ }
    mountpoint{ / }
  .

Como faço para sda3ser uma partição física para criptografia LUKS e depois ter um sistema de arquivos em cima disso?

ATUALIZAR:

Descobri que posso definir a partição como criptografada como abaixo, mas ainda existem três problemas:

  1. Ainda preciso criar e ativar os volumes criptografados na partição escolhida
  2. Ainda preciso definir o sistema de arquivos ext4 correto no volume criptografado depois de criado e ativado
  3. A receita não seleciona o tipo de criptografia dm-cryptnecessário para criar e ativar os volumes criptografados.

Ainda lutando poderosamente

boot-root ::
  100 100 100 fat32
    $primary
    $iflabel{ gpt }
    $reusemethod( }
    use_filesystem{ } filesystem{ vfat }
    method{ efi } format{ }
    mountpoint{ /boot/efi }
  .
  300 300 300 ext4
    use_filesystem{ } filesystem{ ext4 }
    method{ format } format{ }
    mountpoint{ /boot }
  .
  100% 3000 100% ext4
    method{ crypto } format{ }
  .
deitch
fonte
FYI, os rótulos como sda, sdb, sdc, etc não manter sempre as mesmas letras (a, b, c) entre botas (mina de mudar a cada boot)
Xen2050
2
@ Xen2050 certo, você é, UUIDou PARTUUIDou LABELou PARTLABELé muito melhor. No meu caso, estou inicializando uma imagem para formatar, para que haja apenas uma unidade. De qualquer maneira, como faço para configurá-la para criptografar partição única? Eu posso fazer isso de forma interativa, mas preciso que seja pré-estabelecido.
deitch
Hmm, pode estar chegando a algum lugar, mas há mais perguntas. Vai postar outro q.
Deitch
@deitch - é uma configuração de partição de servidor ou cliente, ou apenas um exemplo de partição de área de trabalho? Essas 3 partições são muito poucas para sua intenção - faltam / swap e / home -, portanto, você precisa configurar de alguma forma uma parte estendida do disco rígido com partições lógicas - normalmente as partições permitem apenas 4 no total, mas estendidas com partições lógicas permitem 4 vezes 63 partições no máximo (e a GPT permite muito mais) ?! - unix.stackexchange.com/questions/33555/… - referente às partições master e slaves.
Dschinn1001
@ dschinn1001 na verdade é um modelo para um servidor seguro. O sistema operacional principal está em uma unidade removível. Os dados e a troca do usuário estão em uma unidade interna, que um serviço systemd encontra e monta adequadamente. Mas ignorando isso ... como posso configurar a raiz para ser criptografada sem o LVM?
Deitch

Respostas:

1

Primeiro, abra um terminal raiz:

sudo -i

Em seguida, preencha a partição, que deve ser criptografada, com dados aleatórios usando um comando como este:

openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero > /dev/sdxy

Você precisa substituir sdxypela partição que será criptografada. Então digite

cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 2000 /dev/sdxy

para criptografar a partição sdxy. Abra o volume e nomeie-o root:

cryptsetup luksOpen /dev/sdxy root

Use este comando para criar um sistema de arquivos ext4 dentro dele:

mkfs.ext4 /dev/mapper/root

Em seguida, você pode iniciar o instalador. Escolha "Algo mais" ao ser perguntado o que você gostaria de fazer. Em seguida, escolha os pontos de montagem para todas as suas partições não criptografadas. Para sua rootpartição, selecione /dev/mapper/root, clique em "Alterar". Em seguida, selecione ext4o tipo de sistema de arquivos e defina o ponto de montagem como /. Depois clique em "Instalar agora" e instale o Ubuntu normalmente.

Quando terminar de instalar, clique em "Continuar teste". Abra um terminal e digite:

sudo -i
cd /mnt
mkdir root
mount /dev/mapper/root root
mount /dev/sdyz root/boot

sdyzdeve ser substituído por sua bootpartição. Em seguida, digite:

chroot root
mount -t proc proc /proc
mount -t sysfs sys /sys
nano /etc/crypttab

Abra um segundo terminal e digite sudo blkid. Encontre o UUID para root(aquele que diz crypto_luksno final) e cole-o /etc/crypttab. Em seguida, o arquivo /etc/crypttabdeve se parecer com isso:

root UUID=d68911dd-172a-4608-86d4-084eb72f409c none luks

Feche o arquivo Ctrl+ x, ye Enter. Digite nano /etc/fstabo terminal e verifique se tudo parece correto (por exemplo, os UUIDs).

Por fim, saia do ambiente chroot e digite:

cryptsetup luksHeaderBackup /dev/sdxy --header-backup-file /root/root.img

Isso coloca uma imagem do cabeçalho da partição criptografada na pasta /roote nomeia-a root.img. Em seguida, mova a imagem para uma unidade externa (no caso de esquecer a senha). Agora você pode reiniciar o seu Ubuntu recém-instalado.

Fonte: http://thesimplecomputer.info/full-disk-encryption-with-ubuntu

Earl Nick
fonte
Bem-vindo ao Ask Ubuntu! Embora isso possa teoricamente responder à pergunta, seria preferível incluir aqui as partes essenciais da resposta e fornecer o link para referência.
19616 Karl Richter
@ Antes de sugerir a criação da partição antecipadamente em um ambiente chroot (ou em contêiner), e depois colá-la no instalador?
Deitch
Como eu trabalharia isso com o preseeder?
Deitch
Não sei, mas isso é pelo menos uma solução para criar uma rootpartição criptografada por LUKS sem LVM.
Earl Nick