Sofern es jemanden interessiert, hier ein kleines Howto, um Secure Boot einzurichten.
Ich gehe davon aus, dass euer System bereits mit UEFI lauffähig ist.
Vorbereitungen
Ihr müsst die efitools und efibootmgr installieren.
Im Regelfall sollte eure Distribution diese mitbringen oder als Paket anbieten.
Sicherung
Im ersten Schritt sollten die aktuellen Keys gesichert werden.
mkdir -p /etc/efi
chmod 700 /etc/efi
efi-readvar -v PK -o /etc/efi/old_PK.esl
efi-readvar -v KEK -o /etc/efi/old_KEK.esl
efi-readvar -v db -o /etc/efi/old_db.esl
efi-readvar -v dbx -o /etc/efi/old_dbx.esl
chmod 400 /etc/efi/*.key
Eigene Schlüssel erzeugen
Im nächsten Schritt erzeugen wir unsere eigenen Schlüssel. Der Text innerhalb subj für CN kann frei angepasst werden.
openssl req -new -x509 -newkey rsa:4096 -subj "/CN=My New Platform Key/" -keyout /etc/efi/PK.key -out /etc/efi/PK.crt -days 3650 -nodes -sha512
openssl req -new -x509 -newkey rsa:4096 -subj "/CN=My New Key-Exchange-Key/" -keyout /etc/efi/KEK.key -out /etc/efi/KEK.crt -days 3650 -nodes -sha512
openssl req -new -x509 -newkey rsa:4096 -subj "/CN=My New Kernel-Signing Key/" -keyout /etc/efi/db.key -out /etc/efi/db.crt -days 3650 -nodes -sha512
Secure Boot Schlüssel löschen
Jetzt müsst ihr den Rechner neustarten und im UEFI-Setup die Einstellungen für Secure Boot aufrufen.
Dort sollte es eine Option geben, mit welcher die vorhandenen Schlüssel gelöscht werden.
Bei mir hieß die Option Clear Secure Boot Keys, Secure Boot ist dannach automatisch deaktiviert und sollte sich im Setup-Mode befinden.
Eigene Secure Boot Schlüssel importieren
Startet wieder euere Linux-Distribution und beginnt mit dem Import der alten Schlüssel.
efi-updatevar -e -f /etc/efi/old_KEK.esl KEK
efi-updatevar -e -f /etc/efi/old_db.esl db
efi-updatevar -e -f /etc/efi/old_dbx.esl dbx
Danach kommen die eigenen Schlüssel:
cert-to-efi-sig-list -g "$(uuidgen)" /etc/efi/PK.crt /etc/efi/PK.esl
sign-efi-sig-list -k /etc/efi/PK.key -c /etc/efi/PK.crt PK /etc/efi/PK.esl /etc/efi/PK.auth
efi-updatevar -a -c /etc/efi/KEK.crt KEK
efi-updatevar -a -c /etc/efi/db.crt db
efi-updatevar -f /etc/efi/PK.auth PK
Wenn Ihr efi-readvar ohne weitere Argumente aufruft, solltet Ihr eine Auflistung aller Schlüssel bekommen. Dort muss jetzt auch der neue Schlüssel sichtbar sein.
Nach dem Einspielen der Schlüssel ist Secure Boot wieder im User-Modus und automatisch aktiv!
Kernel signieren
Im letzten Schritt wird jetzt der Kernel mit eurem Schlüssel signiert, damit dieser bei aktivierten Secure Boot validiert werden kann.
sbsign --key /etc/efi/db.key --cert /etc/efi/db.crt --output /Pfad/zum/signierten/bzImage.signed /Pfad/zum/aktuellen/nicht/siginierten/bzImage
Prüft mit efibootmgr -v, wo aktuell eurer Kernel-Eintrag liegt (Die *.efi-Datei). Die *.efi-Datei wird durch das neue bzImage.signed ersetzt.
Nach einem Reboot sollte mit aktivierten Secure Boot der Kernel starten.
Backup
Es wäre ratsam, wenn Ihr nach dem erfolgreichen Test ein Dump der neuen Schlüssel zieht, sollte im Falle eines Bios-Updates oder Mainboard-Schadens das Wiederherstellen dieser Schlüssel nötig sein.