GNU/Linux >> LINUX-Kenntnisse >  >> Linux

kvm:Modulüberprüfung fehlgeschlagen:Signatur und/oder erforderlicher Schlüssel fehlen - verdorbener Kernel

Anstatt den Kernel neu zu konfigurieren, wird dieser Fehler (module verification failed ) konnte durch Hinzufügen einer Zeile CONFIG_MODULE_SIG=n gelöst werden an die Spitze der Makefile für das Modul selbst:

CONFIG_MODULE_SIG=n

# If KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language.
ifneq ($(KERNELRELEASE),)
    obj-m := hello.o

# Otherwise we were called directly from the command
# line; invoke the kernel build system.
else
    KERNELDIR ?= /lib/modules/$(shell uname -r)/build
    PWD := $(shell pwd)

default:
    $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif

Es scheint, als hätte der Anbieter Ihres Systems die Überprüfung der Kernelmodul-Signatur auf Ihrem Kernel aktiviert, was bedeutet, dass kein Modul geladen wird, das der Anbieter nicht signiert hat. Mit anderen Worten, Ihr gepatchtes Modul ist nicht (ordnungsgemäß) signiert und der Kernel wird sich weigern, es zu laden.

Der Sinn dahinter soll Malware und Rootkits daran hindern, bösartige Kernel-Module zu laden.

Ich empfehle Ihnen, sich an Ihren Anbieter zu wenden. Möglicherweise gibt es irgendwo auf Ihrer Plattform eine Option zum Deaktivieren der Signaturprüfung. Andernfalls kann Ihr Anbieter das Modul möglicherweise für Sie signieren. Möglicherweise haben Sie sogar den Schlüssel und die Details des Signaturprüfalgorithmus und können ihn selbst signieren.

Ohne zu wissen, auf welcher Plattform Sie arbeiten, ist es schwierig, spezifischere Vorschläge zu machen.


Gehen Sie in das Kernel-Quellverzeichnis und tun Sie (z. B.):

./scripts/sign-file sha512 ./signing_key.priv ./signing_key.x509 /lib/modules/3.10.1/kernel/drivers/char/my_module.ko

Für Kernel 4.4.* sollte die Schlüsselposition wie folgt aussehen:

./scripts/sign-file sha512 ./certs/signing_key.pem ./certs/signing_key.x509 path/to/your/kernel/module.ko 

Überprüfen Sie, welchen Digest-Algorithmus Ihr Kernel verwendet, indem Sie .config öffnen und lesen Sie es in CONFIG_MODULE_SIG Konfigurationswerte.

CONFIG_MODULE_SIG=y CONFIG_MODULE_SIG_ALL=y CONFIG_MODULE_SIG_SHA512=y CONFIG_MODULE_SIG_HASH="sha512"

Linux
  1. Signaturüberprüfung beim öffentlichen SPKAC-Schlüssel fehlgeschlagen – OpenCA-Fehler behoben

  2. Kein Modul namens Cython und Ausführen von Cythonize fehlgeschlagen [Fix]

  3. Pm-hibernate friert ein und/oder kann auf Dell Xps 13, 14.04, 3.19 Kernel nicht fortgesetzt werden?

  4. Einführung in Linux KVM (Kernel Based Virtualization) und seine Vorteile

  5. Was ist der Unterschied zwischen module_init und init_module in einem Linux-Kernel-Modul?

So laden oder entladen Sie ein Linux-Kernel-Modul

So laden und entladen Sie Kernel-Module in Linux

Modprobe-Befehl unter Linux

Linux-Kernel und seine Funktionen

So beheben Sie den Fehler „Verifizierung des Hostschlüssels fehlgeschlagen“

Änderungen der Parameter des Kernelmoduls (unter Verwendung von /sys/module)