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 ao redor, mas quando eu procuro, os únicos resultados que obtenho 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.

    
por Rohan 16.03.2016 / 19:09

3 respostas

3

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

Para HW, você pode verificar os menus de configuração do UEFI e adicionar os certificados / chaves fornecidos pelo sistema operacional

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

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

Se a saída do comando acima for "1", a inicialização segura será suportada e ativada pelo seu SO.

    
por 23.03.2016 / 09:28
1

Em primeiro lugar: gerar chave própria

openssl req -new -nodes -utf8 -sha256 -days 36500 -batch -x509 \
       -subj "/CN=Kernel Key" -outform DER -out kernel.der \
       -keyout kernel.key

Tente compilar o kernel do linux com CONFIG_EFI_STUB e incorpore o initramfs nele, conforme descrito aqui: link , para assinar módulos, você pode usar o próximo script:

/usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 kernel.key kernel.der module.ko

Em seguida, crie o arquivo com o cmdline do kernel para sua estação de trabalho laptop \ e crie uma imagem e copie-a para o diretório de inicialização efi da seguinte forma:

# 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 do MB, você pode criar 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 kernel.esl kernel.auth
    
por 04.12.2016 / 11:34
-1

O boot seguro AFAIK é um recurso UEFI desenvolvido pela Microsoft e por algumas outras empresas que formam o consórcio UEFI.

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

No entanto, se seu firmware for UEFI com CSM / BIOS, você poderá encontrar certos obstáculos, como a opção de ativar a inicialização segura acinzentado e tudo mais.

    
por 17.03.2016 / 13:10