Aangepaste kernelmodules installeren en ondertekenen op SLES 15 Secure Boot

Een driver van een derde partij op SUSE Linux Enterprise Server 15 kan correct compileren, maar toch niet laden met de foutmeldingen "Vereiste sleutel niet beschikbaar" of "Sleutel werd geweigerd door de service". Wanneer UEFI Secure Boot modulehandtekeningen afdwingt, is de oplossing om de aangepaste kernelmodule te ondertekenen met een vertrouwd certificaat, dat certificaat te registreren via Machine Owner Key (MOK)-beheer en de module vervolgens normaal te laden, zonder Secure Boot uit te schakelen.

Deze procedure gaat uit van een standaard SLES 15 UEFI-systeem met SUSE-shim, een kernel-defaultkernel, beheerdersrechten en een vertrouwde bron voor uw stuurprogramma. Het behandelt aangepaste .komodules, niet het ondertekenen van een vervangende kernel of het wijzigen van firmwareplatformsleutels. De voorbeelden volgen het SLES 15 SP6/SP7-beheermodel; controleer de verschillen in pakket en kernelvariant in uw geïnstalleerde servicepack.

1. Controleer eerst Secure Boot en de actieve kernel.

Log in met beheerdersrechten en identificeer de kernel die u daadwerkelijk hebt opgestart. Een overeenkomende pakketnaam alleen bewijst niet dat een module in die kernel kan worden geladen.

uname -r
mokutil --sb-state
ls -ld "/lib/modules/$(uname -r)/build"
Terminal met weergave van uname -r, mokutil Secure Boot-status en een controle van de actieve kernel-builddirectory.
Controleer de actieve kernelversie en de Secure Boot-status voordat u een driver installeert of ondertekent.

Als mokutilSecure Boot is ingeschakeld, is een onbetrouwbare handtekening een waarschijnlijke oorzaak van een mislukte sleutelaanmaak. Als Secure Boot is uitgeschakeld, onderzoek dan andere oorzaken voordat u sleutels genereert; expliciete handhaving van de kernelhandtekening kan ook van belang zijn. Controleer na een mislukte laadpoging het kernellogboek op het daadwerkelijke afwijzingsbericht.

sudo journalctl -k -b --no-pager | tail -n 50

Controleer de kandidaatmodule voordat u deze installeert. Vervang de voorbeeld-bestandsnaam door de daadwerkelijke bestandsnaam; deze vermagicmoet overeenkomen met de actieve kernelversie en de compatibele build-eigenschappen.

modinfo -F name /path/to/mydriver.ko
modinfo -F vermagic /path/to/mydriver.ko
Terminal met een voorbeeld van een modinfo-lijst voor een extern kernelstuurprogramma en een pad naar een kernelondertekeningstool.
Bekijk de modulemetadata, met name die van Vermagic, in plaats van ervan uit te gaan dat elk .ko-bestand compatibel is met SLES 15.

2. Gebruik een ondersteund stuurprogrammapakket of bouw een bijbehorende module.

Vraag eerst de hardware- of softwareleverancier om een ​​SLES-compatibel, reeds ondertekend Kernel Module Package (KMP). Dit is te verkiezen boven het handmatig installeren van een binair bestand: de leverancier biedt mogelijk ondersteuning voor kernelupdates en een gedocumenteerd certificaatregistratieproces. Een leveranciershandtekening wordt niet automatisch vertrouwd op elke Secure Boot-machine.

Als u het stuurprogramma moet compileren, installeer dan de ontwikkelbestanden die overeenkomen met uw actieve kernel. Voor deze kernel-defaultvariant omvatten de gebruikelijke SLES-pakketten het standaard kernel-ontwikkelpakket, kernel-ontwikkelbestanden en compilatietools. De beschikbaarheid en versies van de repository zijn afhankelijk van de registratie en de ingeschakelde SLES-modules.

sudo zypper install gcc make openssl mokutil kernel-devel kernel-default-devel
rpm -q kernel-default-devel kernel-devel
readlink -f "/lib/modules/$(uname -r)/build"
Een SLES-achtige terminal die een zypper-installatie van de vereisten voor kernelontwikkeling en -ondertekening weergeeft.
Installeer de bijbehorende kernelontwikkelingspakketten en cryptografische tools voordat u met een aangepaste module gaat werken.

