Ir al contenido
Esta página está desactualizada. Consulte la documentación más reciente en /configuration/secure_boot_setup/

Configuración del Arranque Seguro

sbctl es un gestor de claves de arranque seguro fácil de usar, capaz de configurar el arranque seguro, ofrecer capacidades de gestión de claves y hacer un seguimiento de los archivos que necesitan ser firmados en la cadena de arranque.

Ventana de terminal
sudo pacman -S sbctl

Si estás usando GRUB, ejecuta el siguiente comando para habilitar el soporte de arranque seguro en GRUB usando las claves CA.

Ventana de terminal
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=cachyos --modules="tpm" --disable-shim-lock

Primero, necesitamos ir a la configuración del firmware y poner el modo de arranque seguro en “Setup Mode” (Modo de Configuración). Puedes reiniciar desde un sistema ya en funcionamiento a la configuración del firmware con el siguiente comando.

Ventana de terminal
systemctl reboot --firmware-setup

Así es como se ve la BIOS en un Lenovo Ideapad 5 Pro. Restablece al modo de configuración o restaura las claves de fábrica y reinicia de vuelta al sistema.

Sin embargo, algunas placas base MSI no tienen un modo de configuración. Para lograr el mismo efecto, sigue los dos pasos de la imagen a continuación:


Ventana de terminal
sudo sbctl status # Si el modo de configuración está habilitado, podemos proceder al siguiente paso
Installed: sbctl is not installed
Setup Mode: Enabled
Secure Boot Disabled
sudo sbctl create-keys # Crea tus claves de arranque seguro personalizadas
Created Owner UUID a9fbbdb7-a05f-48d5-b63a-08c5df45ee70
Creating secure boot keys...✔
Secure boot keys created!
sudo sbctl enroll-keys --microsoft # Inscribe tus claves con las claves de Microsoft
Enrolling keys to EFI variables...✔
Enrolled keys to the EFI variables!
sudo sbctl status
# sbctl ahora debería estar instalado, podemos proceder a firmar las imágenes del kernel y el gestor de arranque
Installed: sbctl is installed
Owner GUID: a9fbbdb7-a05f-48d5-b63a-08c5df45ee70
Setup Mode: Disabled
Secure Boot Disabled
Vendor Keys: microsoft

Firmando la Imagen del Kernel y el Gestor de Arranque

Sección titulada «Firmando la Imagen del Kernel y el Gestor de Arranque»

CachyOS proporciona sbctl-batch-sign, un script que toma la lista de archivos que necesitan ser firmados de sudo sbctl verify y los firma todos. Los usuarios de Limine deben saltar a Limine.

Ventana de terminal
sudo sbctl verify
Verifying file database and EFI images in /boot...
/boot/1c4b5246eef05ac3bc87339323cd5101/6.10.0-cn4.0.fc40.x86_64/linux is not signed
/boot/EFI/BOOT/BOOTX64.EFI is not signed
/boot/EFI/systemd/systemd-bootx64.efi is not signed
/boot/1c4b5246eef05ac3bc87339323cd5101/0-rescue/linux is not signed
/boot/1c4b5246eef05ac3bc87339323cd5101/6.10.0-cn3.0.fc40.x86_64/linux is not signed
sudo sbctl-batch-sign
sudo sbctl verify
Verifying file database and EFI images in /boot...
/boot/1c4b5246eef05ac3bc87339323cd5101/6.10.0-cn4.0.fc40.x86_64/linux is signed
/boot/EFI/BOOT/BOOTX64.EFI is signed
/boot/EFI/systemd/systemd-bootx64.efi is signed
/boot/1c4b5246eef05ac3bc87339323cd5101/0-rescue/linux is signed
/boot/1c4b5246eef05ac3bc87339323cd5101/6.10.0-cn3.0.fc40.x86_64/linux is signed

Ahora que todos los archivos están firmados. Reinicia tu sistema y ve a la configuración de tu UEFI para habilitar el arranque seguro.

Ten en cuenta que este es un proceso de una sola vez, ya que firmar archivos con la bandera -s guardará esos archivos en la base de datos de sbctl.

CachyOS usa systemd-boot-update.service proporcionado por systemd para actualizar el gestor de arranque al reiniciar. Esto significa que el hook de pacman de sbctl no firmará los binarios EFI actualizados. Como solución, podemos firmar el gestor de arranque directamente

Ventana de terminal
sudo sbctl sign -s -o /usr/lib/systemd/boot/efi/systemd-bootx64.efi.signed /usr/lib/systemd/boot/efi/systemd-bootx64.efi

Limine es un gestor de arranque especial que permite comprobar el hash de las imágenes del kernel y otros archivos que Limine usa durante el arranque. Si esto está habilitado, cualquier tipo de configuración manual hecha por el usuario, por ejemplo, firmar la imagen a través de sbctl-batch-sign, modificará el hash de los archivos correspondientes y hará que la verificación de suma de comprobación de Limine falle.

Sin embargo, firmar estos archivos no es necesario en Limine porque tiene un proceso de arranque especial que evita el encadenamiento de EFI (chainloading) y las comprobaciones de firma. Los únicos binarios EFI que necesitan ser firmados son Limine mismo.

Para habilitar el registro automático de la suma de verificación de configuración, establece lo siguiente en /etc/default/limine:

Ventana de terminal
ENABLE_ENROLL_LIMINE_CONFIG=yes

Luego ejecuta:

Ventana de terminal
# Usa limine-enroll-config para registrar la suma de verificación de configuración y firmar el binario EFI de Limine
# Esto usa sbctl internamente
sudo limine-enroll-config
sudo limine-update

Verificar que el Arranque Seguro está Habilitado

Sección titulada «Verificar que el Arranque Seguro está Habilitado»

Para comprobar que el arranque seguro está efectivamente habilitado. Puedes ejecutar uno de los siguientes comandos

Ventana de terminal
sudo sbctl status
Installed: sbctl is installed
Owner GUID: a9fbbdb7-a05f-48d5-b63a-08c5df45ee70
Setup Mode: Disabled
Secure Boot: Enabled
Vendor Keys: microsoft
bootctl
System:
Firmware: UEFI 2.80 (INSYDE Corp. 28724.16435)
Firmware Arch: x64
Secure Boot: enabled (user)
TPM2 Support: yes
Measured UKI: no
Boot into FW: supported
  • La Wiki de Arch sentó las bases para esta guía. La mayor parte del material aquí fue tomado de allí.
  • sbctl - Esta guía fácil para habilitar el soporte de arranque seguro no habría sido posible si no fuera por el increíble trabajo realizado para crear esta pieza de software.
  • Improving the Secure Boot Experience por Morten linderud - Artículo de blog de Morten “Foxboron” Linderud sobre cómo la experiencia del arranque seguro era complicada antes de sbctl.