Windowsのセキュアブートがブート時に外部OSローダーコードを実行できないように、Linuxにも同様のオプションがありますか?私は周りを見回しましたが、検索すると、UEFI対応のWindowsマシンにLinuxをインストールする方法しか得られません。このオプションをLinuxマシンに導入する方法がわかりません。
shim
Microsoftによって署名されたブートローダーをインストールする可能性があります。たとえば、wiki.debian.org
Windowsのセキュアブートがブート時に外部OSローダーコードを実行できないように、Linuxにも同様のオプションがありますか?私は周りを見回しましたが、検索すると、UEFI対応のWindowsマシンにLinuxをインストールする方法しか得られません。このオプションをLinuxマシンに導入する方法がわかりません。
shim
Microsoftによって署名されたブートローダーをインストールする可能性があります。たとえば、wiki.debian.org
回答:
セキュアブートを機能させるには、ハードウェアがセキュアブートをサポートし、OSがセキュアブートをサポートする必要があります。
ハードウェアの場合、UEFI設定メニューでチェックインでき、OSによって提供される証明書/キーを追加する必要があります
OSの場合、次のコマンドでサポートを確認できます。
[root@secureboot-guest ~]# cat /sys/kernel/security/securelevel
上記のコマンドの出力が「1」の場合、セキュアブートがサポートされ、OSによって有効になっています。
-r
私の端末によると、猫のための無効なオプションです。
uname -r
最初に、独自のキーを生成します
openssl req -new -nodes -utf8 -sha256 -days 36500 -batch -x509 \ -subj "/ CN = Kernel Key" -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
次に、ラップトップ\ワークステーション用のカーネルコマンドラインを使用してファイルを作成し、1つのイメージを作成して、次のようにefiブートディレクトリにコピーします。
#objcopy \ --add-section .osrel = / etc / os-release --change-section-vma .osrel = 0x20000 \ --add-section .cmdline = / tmp / cmdline --change-section-vma .cmdline = 0x30000¥ --add-section .linux = / boot / vmlinuz --change-section-vma .linux = 0x2000000 \ --add-section .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 kernel.esl kernel.auth
AFAIKセキュアブートは、MicrosoftおよびUEFIコンソーシアムを形成する他のいくつかの企業によって開発されたUEFI機能です。
UEFIはハードウェアによって部分的に強化されています。つまり、マザーボードの設定が邪魔になる場合とそうでない場合があります。完全なUEFIを使用している場合は、UEFIメニュー自体からセキュアブートを有効にできる可能性があります。
ただし、ファームウェアがCSM / BIOSを備えたUEFIである場合は、セキュアブートを有効にするオプションなどの特定の障害がグレー表示される可能性があります。