Dieser Blog-Beitrag befasst sich speziell mit dem Anwendungsfall der Verwendung eines signierten Standard-Distributionskernels, der von Debian/Ubuntu bereitgestellt wird, und der Verwendung von shim-signed zur Bereitstellung selbstsignierter Kernelmodule, die mit dkms registriert sind. Ich beziehe mich ausdrücklich nicht auf Nicht-Distributions-Kernel oder Kernel-Module, die ohne dkms verwaltet werden. Um das Offensichtliche klarzustellen, ist dies nur nützlich, wenn man Secure Boot aktiviert hat.
Diese Anleitung sollte für alle nicht-alten Versionen von Debian/Ubuntu funktionieren, die mit signierten Kerneln ausgeliefert werden; ich weiß, dass dies definitiv mit Ubuntu 18.04 LTS und höher funktioniert, aber im Zweifelsfall sollte man sicherstellen, dass die Pakete shim-signed und mokutil vorinstalliert sind.
Erstmal prüfen ob Secure-Boot aktiv ist
Alle grau hinterlegen Befehle sind im Terminal auszuführen
sudo mokutil --sb-state
Shim Zertifikat erzeugen
Unter Ubuntu erzeugt das Postinst-Skript von shim-signed ein selbstsigniertes Zertifikat, das sich in /var/lib/shim-signed/mok/MOK.{der,priv}
befindet. Wenn diese Dateien fehlen oder man aus irgendeinem Grund einen neuen MOK-Schlüssel erzeugen möchte, führt man folgenden Befehl aus:
sudo update-secureboot-policy --new-key
Jedes Mal, wenn man einen MOK-Schlüssel neu generiert, muss dieser Schlüssel auch neu registriert werden. Daher sollte man
/var/lib/shim-signed/mok/MOK.{der,priv}
in die geplanten Backups aufnehmen. und den MOK-Schlüssel wiederherstellen, wenn man das Betriebssystem neu installieren muss – je nachdem, welche Option für einen günstiger ist.
MOK-Schlüssel ausrollen
Der nächste Schritt besteht darin, Ihren MOK-Schlüssel zu registrieren.
sudo mokutil --import /var/lib/shim-signed/mok/MOK.der
Dadurch wird man zur Eingabe eines einmaligen Passworts aufgefordert. Beim nächsten Neustart sehen Sie nicht das normale Grub-Menü, sondern einen Bildschirm für die UEFI-Schlüsselverwaltung, in den Sie das Passwort eingeben müssen, um Ihren MOK-Schlüssel zu registrieren.
Wenn dies aus irgendeinem Grund fehlschlägt, kopiert man
/var/lib/shim-signed/mok/MOK.der
auf ein FAT32-formatiertes USB-Laufwerk.
Man booten dann in das UEFI/BIOS-Setup-Menü Ihres Motherboards (dies geschieht oft durch Drücken von F2 oder Entf während des Bootens, aber sicherheitshalber im Handbuch des Motherboards nachsehen) und navigiert man dann durch die verschiedenen Menüs, bis Sie die Menüoptionen für Secure Boot und die Schlüsselregistrierung findet, und fügt den Schlüssel hinzu.
Überprüfen ob der Schlüssel erfolgreich hinzugefügt wurde:
sudo mokutil --list-enrolled
# your key should appear in the output
sudo mokutil --test-key /var/lib/shim-signed/mok/MOK.der
/var/lib/shim-signed/mok/MOK.der is already enrolled
Man sollte auch überprüfen, ob Secure Boot auf dem PC aktiviert und erzwungen ist. Dies kann durch Ausführen überprüft werden:
sudo mokutil --sb-state
SecureBoot enabled
Ab diesem Zeitpunkt an sollten alle Kernel-Module, die von dkms erstellt werden, mit dem MOK-Schlüssel signiert sein. Wenn man bereits nvidia-Kernel-Module (oder andere Out-of-Tree-Module) erstellt hat, bevor Sie einen MOK-Schlüssel generiert haben, und diese mit dkms neu erstellen möchte, kann man das z.B. tun, indem man
sudo dkms uninstall -k 5.4.0-90-generic -m nvidia -v 460.91.03 # replace kernel and module name/version as needed
$ sudo dkms install -k 5.4.0-90-generic -m nvidia -v 460.91.03 # replace kernel and module name/version as needed
Zusammenfassend lässt sich sagen, dass Secure Boot mit einem Distributionskernel und Out-of-Tree-Modulen funktioniert:
Aktivieren Sie die Secure Boot-Überprüfung.
Aktiviere den MOK-Schlüssel in der UEFI-Firmware des Motherboards an.
Signiere die Out-of-Tree-Kernelmodule mit dem MOK-Schlüssel.
Schritt 3 muss jedes Mal durchgeführt werden, wenn Kernel oder Kernelmodulpakete aktualisiert werden, aber glücklicherweise wird dies alles von dkms erledigt, ohne dass der Benutzer eingreifen muss (und wenn man auf Out-of-Tree-Module angewiesen sind, aber nicht dkms verwenden, ist dies ein starker Anreiz für Sie, dkms zu verwenden).
Die Schritte 1 und 2 sind tatsächlich einmalige Operationen; sie müssen nur durchgeführt werden, wenn Sie das Motherboard austauschen, Ihre registrierten Schlüssel im UEFI-Schlüsselverwaltungsbildschirm Ihres Motherboards löschen oder Debian/Ubuntu neu installieren, ohne den registrierten Schlüssel zu sichern.
Schreibe einen Kommentar