kvm: 모듈 확인 실패: 서명 및/또는 필요한 키 누락 - 커널 수정
사용하고 있습니다.Ubuntu 14.04 LTS
커널 버전과3.13.11.4
.
패치된 KVM 모듈을 로드하려고 합니다.kvm
그리고.kvm-intel
다음과 같은 오류가 발생합니다.
kvm: module verification failed: signature and/or required key missing - tainting kernel
그리고.kvm: module has bad taint, not creating trace events
.
사용된 소스는 현재 실행 중인 이미지를 생성한 소스와 동일합니다.
기호를 확인하고 오류가 다음을 포함하지 않아서 발생하는 것이 아닌지 확인했습니다.EXPORT_SYMBOL_GPL()
내가 함수를 내보낸 패치된 파일에서.
다른 커널 버전이 이 오류를 일으키는 것도 보았지만 패치된 kvm 모듈을 만들 때 사용했던 것과 동일한 소스로 부팅되는 커널을 만들었습니다.
모든 것이 경고 없이 컴파일됩니다.어떤 도움이든 감사히 받겠습니다!
커널을 재구성하는 대신 이 오류(module verification failed
) 한 줄만 추가해도 해결 가능CONFIG_MODULE_SIG=n
최고로Makefile
모듈 자체의 경우:
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
커널 소스 디렉토리로 이동하여 다음을 수행합니다(예:
./scripts/sign-file sha512 ./signing_key.priv ./signing_key.x509 /lib/modules/3.10.1/kernel/drivers/char/my_module.ko
커널 4.4.*의 경우 키 위치는 다음과 같습니다.
./scripts/sign-file sha512 ./certs/signing_key.pem ./certs/signing_key.x509 path/to/your/kernel/module.ko
열기를 통해 커널에서 사용 중인 다이제스트 알고리즘을 확인합니다..config
그리고 그것을 읽습니다.CONFIG_MODULE_SIG
config 값.
CONFIG_MODULE_SIG=y CONFIG_MODULE_SIG_ALL=y CONFIG_MODULE_SIG_SHA512=y CONFIG_MODULE_SIG_HASH="sha512"
시스템의 공급업체가 커널에서 커널 모듈 서명 확인을 활성화한 것으로 보이는데, 이는 공급업체가 서명하지 않은 모듈을 로드하지 않는다는 것을 의미합니다.즉, 패치된 모듈에 서명이 되어 있지 않아 커널이 로드를 거부합니다.
이는 악성코드와 루트킷이 악성 커널 모듈을 로드하는 것을 방지하기 위한 것입니다.
공급업체에 문의하시기를 권합니다.플랫폼 어딘가에 서명 확인을 비활성화하는 옵션이 있을 수 있습니다.그렇지 않으면 공급업체가 대신 모듈에 서명할 수 있습니다.서명 확인 알고리즘의 키와 세부 정보를 가지고 있을 수도 있으며 직접 서명할 수도 있습니다.
어떤 플랫폼에서 실행 중인지 알지 못하면 더 구체적인 제안을 하기가 어렵습니다.
일반적으로 사용자 지정 커널을 구축하고 사용하는 경우make oldconfig
. 그러면 /boot에서 나가는 config-* 파일이 복사됩니다.요즘은 대부분의 커널 모듈이 리눅스 벤더의 서명을 받아야 합니다.따라서 커널을 컴파일하기 전에 .config를 편집하고 CONFIG_MODULE_SIG_ALL 및 CONFIG_MODULE_SIG를 사용하지 않도록 설정합니다.
CONFIG_MODULE_SIG=n
CONFIG_MODULE_SIG_ALL=n
# CONFIG_MODULE_SIG_FORCE is not set
# CONFIG_MODULE_SIG_SHA1 is not set
# CONFIG_MODULE_SIG_SHA224 is not set
# CONFIG_MODULE_SIG_SHA256 is not set
# CONFIG_MODULE_SIG_SHA384 is not set
언급URL : https://stackoverflow.com/questions/24975377/kvm-module-verification-failed-signature-and-or-required-key-missing-taintin
'programing' 카테고리의 다른 글
ORA-01408: 해당 열 목록은 이미 색인화되어 있습니다. (0) | 2023.09.19 |
---|---|
java 코드를 사용하여 sp 값으로 텍스트 크기를 할당하는 방법 (0) | 2023.09.19 |
XPath와 링크 텍스트로 링크 URL을 찾으려면 어떻게 해야 합니까? (0) | 2023.09.19 |
대체 for-loop 구문 (0) | 2023.09.19 |
스택 오버플로로 인해 세그먼트화 오류가 아닌 다른 문제가 발생할 수 있습니까? (0) | 2023.09.19 |