Existe uma maneira de ativar a inicialização segura no Linux?

8

Assim como o Windows tem inicialização segura que impede que qualquer código externo do OS Loader seja executado na inicialização, o Linux tem alguma opção semelhante? Eu olhei em volta, mas quando procuro, os únicos resultados que obtive são como instalar o Linux em uma máquina Windows habilitada para UEFI. Não consigo encontrar como posso trazer essa opção para minha máquina Linux.

Rohan
fonte
search keyword: "grub confiável"
Gilles 'SO- stop be evil'
Existe a possibilidade de instalar um shimgerenciador de inicialização que tenha sido assinado pela Microsoft, consulte, por exemplo, wiki.debian.org/SecureBoot
phk
@Gilles é o software trustgrub confiável? É intimidador baixar algo que alterará meu processo de inicialização.
Rohan
O @Rohan Trusted Grub é tão confiável quanto qualquer outro software Linux fundamental. É mantido pelas mesmas pessoas que o TrouSers, que é a pilha de software TPM do Linux.
Gilles 'SO- stop being evil'

Respostas:

3

Para que a inicialização segura funcione, o seu hardware deve oferecer suporte à inicialização segura e o seu sistema operacional deve oferecer suporte à inicialização segura.

Para o HW, você pode fazer o check-in nos menus de configuração UEFI e precisa adicionar os certificados / chaves fornecidos pelo sistema operacional

Para o sistema operacional, você pode verificar o suporte seguindo os seguintes comandos:

[root@secureboot-guest ~]# cat /sys/kernel/security/securelevel 

Se a saída do comando acima for "1", a inicialização segura é suportada e ativada pelo seu sistema operacional.

Shubham
fonte
Não existe esse arquivo ...
Rohan
@ Rohan, é possível que seu kernel não seja compilado com suporte seguro a inicialização. Verifique a saída do seguinte: [root @ secureboot-guest ~] # cat / boot / config-uname -r | grep seguro Se suporte de inicialização segura é lá no kernel então você vai ter uma saída como a seguir: CONFIG_EFI_SECURE_BOOT_SECURELEVEL = y CONFIG_SECURITY_SECURELEVEL = y
shubham
-ré uma opção inválida para gato, de acordo com o meu terminal.
Rohan
Na verdade, era um comando Linux. Este é o comando: cat / boot / config- uname -r colocar dentro uname -r 'em ambas as extremidades
shubham
2

Em primeiro lugar: gere uma chave própria

openssl req -new -nodes -utf8 -sha256 -days 36500 -batch -x509 \
       -subj "/ CN = Chave do Kernel" - executa o DER - sai kernel.der \
       -keyout kernel.key

Tente compilar o kernel do linux com o CONFIG_EFI_STUB e incorpore o initramfs como descrito aqui: https://prosauce.org/blog/2015/10/31/booting-linux-security , para assinar os módulos que você pode usar no próximo script:

/ usr / src / linux-headers - $ (uname -r) / scripts / arquivo de sinal sha256 kernel.key kernel.der module.ko

Em seguida, crie um arquivo com o cmdline do kernel para o seu laptop \ estação de trabalho e crie uma imagem e copie-a para o diretório de inicialização efi, como este:

# objcopy \
  --add-section .osrel = / etc / os-release --change-section-vma .osrel = 0x20000 \
  --add-section .cmdline = / tmp / cmdline --change-section-vma .cmdline = 0x30000 \
  --add-section .linux = / boot / vmlinuz --change-section-vma .linux = 0x2000000 \
  --add-section .initrd = / boot / initrd.img --change-section-vma .initrd = 0x3000000 \
/usr/lib/systemd/boot/efi/linuxx64.efi.stub linux.efi

# mkdir -p / boot / efi / EFI / BOOT

# sbsign --key /root/keys/ISK.key --cert /root/keys/ISK.pem --output /boot/efi/EFI/BOOT/BOOTX64.EFI linux.efi / boot / efi / EFI / BOOT /BOOTX64.EFI

Para instalar a própria chave no firmware MB, você pode fazer cmds assim:

openssl x509 -inform der -in kernel.der -outform pem -out kernel.pem
cert-to-efi-sig-list -g "$ (uuidgen)" kernel.pem kernel.esl
sign-efi-sig-list -k KEK.key -c KEK.pem kernel.esl kernel.auth
user1024
fonte
-1

A inicialização segura do AFAIK é um recurso UEFI desenvolvido pela Microsoft e por outras empresas que formam o consórcio UEFI.

O UEFI é parcialmente aplicado por hardware, ou seja, a configuração da sua placa-mãe pode ou não atrapalhar. Se você usar UEFI completo, é provável que você possa ativar a inicialização segura a partir do próprio menu UEFI.

No entanto, se o seu firmware for UEFI com CSM / BIOS, você poderá encontrar certos bloqueios de estradas, como a opção para permitir que a inicialização segura seja acinzentada e tudo.

sohom154
fonte
2
Não é um produto da Microsoft, é um padrão que a Microsoft pode ter tido muito a dizer em sua criação: en.wikipedia.org/wiki/…
phk 17/16
@phk atualizei a resposta nesse sentido
sohom154