VirtualBox kernel modulok aláírása a mokutil használatával

kimarite képe

A VirtualBox unsigned kernel (nem aláírt) használata esetén kíválóan működik, azonban signed kernel (aláírt) használata esetén jelzi, hogy a használathoz szükséges kernel modulok nem tölthetők be, azokat hitelesíteni (sign) kell.

A jelzés kapcsolódó részlete:

If your system is using EFI Secure Boot you may need to sign the
kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci)

Nem használom az EFI Secure Boot-ot.
A teszt alanya a Debian Buster kiadás.

Az aláírás, másképpen, a hitelesítés mégis megoldható, mégpedig a mokutil alkalmazás segítségével...

Nyiss terminált.

Telepítsd a mokutil alkalmazást:

sudo apt-get install mokutil

Szerezz admin jogot:

sudo -i

Hozd létre a root könyvtárban a module-signing könyvtárat (mkdir):

mkdir /root/module-signing

Lépj be a module-signing könyvtárba (cd):

cd /root/module-signing/

Hozd létre a MOK.priv és a MOK.der fájlokat. A CN értékhez az beállítani kívánt alkalmazás nevét használd (openssl):

openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VirtualBox/"

... a parancssorban megfigyelhető a kulcs titkosításának tipusa (x509), erőssége (rsa:2048) és lejáratának dátuma napban megadva (36500).

Alkalmazd a megfelelő jogosultságokat: 6 = írás + olvasás / rendszergazda (chmod):

chmod 600 MOK.priv

Ha nem EFI beállítást használsz, akkor ezt az üzenetet kapod (mokutil):

mokutil --import /root/module-signing/MOK.der
EFI variables are not supported on this system

Listázom a modules-signing könyvtár tartalmát, létrejött a MOK.der és a MOK.priv fájl (ls):

ls -la
összesen 20
drwxr-xr-x  2 root root 4096 jún   20 11:24 .
drwx------ 18 root root 4096 jún   20 11:20 ..
-rw-r--r--  1 root root  785 jún   20 11:22 MOK.der
-rw-------  1 root root 1704 jún   20 11:22 MOK.priv
-rwx------  1 root root  301 jún   20 11:24 sign-virtualbox-modules # a fájlt később hozom létre

Hozd létre a sign-virtualbox-modules fájlt (nano):

nano sign-virtualbox-modules

Illeszd be az itt látható szöveget (nem parancssor):

#!/bin/bash

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

Mentés és kilépés a nano szövegszerkesztőből:

Ctrl + O, és Enter,
majd Ctrl + X

Alkalmazd a megfelelő jogosultságokat: 7 = írás + olvasás + futtatás / rendszergazda (chmod):

chmod 700 sign-virtualbox-modules

Lépj ki a könyvtárból:

cd

Lépj ki az admin környezetből:

exit

Indítsd újra a rendszert a menüből vagy parancssorral (terminálban):

sudo systemctl reboot

Az újraindítás után a kernel modulok immáron használhatóak.

Ellenőrzés (VirtualBox kernel modulok létrehozása, beállítása):

sudo /sbin/vboxconfig
[sudo] debkim jelszava:
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.

Forrás:
https://stegard.net/2016/10/virtualbox-secure-boot-ubuntu-fail/
https://www.virtualbox.org/ticket/11577?cversion=0&cnum_hist=5
https://askubuntu.com/questions/760671/could-not-load-vboxdrv-after-upgrade-to-ubuntu-16-04-and-i-want-to-keep-secur/768310#768310

Enjoy :-)