Pertama-tama: buat kunci sendiri
openssl req -baru -nodes -utf8 -sha256 -hari 36500 -batch -x509 \
-subj "/ CN = Kernel Key" -format DER -out kernel.der \
-kunci kernel.keyout
Cobalah untuk mengkompilasi kernel linux dengan CONFIG_EFI_STUB dan menanamkan initramfs ke dalamnya seperti yang dijelaskan di sini: https://prosauce.org/blog/2015/10/31/booting-linux-securely , untuk menandatangani modul Anda dapat menggunakan skrip selanjutnya Anda dapat menggunakan skrip berikut:
/ usr / src / linux-header - $ (uname -r) / script / file-sign sha256 kernel.key kernel.der module.ko module.ko
Kemudian buat file dengan kernel cmdline untuk laptop \ workstation Anda, dan buat satu gambar dan salin ke direktori boot efi seperti ini:
# objcopy \
--add-section .osrel = / etc / os-release --change-section-vma .osrel = 0x20000 \
--add-section .cmdline = / tmp / cmdline --change-section-vma .cmdline = 0x30000 \
--add-section .linux = / boot / vmlinuz --change-section-vma .linux = 0x2000000 \
--add-section .initrd = / boot / initrd.img --change-section-vma .initrd = 0x3000000 \
/usr/lib/systemd/boot/efi/linuxx64.efi.stub linux.efi
# mkdir -p / boot / efi / EFI / BOOT
# sbsign --key /root/keys/ISK.key --cert /root/keys/ISK.pem --output /boot/efi/EFI/BOOT/BOOTX64.EFI linux.efi / boot / efi / EFI / BOOT /BOOTX64.EFI
Untuk memasang kunci sendiri ke dalam MB firmware Anda dapat melakukan cmds seperti ini:
openssl x509 -inform der -in kernel.der -outform pem -out kernel.pem
cert-to-efi-sig-list -g "$ (uuidgen)" kernel.pem kernel.esl
sign-efi-sig-list -k KEK.key -c KEK.pem kernel kernel.esl kernel.auth