Als de buildmap ontbreekt of als het ontwikkelingspakket een andere kernelversie gebruikt, los dan eerst de discrepantie tussen pakket en kernel op. Een nieuw geïnstalleerde kernel vereist mogelijk een gecontroleerde herstart voordat er een build mee kan worden uitgevoerd.

Gebruik de installatie-instructies van de leverancier vanuit de vertrouwde driverbronmap. Voor conventionele kbuild-gebaseerde modules compileert de onderstaande opdracht tegen de actieve kernel; er wordt zelf geen driver gedownload of aangemaakt.

cd /path/to/driver-source
make -C "/lib/modules/$(uname -r)/build" M="$PWD" modules
Terminal met de opdracht `kbuild make` die een externe kernelmodule compileert tegen de draaiende SLES-kernel.
Gebruik de kernel-buildstructuur en de broncodemap van het stuurprogramma om een ​​overeenkomend .ko-bestand te genereren.

Sla de compilatie over als je al een compatibel bestand .kovan een vertrouwde leverancier hebt. Forceer nooit het laden van een module met een onjuist bestand vermagic; een digitale handtekening kan een incompatibel binair bestand niet herstellen.

3. Maak de ondertekeningssleutel aan en onderteken de geïnstalleerde module.

Genereer een speciale RSA-sleutel en een X.509-certificaat in een map die alleen toegankelijk is voor rootgebruikers. Het openbare certificaat wordt geregistreerd; de privésleutel moet beschermd blijven, omdat degene die deze beheert, extra modules kan ondertekenen die deze machine mogelijk vertrouwt.

sudo -i
umask 077
mkdir -p /root/module-signing
cd /root/module-signing
openssl req -new -x509 -newkey rsa:3072 -sha256 -days 3650 -nodes \
  -subj "/CN=SLES Custom Module Signing/" \
  -keyout MOK.priv -out MOK.pem
openssl x509 -in MOK.pem -outform DER -out MOK.der
chmod 600 MOK.priv
Terminal toont een OpenSSL-opdracht waarmee een lokale RSA-privésleutel en een X.509-moduleondertekeningscertificaat worden aangemaakt.
Genereer een apart sleutelpaar voor moduleondertekening en houd de privésleutel beperkt tot de beheerder.

-nodesEr wordt een niet-versleutelde privésleutel gegenereerd als eenvoudig voorbeeld; voor een productieomgeving waarin digitale handtekeningen worden ondertekend, gebruikt u een adequaat beveiligde, versleutelde sleutel of een externe ondertekeningsservice conform uw beveiligingsbeleid. De hier getoonde geldigheidsduur van tien jaar is slechts een voorbeeld en geen aanbeveling voor de levensduur van certificaten binnen uw organisatie.

Kopieer de voltooide module naar de moduledirectory van de actieve kernel. Onderteken het geïnstalleerde bestand na eventuele verpakking, verwijdering van beveiligingscode of andere bestandsaanpassingen. Vervang de bestandsnaam mydriveren het pad door de daadwerkelijke basisnaam en locatie van de module.

install -D -m 0644 /path/to/mydriver.ko \
  "/lib/modules/$(uname -r)/extra/mydriver.ko"
SIGN_FILE="$(readlink -f /lib/modules/$(uname -r)/build)/scripts/sign-file"
test -x "$SIGN_FILE" || echo "Locate the sign-file binary for this kernel"
"$SIGN_FILE" sha256 /root/module-signing/MOK.priv \
  /root/module-signing/MOK.der \
  "/lib/modules/$(uname -r)/extra/mydriver.ko"
modinfo -F signer "/lib/modules/$(uname -r)/extra/mydriver.ko"
Terminal met een voorbeeld van een sign-file-aanroep en een modinfo-inspectie van de ondertekenaar voor een kernelmodule.
Voeg de handtekening toe aan het geïnstalleerde .ko-bestand en controleer het veld 'signer' voordat u het laadt.

