Linux Kernel Module für VmWare signieren

SecureBoot hört man immer wieder aber leider wissen die meisten gar nicht was der SecureBoot so macht. SecureBoot ist eine Erfindung von Microsoft die es dem UEFI BIOS vorschreibt nur signierten Code zu laden. Unter Windows ist das erstmals kein Problem. Jedoch kann es mit Linux Installationen kompliziert werden. Vor allem wenn die entsprechende LinuxDistro SecureBoot nicht unterstützt. Natürlich könnte man den Kernel und die betreffenden Module einfach selber signieren. Jedoch ist das verdammt aufwendig. Deshalb greife ich in dem Fall zu Distros die SecureBoot von Haus aus schon unterstützen. Auf meinem Laptop läuft derweil zum Beispiel Debian 11 und Windows 11. Windows 11 mag es leider gar nicht wenn man SecureBoot abschaltet, deshalb bin ich auf ihn angewiesen.

Leider werden nicht alle Kernel Module automatisch signiert, das ist mir zum ersten mal aufgefallen als ich VmWare installieren wollte. Aber jetzt erstmals genug des gelabert und ab zum Kernel Module signieren.

Alle Befehle sollten als Root ausgeführt werden sowie im Root Heimverzeichnis deshalb:

sudo su
cd /root

Als erstes muss man einen sogenannten MOK key erstellen. Ich nenne ihn einfach MeinMOK Solltest du dich entschließen hier ein Passwort zu vergeben. Schreibe es dir auf du wirst es eine lange Zeit benötigen.

openssl req -new -x509 -newkey rsa:2048 -keyout MeinMOK.priv -outform DER -out MeinMOK.der -days 36500 -subj "/CN=MeinMOK/" -nodes

Du kannst natürlich MeinMOK key durch etwas beliebig anderes austauschen.;)

Als nächstes müssen wir den öffentlichen schlüssel ins Bios eintragen. Sollte das Programm nicht installiert sein. Installiere es nach.

mokutil --import MeinMOK.der

Das tool wird dich nach einem Passwort fragen. Denk dir einfach schnell eins aus und merke es dir.

Starte nun den Rechner neu. Dein BIOS wird dich nun nach dem eben ausgedachten Passwort fragen, um das Zertifikat zu importieren.

Als nächstes Signieren wir die VMWare kernel module. Denke dran die Befehle als Root unter /root auszuführen.

sudo su
cd /root

der Befehl um die zwei benötigten Module zu Signieren lautet:

sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 /root/MeinMOK.priv /root/MeinMOK.der $(modinfo -n vmmon) 

sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 /root/MeinMOK.priv /root/MeinMOK.der $(modinfo -n vmnet)

Bitte Beachte das du nach dem Signieren das System Neustarten musst um die Module zu laden.

Bitte Beachte außerdem dass du die Module nach jedem VMWare update oder Kernel Update neu signieren musst. Sowie den Rechner Neustarten musst.

Aus diesem Grund Lösche bitte unter keinen Umständen die Zertifikate aus dem /root Ordner.

Ich hoffe meine kleine Zusammenfassung war hilfreich. Sollte etwas bei dir nicht funktionieren oder sich etwas an dem Prozess ändern schreib mit doch bitte ne eMail.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert