GNU/Linux >> Belajar Linux >  >> Linux

kvm:verifikasi modul gagal:tanda tangan dan/atau kunci yang diperlukan tidak ada - merusak kernel

Alih-alih mengkonfigurasi ulang kernel, kesalahan ini (module verification failed ) dapat diselesaikan dengan hanya menambahkan satu baris CONFIG_MODULE_SIG=n ke bagian atas Makefile untuk modul itu sendiri:

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

Sepertinya vendor sistem Anda telah mengaktifkan verifikasi tanda tangan modul kernel pada kernel Anda yang berarti tidak akan memuat modul apa pun yang belum ditandatangani oleh vendor. Dengan kata lain, modul Anda yang ditambal tidak ditandatangani (dengan benar) dan kernel akan menolak untuk memuatnya.

Intinya adalah mencegah malware dan rootkit memuat modul kernel berbahaya.

Saya sarankan Anda menghubungi vendor Anda. Mungkin ada opsi di suatu tempat di platform Anda untuk menonaktifkan pemeriksaan tanda tangan. Jika tidak, vendor Anda mungkin dapat menandatangani modul untuk Anda. Anda bahkan mungkin memiliki kunci dan detail algoritme verifikasi tanda tangan dan dapat menandatanganinya sendiri.

Tanpa mengetahui platform apa yang Anda gunakan, sulit untuk memberikan saran yang lebih spesifik.


Buka direktori sumber kernel dan lakukan (misalnya):

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

untuk kernel 4.4.*, lokasi kunci harus sebagai berikut:

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

Periksa apa algoritma intisari yang digunakan kernel Anda dengan membuka .config dan membacanya di CONFIG_MODULE_SIG nilai konfigurasi.

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

Linux
  1. Pam – Bendera Kontrol yang Diperlukan Dan Cukup?

  2. Pm-hibernate Membeku Dan/atau Gagal Melanjutkan Pada Kernel Dell Xps 13, 14.04, 3.19?

  3. Pengantar Linux KVM (Virtualisasi Berbasis Kernel) dan Manfaatnya

  1. Verifikasi tanda tangan gagal pada kunci publik SPKAC – Perbaiki kesalahan OpenCA

  2. Apa perbedaan antara module_init dan init_module dalam modul kernel Linux?

  3. perubahan parameter modul kernel (menggunakan /sys/module)

  1. Tidak ada modul bernama Cython dan Menjalankan cythonize gagal [Fix]

  2. Linux – Kernel Tercemar Di Linux?

  3. Linux – Bagaimana Cara Memuat Ulang Modul Kernel dengan Benar?