Secure Boot på Linux? Ja, det virker faktisk (og Windows overlever endda)
Der findes en sejlivet myte i Linux-verdenen: Hvis du vil køre Linux, skal du slå Secure Boot fra i BIOS. Det er lidt ligesom at lade hoveddøren stå på klem for at få katten ind. Det virker, men det føles forkert.
Jeg kører dual boot med Windows og CachyOS, og jeg besluttede mig for at gøre det 'umulige': At få Secure Boot til at lyse grønt på begge systemer samtidig. Løsningen hedder sbctl, og det er faktisk nemmere, end man tror – hvis man altså ikke glemmer detaljerne.
Her er opskriften på, hvordan jeg gjorde (og hvordan du undgår at smadre din Windows-opstart).
Trin-for-trin guiden:
1. Hent værktøjet:
Første skridt er simpelt. Installer sbctl (på CachyOS/Arch):
sudo pacman -S sbctl
2. Lav dine egne nøgler:
Vi skal lege dørvogter, så vi printer vores egne adgangskort:
sudo sbctl create-keys
3. BIOS-dansen (Det kritiske punkt):
Genstart til BIOS. Find Secure Boot indstillingerne.
• Slå "Custom Keys" til.
• Slet "PK Key" (Platform Key).
• Dette sætter systemet i "Setup Mode". Nu er vi klar til at skrive til firmwaren. Gem og genstart til Linux.
4. Enrollment – Her skal du være vågen!
Tilbage i Linux kører vi kommandoen, der binder det hele sammen. Og her kommer den vigtigste detalje i hele guiden:
sudo sbctl enroll-keys -microsoft
4. VIGTIGT: Det lille -microsoft flag er helten her. Det sørger for, at Microsofts nøgler bliver inkluderet i databasen sammen med dine egne.
Hvis du glemmer dette og kun overskriver databasen (DB) med dine egne nøgler, vil UEFI'en kigge på din Windows Boot Manager, ryste på hovedet og nægte at starte den. Så husk -Microsoft, medmindre du elsker at fejlfinde en sort skærm.
5. Signering – Få det hele til at lyse grønt
Når nøglerne er på plads, skal dine filer (kernel, bootloader osv.) underskrives. Ellers vil Secure Boot blokere dem ved næste genstart.
Start med at danne dig et overblik:
sudo sbctl verify
Her vil du sandsynligvis se en liste med filer, der mangler signering (markeret med rødt/advarsler). I stedet for at signere dem én efter én, kan du køre en "batch"-signering, der tager alt det, sbctl har fundet i sin database:
sudo sbctl sign-all
Vigtigt for CachyOS & systemd-boot brugere:
Hvis du bruger systemd-boot (hvilket CachyOS ofte gør som standard), kan det være nødvendigt at signere bootloaderen manuelt for at være helt sikker på, at den bliver accepteret, og at outputtet lander det rigtige sted.
Brug denne kommando for at signere systemd-boot specifikt:
sudo sbctl sign -s -o /usr/lib/systemd/boot/efi/systemd-bootx64.efi.signed /usr/lib/systemd/boot/efi/systemd-bootx64.efi
Boot ind i bios, og aktivere secureboot med custom keys. Færdig!
Den fremtidige drift:
På CachyOS er det afgørende, at signeringen sker automatisk fremadrettet. Når der kommer en ny kernel-opdatering, skal den underskrives før genstart. sbctl installerer typisk en pacman-hook automatisk, der klarer dette, men det skader aldrig at dobbelttjekke sbctl verify første gang, du opdaterer systemet efter denne opsætning. Er alt stadig grønt? Så kører det.
Er min PC nu Fort Knox?
Så nu lyser lampen grønt, og BIOS siger "Secure Boot: Enabled". Er jeg så sikker mod alle verdens hackere?
Mjaaah. Lad os være ærlige. Secure Boot beskytter primært mod bootkits og ondsindet software, der forsøger at loade før styresystemet. Det er fint.
Men i praksis handler det her nok mest om at gøre Microsoft og diverse Anti-Cheat udviklere (Valorant, jeg kigger på jer) glade, så vi får lov at starte deres software. Det forhindrer stadig ikke 'Jytte fra bogholderiet' i at klikke på et phishing-link, og det stopper ikke dig i at køre sudo rm -rf / en sen lørdag aften.
Men det ser godt ud i terminalen, og tilfredsstillelsen ved at have tæmmet BIOS'en skal man ikke underkende.
God fornøjelse med projektet!
Secure Boot på Linux? Ja, det virker faktisk (og Windows overlever endda)
Der findes en sejlivet myte i Linux-verdenen: Hvis du vil køre Linux, skal du slå Secure Boot fra i BIOS. Det er lidt ligesom at lade hoveddøren stå på klem for at få katten ind. Det virker, men det føles forkert.
Jeg kører dual boot med Windows og CachyOS, og jeg besluttede mig for at gøre det 'umulige': At få Secure Boot til at lyse grønt på begge systemer samtidig. Løsningen hedder sbctl, og det er faktisk nemmere, end man tror – hvis man altså ikke glemmer detaljerne.
Her er opskriften på, hvordan jeg gjorde (og hvordan du undgår at smadre din Windows-opstart).
Trin-for-trin guiden:
1. Hent værktøjet:
Første skridt er simpelt. Installer sbctl (på CachyOS/Arch):
sudo pacman -S sbctl
2. Lav dine egne nøgler:
Vi skal lege dørvogter, så vi printer vores egne adgangskort:
sudo sbctl create-keys
3. BIOS-dansen (Det kritiske punkt):
Genstart til BIOS. Find Secure Boot indstillingerne.
• Slå "Custom Keys" til.
• Slet "PK Key" (Platform Key).
• Dette sætter systemet i "Setup Mode". Nu er vi klar til at skrive til firmwaren. Gem og genstart til Linux.
4. Enrollment – Her skal du være vågen!
Tilbage i Linux kører vi kommandoen, der binder det hele sammen. Og her kommer den vigtigste detalje i hele guiden:
sudo sbctl enroll-keys -microsoft
4. ⚠️ VIGTIGT: Det lille -microsoft flag er helten her. Det sørger for, at Microsofts nøgler bliver inkluderet i databasen sammen med dine egne.
Hvis du glemmer dette og kun overskriver databasen (DB) med dine egne nøgler, vil UEFI'en kigge på din Windows Boot Manager, ryste på hovedet og nægte at starte den. Så husk -Microsoft, medmindre du elsker at fejlfinde en sort skærm.
5. Signering – Få det hele til at lyse grønt
Når nøglerne er på plads, skal dine filer (kernel, bootloader osv.) underskrives. Ellers vil Secure Boot blokere dem ved næste genstart.
Start med at danne dig et overblik:
sudo sbctl verify
Her vil du sandsynligvis se en liste med filer, der mangler signering (markeret med rødt/advarsler). I stedet for at signere dem én efter én, kan du køre en "batch"-signering, der tager alt det, sbctl har fundet i sin database:
sudo sbctl sign-all
Vigtigt for CachyOS & systemd-boot brugere:
Hvis du bruger systemd-boot (hvilket CachyOS ofte gør som standard), kan det være nødvendigt at signere bootloaderen manuelt for at være helt sikker på, at den bliver accepteret, og at outputtet lander det rigtige sted.
Brug denne kommando for at signere systemd-boot specifikt:
sudo sbctl sign -s -o /usr/lib/systemd/boot/efi/systemd-bootx64.efi.signed /usr/lib/systemd/boot/efi/systemd-bootx64.efi
Boot ind i bios, og aktivere secureboot med custom keys. Færdig!✔️
Den fremtidige drift:
På CachyOS er det afgørende, at signeringen sker automatisk fremadrettet. Når der kommer en ny kernel-opdatering, skal den underskrives før genstart. sbctl installerer typisk en pacman-hook automatisk, der klarer dette, men det skader aldrig at dobbelttjekke sbctl verify første gang, du opdaterer systemet efter denne opsætning. Er alt stadig grønt? Så kører det.
Er min PC nu Fort Knox?
Så nu lyser lampen grønt, og BIOS siger "Secure Boot: Enabled". Er jeg så sikker mod alle verdens hackere?
Mjaaah. Lad os være ærlige. Secure Boot beskytter primært mod bootkits og ondsindet software, der forsøger at loade før styresystemet. Det er fint.
Men i praksis handler det her nok mest om at gøre Microsoft og diverse Anti-Cheat udviklere (Valorant, jeg kigger på jer) glade, så vi får lov at starte deres software. Det forhindrer stadig ikke 'Jytte fra bogholderiet' i at klikke på et phishing-link, og det stopper ikke dig i at køre sudo rm -rf / en sen lørdag aften.
Men det ser godt ud i terminalen, og tilfredsstillelsen ved at have tæmmet BIOS'en skal man ikke underkende.
God fornøjelse med projektet!