Como tornar a suspensão para a RAM segura no Ubuntu com criptografia total de disco (LVM no topo do LUKS)?

20

Estou no Ubuntu 13.04 usando criptografia completa de disco (LVM em cima do LUKS).

Eu gostaria de incorporar luksSuspend no procedimento de suspensão (e depois usar luksResume ) para que eu possa suspender a RAM sem deixar o material da chave na memória e a raiz desbloqueada.

Eu tenho tentado pelas últimas 7 horas portar um script para o Arch Linux , até agora sem sucesso: honestamente não tenho ideia do que estou fazendo ...

Alguém pode me ajudar a portar isso (ou criar algo assim do zero)? Ou, pelo menos, alguém pode me indicar a documentação sobre como inserir coisas nos procedimentos de suspensão e como manter os binários e scripts necessários (como o cryptsetup) disponíveis mesmo depois que todo o pedido de root foi bloqueado (por luksSuspend ) ?

Sobre como manter os binários e scripts necessários disponíveis para retomar, este outra postagem do blog (também para o Arch) copiou-os para /boot ; Eu gostaria, no entanto, de usar algo mais nas linhas que Vianney usou no roteiro que eu mencionei antes, porque essa abordagem parece ser um pouco mais elegante nesse aspecto.

    
por Jonas Malaco 21.09.2013 / 09:43

3 respostas

3

Eu me deparei com o mesmo problema, então eu tomei outra chance de portar o mesmo script, que você pode ver aqui . Ele não toca em nenhum armazenamento não volátil depois de luksSuspend , por isso funciona mesmo com criptografia real de disco completo com um / boot criptografado. No entanto, você precisa ser cuidadoso - pode não funcionar como esperado ocasionalmente!

O script portado faz o seguinte:

  • Crie uma montagem de ramfs em algum lugar
  • Extraia o conteúdo do initramfs lá (incluindo o script de suspensão initramfs)
  • Vincular os diretórios relevantes (por exemplo, /sys , /proc , /dev , /run ) ao ramfs mount
  • Interrompa todos os serviços que possam interferir (systemd-udevd, systemd-journald)
  • Remontar o sistema de arquivos raiz (ext4 ou btrfs) com nobarrier, para que o Linux não seja interrompido ao tentar entrar no S3 e, em seguida, sincronizar
  • Chroot na montagem initramfs, que sincroniza novamente, executa luksSuspend e coloca o computador em repouso
  • Após o acionamento, luksResume , remontar sistemas de arquivos, reiniciar serviços, desmontar montagens de ligação no initramfs mount
  • Finalmente, desmonte a montagem initramfs para liberar a RAM usada para os arquivos initramfs

Eu ainda não fiz testes extensivos no meu script, mas parece funcionar de forma confiável para mim. Se você usar outro sistema de arquivos (ou seja, não ext4 ou btrfs), poderá ter problemas com a barreira, portanto, também precisará modificar o script.

De qualquer forma, é bom testar e verificar se os scripts funcionam primeiro. Se você experimentar travamentos ao tentar colocar o Linux no S3 (ou seja, em echo mem > /sys/power/state ), então você poderá recuperar:

  • Antes de suspender, abra um terminal tty ou outro (que será acessível, então idealmente um tty)
  • Carregue o cryptsetup e as bibliotecas relevantes na RAM: sudo cryptsetup luksResume anything_here
  • Suspender usando o script
  • Se ele travar após o chroot (por exemplo, após starting version xxx ser exibido no novo vt), alterne para o tty que você abriu anteriormente e execute sudo cryptsetup luksResume your_luks_device_name_here
  • Se isso travar também, abra outro vt e faça chroot em /run/initramfs : sudo chroot /run/initramfs /bin/ash
  • Tente executar luksResume : cryptsetup luksResume your_luks_device_name_here && exit
  • Seu computador deve suspender. Você pode acordá-lo, matar o (s) script (s) se eles ainda estiverem em execução, desmontar as montagens de bind e /run/initramfs e remontar seu sistema de arquivos raiz com barreira, se aplicável.
por 04.04.2017 / 14:13
1

Eu não tenho experiência com essa configuração, mas muitas pessoas afirmam sucesso nisso. Aqui estão alguns deles.

dm-crypt com LUKS - Criptografando a partição Swap
Como: disco rígido completamente criptografado, incluindo a partição suspensa para o disco com o Ubuntu 6.10 Edgy Eft
ubuntu -full-disk-encryption-lvm-luks

No entanto, nenhum deles usa luksSuspend (que pode ser o motivo pelo qual eles funcionam).

    
por 15.11.2013 / 21:39
1

Eu passei algum tempo obtendo isso totalmente funcional no Ubuntu 15.10. Se você está tentando fazer isso funcionar em ext2, ext3 ou ext4, você precisará atualizar o / etc / fstab para montar o volume com a opção 'nobarrier'. Caso contrário, sugiro usar o BTRFS.

Uma vez que seu sistema de arquivos esteja preparado, use o script aqui: link

    
por 11.03.2016 / 08:33