Nov. 3rd, 2021

techquisitor: (sis)
Современные EFI/BIOS в последнее время порой идут с неотключаемым SecureBoot или же порой очень сложно найти, где оно отключается. Зачем он нужен и какую пользу приносит, об этом как-нибудь в другой раз. Слишком обширная тема.

Сейчас мы разберём, как подписывать сторонние модули ядра, не входящие в основную поставку, чтобы они работали с SecureBoot. для примера возьмём VirtualBox, модули которого, обычно идут в виде исходников и собираются с помощью DKMS.

Я использую Fedora 34, но это работает в любом современном дистрибутиве.

Для начала нам понадобится mokutil.

sudo dnf update
sudo dnf install mokutil
Затем создаём новый каталог и генерим пару RSA:
sudo -i
mkdir /root/signed-modules
cd /root/signed-modules
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VirtualBox/"
chmod 600 MOK.priv

После чего необходимо добавить пароль. Этот пароль нам потребуется при следующей перезагрузке.
sudo mokutil --import MOK.der
Затем перезагружаемся и на появившемся синем экране выбираем: Enroll MOK --> Continue --> вбиваем пароль из предыдущего шага

Теперь уже создаём скриптик, которым мы будем подписывать модули ядра:
cd /root/signed-modules
vim sign-virtual-box
И сам скрипт, собственно:

#!/bin/bash

for modfile in $(dirname $(modinfo -n vboxdrv))/*.ko; do
echo "Signing $modfile"
/usr/src/kernels/$(uname -r)/scripts/sign-file sha256 \
/root/signed-modules/MOK.priv \
/root/signed-modules/MOK.der "$modfile"
done

На всякий случай можете проверить расположение signfile и если что, подправить пути в скрипте выше:

find /usr/src -name signfile
И далее:
chmod 700 sign-virtual-box
./sign-virtual-box

И пересобираем модуль:
modprobe vboxdrv
В дальнейшем скрипт НЕ УДАЛЯЕМ, как и сгенерированные ключи. Они нам потребуется при каждом обновлении ядра. А вот mokutil будет уже не обязателен.

Profile

techquisitor: (Default)
techquisitor

June 2024

S M T W T F S
      1
2345678
9101112131415
161718192021 22
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 17th, 2025 09:57 pm
Powered by Dreamwidth Studios