web-dev-qa-db-ja.com

カーネルモジュールの署名

したがって、私はdebian buster 10システムを使用していて、virtualboxをインストールしましたが、いくつかのカーネルモジュールを手動でロードするように指示するエラーが発生しました。

Sudo ./vboxconfig 
[Sudo] password for raitack: 
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: You must sign these kernel modules before using VirtualBox:
 vboxdrv vboxnetflt vboxnetadp
See the documenatation for your Linux distribution..
vboxdrv.sh: Building VirtualBox kernel modules

したがって、vboxdrv、vboxnetflt、およびvboxnetadpカーネルモジュールをロードして仮想ボックスのインストールを完了するためにいくつかの助けが必要ですが、これがどのように行われるのかよくわかりません。セキュアブートが有効になっているUEFIシステムを使用しています。

3
Qasim

モジュールの署名には3つのステップがあります。

  • Machine Owner Key を作成します
  • 登録する
  • カーネルモジュールに署名する

最初の2つのステップは1回だけ実行する必要があります。最後のステップは、モジュールがビルドされるたびにやり直す必要があります。

MOKを作成するには:

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

My Nameを適切なものに置き換えます。 (以下の手順では、これをルートとして、ルートのホームディレクトリ/rootで実行することを想定しています。)

登録するには:

mokutil --import MOK.der

これにより、次回の起動時にのみ使用される一時的なパスワードであるパスワードの入力を求められます。システムを再起動すると、UEFI MOK管理ツールに入ります。 スクリーンショット付きのこの便利なガイド を参照し、指示に従ってキーを登録してください。

これにより再起動し、キーがロードされていることを確認できます。

dmesg | grep cert

キーでモジュールに署名するには、モジュールを含むディレクトリに移動し、実行します

/usr/lib/linux-kbuild-4.19/scripts/sign-file sha256 /root/MOK.priv /root/MOK.der vboxdrv.ko

「4.19」とvboxdrv.koを適宜置き換えます。

2
Stephen Kitt