尝试编译内核会产生认证错误

Joh*_*Doe 32 compiling debian grsecurity linux-kernel kali-linux

我目前正在尝试遵循Hardening Debian for the Desktop Using Grsecurity指南,以便在我的 Kali Linux 桌面上安装带有 Grsecurity 的 4.5.7 内核。

我正在逐字跟踪该指令列表,除了我尝试将 Grsecurity 的测试补丁用于 4.5.7 内核并且我正在运行 Kali Linux 而不是直接的 Debian。

但是,每次我尝试编译内核时,都会在“CC certs/system_keyring.o”行之后收到此错误:

  CC      certs/system_keyring.o
make[2]: *** No rule to make target 'debian/certs/benh@debian.org.cert.pem', needed by 'certs/x509_certificate_list'.  Stop.
Makefile:951: recipe for target 'certs' failed
make[1]: *** [certs] Error 2
make[1]: Leaving directory '/home/jc/Downloads/linux-4.5.7'
debian/ruleset/targets/common.mk:295: recipe for target 'debian/stamp/build/kernel' failed
make: *** [debian/stamp/build/kernel] Error 2
Run Code Online (Sandbox Code Playgroud)

正如我发现的那样,对于任何内核,即使我没有应用补丁或修改,我也会收到此错误,因此它与我用来编译内核的工具(显然是某种系统钥匙串)有关。有人可以告诉我如何修复我的操作系统并编译我的内核吗?

PS这是输出cat /proc/version

Linux version 4.6.0-kali1-amd64 (devel@kali.org) (gcc version 5.4.0 20160609 (Debian 5.4.0-4) ) #1 SMP Debian 4.6.2-2kali2 (2016-06-28)
Run Code Online (Sandbox Code Playgroud)

小智 48

几年前我在 Debian 构建中遇到了这个问题。在.config您从/bootfind复制的文件中并注释掉行CONFIG_SYSTEM_TRUSTED_KEYCONFIG_MODULE_SIG_KEY.

在构建过程中,您可以使用自己的证书或仅使用随机的一次性证书。

在此线程中找到了上述内容。

  • 对我 (4.8) 来说是 CONFIG_SYSTEM_TRUSTED_KEYS (7认同)
  • 4.19 配置的 Oneliner - `sed -ri '/CONFIG_SYSTEM_TRUSTED_KEYS/s/=.+/=""/g' .config` (7认同)
  • 对我来说(5.13)我还必须 `CONFIG_SYSTEM_REVOCATION_KEYS=""` (3认同)

小智 18

您可以更改您的配置文件.config

CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem" 
Run Code Online (Sandbox Code Playgroud)

CONFIG_SYSTEM_TRUSTED_KEYS=""
Run Code Online (Sandbox Code Playgroud)


小智 8

遇到这个,通过包管理器安装源码包,并将debian和debian.master文件夹移动到makefile所在的linux源码中

$ sudo apt search linux-source
# don't worry about it not saying 'generic'

$ sudo apt install linux-source-<version>
$ cd /usr/src/linux-source-<version>
$ sudo tar xf linux-source-<version>.tar.gz
$ sudo mv debian linux-source-<version>/debian
$ sudo mv debian.master linux-source-<version>/debian.master
Run Code Online (Sandbox Code Playgroud)


小智 5

  • 在内核源码所在的文件夹中,创建一个debian文件夹。certs在其中创建一个文件夹。
  • 创建一个名为文件debian-uefi-certs.pem此内容

  • 他们为什么要使用该文件的特定内容?该链接似乎并未出现在官方认可的 Debian 网站上。 (4认同)
  • 这听起来有潜在危险。 (2认同)