Nastavení Secure Boot
sbctl
Sekce “sbctl”sbctl je uživatelsky přívětivý správce klíčů pro Secure Boot, schopný nastavit Secure Boot,
nabízí možnosti správy klíčů a sleduje soubory, které je třeba podepsat ve spouštěcím řetězci.
Instalace sbctl
Sekce “Instalace sbctl”❯ sudo pacman -S sbctlPříprava před nastavením
Sekce “Příprava před nastavením”Zavaděč GRUB
Sekce “Zavaděč GRUB”Pokud používáte GRUB, spusťte následující příkaz pro povolení podpory Secure Boot v GRUBu pomocí CA klíčů.
❯ sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=cachyos --modules="tpm" --disable-shim-lockVstup do režimu Setup Mode v UEFI
Sekce “Vstup do režimu Setup Mode v UEFI”Nejprve musíme přejít do nastavení firmwaru a nastavit režim Secure Boot na “Setup Mode”. Z již běžícího systému můžete do nastavení firmwaru restartovat následujícím příkazem.
❯ systemctl reboot --firmware-setup
Takto vypadá BIOS na Lenovo Ideapad 5 Pro. Resetujte do režimu nastavení nebo obnovte tovární klíče a restartujte zpět do systému.
Nastavení sbctl
Sekce “Nastavení sbctl”❯ sudo sbctl status # Pokud je povolen režim nastavení, můžeme přejít k dalšímu krokuInstalled: ✘ sbctl is not installedSetup Mode: ✘ EnabledSecure Boot ✘ Disabled
❯ sudo sbctl create-keys # Vytvoření vlastních klíčů pro Secure BootCreated Owner UUID a9fbbdb7-a05f-48d5-b63a-08c5df45ee70Creating secure boot keys...✔Secure boot keys created!
❯ sudo sbctl enroll-keys -m # Zapsání vašich klíčů spolu s klíči od MicrosoftuEnrolling keys to EFI variables...✔Enrolled keys to the EFI variables!
❯ sudo sbctl status# sbctl by nyní měl být nainstalován a můžeme přejít k podepisování obrazů kernelu a zavaděčeInstalled: ✔ sbctl is installedOwner GUID: a9fbbdb7-a05f-48d5-b63a-08c5df45ee70Setup Mode: ✔ DisabledSecure Boot ✘ DisabledVendor Keys: microsoftPodepisování obrazu kernelu a zavaděče
Sekce “Podepisování obrazu kernelu a zavaděče”CachyOS poskytuje skript sbctl-batch-sign,
který vezme seznam souborů, které je třeba podepsat, z výstupu sudo sbctl verify a všechny je podepíše.
❯ sudo sbctl verifyVerifying 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 verifyVerifying 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 signedNyní, když jsou všechny soubory podepsány, můžeme restartovat zpět do nastavení UEFI a povolit Secure Boot.
Všimněte si, že se jedná o jednorázový proces, protože podepisování souborů s příznakem -s uloží tyto soubory do databáze sbctl.
sbctl se dodává s pacman hookem, což znamená, že automaticky
podepíše všechny nové soubory při aktualizaci kernelu nebo zavaděče.
systemd-boot
Sekce “systemd-boot”CachyOS používá systemd-boot-update.service poskytovaný systemd k aktualizaci zavaděče při restartu. To znamená, že sbctl
pacman hook nepodepíše aktualizované EFI binární soubory. Jako náhradní řešení můžeme zavaděč podepsat přímo.
❯ sudo sbctl sign -s -o /usr/lib/systemd/boot/efi/systemd-bootx64.efi.signed /usr/lib/systemd/boot/efi/systemd-bootx64.efiLimine
Sekce “Limine”Limine je speciální zavaděč, který umožňuje kontrolu hashe obrazů
kernelu a dalších souborů, které Limine používá během spouštění. Pokud je toto povoleno, jakákoli
ruční konfigurace provedená uživatelem, např. podepsání obrazu pomocí
sbctl-batch-sign, změní hash odpovídajících souborů a
ověření kontrolního součtu Limine selže.
Podepisování těchto souborů však na Limine není nutné, protože má speciální proces spouštění, který obchází řetězení EFI a kontroly podpisů. Jediné EFI binární soubory, které je třeba podepsat, jsou samotný Limine a záložní EFI binární soubor, který se nachází na všech systémech UEFI.
Chcete-li povolit automatické zapsání kontrolního součtu konfigurace, nastavte následující v /etc/default/limine:
ENABLE_ENROLL_LIMINE_CONFIG=yesPoté spusťte:
# Podepsání speciálního EFI binárního souboru❯ sudo sbctl sign -s /boot/EFI/BOOT/BOOTX64.EFI
# Použití limine-enroll-config k zapsání kontrolního součtu konfigurace a podepsání EFI binárního souboru Limine# Toto používá sbctl pod kapotou❯ sudo limine-enroll-config
# Aktualizace nainstalovaných EFI binárních souborů Limine❯ sudo limine-updateOvěření, že je Secure Boot povolen
Sekce “Ověření, že je Secure Boot povolen”Chcete-li zkontrolovat, že je Secure Boot skutečně povolen, můžete spustit jeden z následujících příkazů.
❯ sudo sbctl statusInstalled: ✓ sbctl is installedOwner GUID: a9fbbdb7-a05f-48d5-b63a-08c5df45ee70Setup Mode: ✓ DisabledSecure Boot: ✓ EnabledVendor Keys: microsoft
❯ bootctlSystem: Firmware: UEFI 2.80 (INSYDE Corp. 28724.16435) Firmware Arch: x64 Secure Boot: enabled (user) TPM2 Support: yes Measured UKI: no Boot into FW: supportedOdkazy a poděkování
Sekce “Odkazy a poděkování”- Arch Wiki položila základy pro tento průvodce. Většina věcí zde byla převzata odtud.
- sbctl - Tento snadný průvodce pro povolení podpory Secure Boot by nebyl možný, nebýt úžasné práce, která byla vynaložena na vytvoření tohoto softwaru.
- Improving the Secure Boot Experience by Morten linderud - Blogový příspěvek od Mortena
“Foxborona” Linderuda o tom, jak byla zkušenost se Secure Boot komplikovaná před
sbctl.