Linuxでセキュアブートを有効にする方法はありますか?

Linuxでセキュアブートを有効にする方法はありますか?

Windowsに外部OSローダーコードが起動するのを防ぐセキュリティブート機能があるように、Linux自体にも同様のオプションはありますか?探してみましたが、検索してみると、UEFI対応のWindowsコンピュータにLinuxをインストールする方法しか出てきません。私のLinuxボックスにこのオプションをインポートする方法が見つかりません。

ベストアンサー1

最初のもの:自分のキーを生成する

openssl req -new -nodes -utf8 -sha256 -days 36500 -batch -x509\
       -subj "/CN=カーネルキー" -outform DER -out kernel.der \
       -keyout kernel.key

以下の説明に従って、CONFIG_EFI_STUBを使用してLinuxカーネルをコンパイルし、ここにinitramfsを含めます。https://prosauce.org/blog/2015/10/31/booting-linux-securely、モジュールに署名するには、次のスクリプトを使用できます。

/usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 kernel.key kernel.der module.ko

次に、カーネルコマンドラインを使用してノートブック\ワークステーション用のファイルを作成し、イメージを作成して次のようにefiブートディレクトリにコピーします。

#オブジェクトのコピー\
  --add-section .osrel=/etc/os-release --change-section-vma .osrel=0x20000 \
  --追加セクション.cmdline=/tmp/cmdline --change-セクション-vma .cmdline=0x30000 \
  --追加セクション .linux=/boot/vmlinuz --change-section-vma .linux=0x2000000 \
  --追加セクション .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

MBファームウェアに独自のキーをインストールするには、次のコマンドを実行できます。

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.esl kernel.auth

おすすめ記事