Als sign-filehet bestand niet op dat pad aanwezig is, zoek dan de tool die bij uw kernelbuildbestanden is meegeleverd in plaats van een niet-gerelateerde versie te kopiëren. Een weergegeven ondertekenaar betekent dat het bestand handtekeningmetadata bevat; het bewijst niet dat de ondertekenaar is geregistreerd. Verwijder of wijzig de module nooit na ondertekening.

4. Registreer het openbare certificaat via MOK

Importeer het openbare certificaat in DER-formaat (niet het standaardcertificaat) MOK.priven stel het eenmalige inschrijfwachtwoord in dat door wordt gevraagd mokutil. Regel consoletoegang vóór het opnieuw opstarten; de autorisatie vindt plaats in de MokManager-interface tijdens het opstarten, niet in een SSH-shell.

mokutil --import /root/module-signing/MOK.der
mokutil --list-new
reboot
Blauw opstartmenu in MokManager-stijl met 'Enroll MOK' gemarkeerd boven de andere opties voor de machine-eigenaarssleutel.
Selecteer in het UEFI-opstartmenu 'MOK inschrijven' en bevestig de gevraagde certificaatinschrijving.

Kies bij de volgende opstart 'MOK registreren' , volg de bevestigingsinstructies, voer het eenmalige wachtwoord in en ga verder met opstarten. Het menu dat verschijnt, is afhankelijk van de firmware- en shim-versie. Als u terugkeert naar Linux zonder de registratie te bevestigen, wordt het nieuwe certificaat niet vertrouwd.

Controleer na het opstarten of het betreffende certificaat is geregistreerd:

sudo mokutil --test-key /root/module-signing/MOK.der
sudo mokutil --list-enrolled

5. Laad de ondertekende module en isoleer de resterende fouten.

Update de metadata van moduleafhankelijkheden en laad de module op basis van de naam, niet op basis van het volledige bestandspad. modprobeLost afhankelijkheden op en respecteert de standaard moduleconfiguratie.

sudo depmod -a
sudo modprobe mydriver
lsmod | grep -w mydriver
modinfo -F signer mydriver
Terminal met weergave van de commando's modprobe, lsmod en kernel-log die worden gebruikt om een ​​ondertekende module te controleren.
Controleer of de ondertekende module in de lijst met geladen modules voorkomt en inspecteer het kernel-logboek op fouten.

Als het laden nog steeds mislukt, kies dan de corrigerende actie die overeenkomt met de bevindingen:

  • Sleutel geweigerd of vereiste sleutel niet beschikbaar: voer opnieuw uit mokutil --test-key; controleer of het geïnstalleerde bestand het ondertekende bestand is en controleer of een stuurprogramma-update het heeft vervangen.
  • Ongeldig moduleformaat: vergelijk modinfo -F vermagicmet uname -r, compileer opnieuw voor de actieve kernel en controleer de CPU-architectuur.
  • Onbekend symbool of ontbrekende afhankelijkheid: inspecteer journalctl -k -bde vereiste modules van de leverancier en de kernel-ABI; een andere handtekening zal ontbrekende symbolen niet verhelpen.

Test opstartkritieke opslag- of netwerkstuurprogramma's eerst op een niet-productiesysteem en zorg ervoor dat er een herstelconsole beschikbaar is. Configureer automatisch laden pas nadat het stuurprogramma betrouwbaar werkt; raadpleeg de SUSE-documentatie /etc/modules-load.d/voor modules die anders niet automatisch laden bij apparaatdetectie.

Controleer het resultaat na een herstart.

Start de computer nogmaals opnieuw op tijdens het onderhoudsvenster als aanhoudend laden belangrijk is. Controleer of Secure Boot ingeschakeld blijft, de publieke sleutel is geregistreerd, de module aanwezig is en de kernel geen nieuwe verificatie- of compatibiliteitsfouten meldt. Compileer of installeer de bijgewerkte versie opnieuw en onderteken deze .kona upgrades van de kernel of leveranciersstuurprogramma's.

mokutil --sb-state
sudo mokutil --test-key /root/module-signing/MOK.der
modinfo -F signer mydriver
lsmod | grep -w mydriver
sudo journalctl -k -b --no-pager | tail -n 30

