¿Hay alguna manera de habilitar el arranque seguro en Linux?

8

Al igual que Windows tiene un arranque seguro que evita que se ejecute cualquier código externo del cargador del sistema operativo, ¿tiene Linux alguna opción similar para sí mismo? He mirado a mi alrededor, pero cuando busco, los únicos resultados que obtengo es cómo instalar Linux en una máquina Windows habilitada para UEFI. No puedo encontrar cómo puedo llevar esta opción a mi máquina Linux.

Rohan
fuente
palabra clave de búsqueda: "grub de confianza"
Gilles 'SO- deja de ser malvado'
Existe la posibilidad de instalar un shimgestor de arranque firmado por Microsoft, consulte, por ejemplo, wiki.debian.org/SecureBoot
phk
@Gilles es el software confiablegrub confiable? Es intimidante descargar algo que alterará mi proceso de arranque.
Rohan
@Rohan Trusted Grub es tan confiable como cualquier otro software fundamental de Linux. Lo mantienen las mismas personas que TrouSers, que es la pila de software TPM de Linux.
Gilles 'SO- deja de ser malvado'

Respuestas:

3

Para que el arranque seguro funcione, su hardware debe ser compatible con el arranque seguro y su sistema operativo debe ser compatible con el arranque seguro.

Para HW, puede verificar en los menús de configuración de UEFI y debe agregar los certificados / claves proporcionados por el sistema operativo

Para el sistema operativo, puede verificar el soporte mediante los siguientes comandos:

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

Si la salida del comando anterior es "1", su sistema operativo admite y habilita el arranque seguro.

shubham
fuente
No existe tal archivo ...
Rohan
@Rohan, es posible que su núcleo no esté compilado con soporte de arranque seguro. Compruebe el resultado de lo siguiente: [root @ secureboot-guest ~] # cat / boot / config-uname -r | grep SECURE Si hay soporte de arranque seguro en el kernel, obtendrá el resultado como se muestra a continuación: CONFIG_EFI_SECURE_BOOT_SECURELEVEL = y CONFIG_SECURITY_SECURELEVEL = y
shubham el
-res una opción no válida para cat, según mi terminal.
Rohan
Oh, en realidad era un comando de Linux. Este es el comando: cat / boot / config- uname -r put uname -r inside `en ambos extremos
shubham
2

Primero que nada: generar clave propia

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

Intente compilar el kernel de Linux con CONFIG_EFI_STUB e incrustar initramfs en él como se describe aquí: https://prosauce.org/blog/2015/10/31/booting-linux-securely , para firmar los módulos puede usar el siguiente script:

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

Luego cree un archivo con cmdline del kernel para su computadora portátil \ estación de trabajo, y cree una imagen y cópiela en el directorio de arranque efi de esta manera:

# 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 su propia clave en el firmware de MB, puede hacer cmds como este:

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
usuario1024
fuente
-1

El arranque seguro AFAIK es una función UEFI desarrollada por Microsoft y algunas otras compañías que forman el consorcio UEFI.

UEFI se aplica en parte por hardware, es decir, la configuración de su placa base puede / puede no interponerse en el camino. Si usa UEFI completo, entonces es probable que pueda habilitar el arranque seguro desde el menú UEFI mismo.

Sin embargo, si su firmware es UEFI con CSM / BIOS, entonces puede encontrar ciertos obstáculos, como la opción de habilitar el arranque seguro en gris y todo.

sohom154
fuente
2
No es un producto de Microsoft, es un estándar que Microsoft podría haber tenido mucho que decir en su creación: en.wikipedia.org/wiki/…
phk
@phk actualizó la respuesta en consecuencia
sohom154