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

答え2

セキュアブートが正しく機能するには、ハードウェアがセキュアブートをサポートし、オペレーティングシステムがセキュアブートをサポートする必要があります。

ハードウェアの場合は、UEFI設定メニューを確認でき、OSが提供する証明書/キーを追加する必要があります。

オペレーティングシステムの場合は、次のコマンドを使用してサポートを確認できます。

[root@secureboot-guest ~]# cat /sys/kernel/security/securelevel 

上記のコマンドの出力が「1」の場合、オペレーティングシステムはセキュアブートをサポートして有効にしました。

このファイルがない場合は、カーネルがセキュアブートサポートでコンパイルされていることを確認する必要があります。

$ egrep "CONFIG_EFI_SECURE_BOOT_SECURELEVEL|CONFIG_SECURITY_SECURELEVEL" /boot/config-$(uname -r) 
CONFIG_EFI_SECURE_BOOT_SECURELEVEL=y
CONFIG_SECURITY_SECURELEVEL=y

答え3

AFAIK Secure Bootは、MicrosoftとUEFI Allianceを構成する複数の企業によって開発されたUEFI機能です。

UEFIはハードウェアによって部分的に適用されます。つまり、マザーボードの構成が邪魔になったり、邪魔にならない可能性があります。完全なUEFIを使用している場合は、UEFIメニュー自体でセキュアブートを有効にする可能性があります。

ただし、ファームウェアがCSM / BIOSを含むUEFIの場合、セキュアブートを有効にするオプションなどの特定の障害が発生する可能性があります。グレーに変わるそしてすべて。

関連情報