Primaire documentatie: SUSE SLES 15 SP6: UEFI en Machine Owner Keys ; SUSE: Kernelmodules beheren ; Linux-kernel: Moduleondertekeningsfaciliteit ; Linux-kernel: Externe modules bouwen . De SLES 15 SP6-beheerhandleiding is bijgewerkt op 17 september 2026; het gedrag van commando's voor installatieprogramma's van derden en niet-standaard kernelvarianten moet worden bevestigd met de respectievelijke beheerders.

Laat een reactie achter

Synchroniseer Active Directory-gebruikers met ONLYOFFICE DocSpace via LDAP.

Synchroniseer Active Directory-gebruikers met ONLYOFFICE DocSpace via LDAP.

Verbind ONLYOFFICE DocSpace met Active Directory of OpenLDAP, importeer gebruikers en groepen veilig, koppel accountvelden en plan betrouwbare synchronisatie.

Automatiseer consistente Nextcloud-backups met Restic en Cron.

Automatiseer consistente Nextcloud-backups met Restic en Cron.

Maak een back-up van Nextcloud-bestanden en MariaDB, plan versleutelde Restic-snapshots met cron en controleer het herstel zonder de live server in gevaar te brengen.

Een Zimbra CE-mailbox back-uppen en herstellen met behulp van TGZ-exports.

Een Zimbra CE-mailbox back-uppen en herstellen met behulp van TGZ-exports.

Exporteer een individuele Zimbra Community Edition-mailbox, valideer de TGZ-back-up ervan en herstel ontbrekende items zonder bestaande e-mails te overschrijven.

Debian 12 op een VPS met weinig RAM: Hoe MySQL OOM-crashes te verminderen

Debian 12 op een VPS met weinig RAM: Hoe MySQL OOM-crashes te verminderen

Diagnoseer MySQL OOM-kills op Debian 12, controleer de geheugenlimieten van de VPS, configureer swap en optimaliseer het databasegeheugen en de gelijktijdigheid, zonder een universele oplossing te beloven.

Sta geautoriseerde gebruikers toe om Jitsi-rooms aan te maken met Keycloak-aanmelding.

Sta geautoriseerde gebruikers toe om Jitsi-rooms aan te maken met Keycloak-aanmelding.

Sta alleen goedgekeurde accounts toe om Jitsi Meet-rooms te starten met Keycloak en tokenverificatie, terwijl de mogelijkheid voor gasten om deel te nemen beschikbaar blijft wanneer nodig.

Hoe koppel je automatisch een externe SSHFS-directory bij het opstarten in Debian?

Hoe koppel je automatisch een externe SSHFS-directory bij het opstarten in Debian?

Configureer een SSHFS-opstartmount in Debian met SSH-sleutels, fstab en systemd automount. Inclusief controles op herstarten, machtigingen, time-outs en probleemoplossing.

Plaats ONLYOFFICE-documenten achter HAProxy zonder dat bewerken wordt onderbroken.

Plaats ONLYOFFICE-documenten achter HAProxy zonder dat bewerken wordt onderbroken.

Configureer HAProxy HTTPS, het doorsturen van headers, WebSocket-time-outs en health checks voor ONLYOFFICE Docs en controleer vervolgens of het bewerken en opslaan werkt.

Lettertypen toevoegen aan ONLYOFFICE Document Server: Docker versus Linux

Lettertypen toevoegen aan ONLYOFFICE Document Server: Docker versus Linux

Installeer aangepaste lettertypen in ONLYOFFICE Document Server, vergelijk permanente Docker-koppelingen met directe kopieën, herbouw de lettertypenlijst en controleer het resultaat.

Aangepaste kernelmodules installeren en ondertekenen op SLES 15 Secure Boot

Aangepaste kernelmodules installeren en ondertekenen op SLES 15 Secure Boot

Laad een aangepaste SLES 15-kernelmodule zonder Secure Boot uit te schakelen. Stem de module af op de actieve kernel, onderteken het .ko-bestand, registreer een MOK-sleutel en verifieer het laden.

Beveiligde SLES Syslog-doorsturing met rsyslog en Mutual TLS

Beveiligde SLES Syslog-doorsturing met rsyslog en Mutual TLS

Verzend SLES-systeemlogboeken naar een externe rsyslog-collector via geauthenticeerde TLS, met certificaatcontroles, buffering bij storingen en afleveringstests.