Apakah ada cara untuk mengaktifkan boot aman di Linux?

8

Sama seperti Windows memiliki boot aman yang mencegah kode Loader OS eksternal dari berjalan saat boot, apakah Linux memiliki opsi serupa untuk dirinya sendiri? Saya telah melihat-lihat, tetapi ketika saya mencari, satu-satunya hasil yang saya dapatkan adalah bagaimana menginstal Linux pada mesin Windows yang diaktifkan UEFI. Saya tidak dapat menemukan bagaimana saya bisa membawa opsi ini ke mesin Linux saya.

Rohan
sumber
kata kunci pencarian: "grub tepercaya"
Gilles 'SO- stop being evil'
Ada kemungkinan menginstal shimbootloader yang telah ditandatangani oleh Microsoft, lihat misalnya wiki.debian.org/SecureBoot
phk
@Gilles adalah perangkat lunak grub tepercaya yang dapat dipercaya? Sangat menakutkan untuk mengunduh sesuatu yang akan mengubah proses boot saya.
Rohan
@Rohan Trusted Grub dapat dipercaya seperti perangkat lunak Linux mendasar lainnya. Itu dikelola oleh orang yang sama dengan TrouSers yang merupakan tumpukan perangkat lunak TPM Linux.
Gilles 'SANGAT berhenti menjadi jahat'

Jawaban:

3

Agar boot aman dapat berfungsi, Perangkat Keras Anda harus mendukung boot aman dan OS Anda harus mendukung boot aman.

Untuk HW, Anda dapat memeriksa di menu pengaturan UEFI dan Anda perlu menambahkan sertifikat / kunci yang disediakan oleh OS

Untuk OS, Anda dapat memeriksa dukungan dengan mengikuti perintah:

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

Jika output dari perintah di atas adalah "1" maka boot aman didukung dan diaktifkan oleh OS Anda.

Shubham
sumber
Tidak ada file seperti itu ...
Rohan
@Rohan, Mungkin saja kernel Anda tidak dikompilasi dengan dukungan boot yang aman. Periksa output dari yang berikut: [root @ secureboot-guest ~] # cat / boot / config-uname -r | grep SECURE Jika ada dukungan booting aman di kernel maka Anda akan mendapatkan output seperti di bawah ini: CONFIG_EFI_SECURE_BOOT_SECURELEVEL = y CONFIG_SECURITY_SECURELEVEL = y
shubham
-radalah opsi yang tidak valid untuk kucing, menurut terminal saya.
Rohan
oh sebenarnya itu perintah linux. Ini adalah perintah: cat / boot / config- uname -r masukkan uname -r di dalam `di kedua ujungnya
shubham
2

Pertama-tama: buat kunci sendiri

openssl req -baru -nodes -utf8 -sha256 -hari 36500 -batch -x509 \
       -subj "/ CN = Kernel Key" -format DER -out kernel.der \
       -kunci kernel.keyout

Cobalah untuk mengkompilasi kernel linux dengan CONFIG_EFI_STUB dan menanamkan initramfs ke dalamnya seperti yang dijelaskan di sini: https://prosauce.org/blog/2015/10/31/booting-linux-securely , untuk menandatangani modul Anda dapat menggunakan skrip selanjutnya Anda dapat menggunakan skrip berikut:

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

Kemudian buat file dengan kernel cmdline untuk laptop \ workstation Anda, dan buat satu gambar dan salin ke direktori boot efi seperti ini:

# 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

Untuk memasang kunci sendiri ke dalam MB firmware Anda dapat melakukan cmds seperti ini:

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
pengguna1024
sumber
-1

Boot aman AFAIK adalah fitur UEFI yang dikembangkan oleh Microsoft dan beberapa perusahaan lain yang membentuk konsorsium UEFI.

UEFI adalah sebagian perangkat keras yang ditegakkan yaitu konfigurasi motherboard Anda mungkin / mungkin-tidak menghalangi. Jika Anda menggunakan UEFI lengkap maka kemungkinan Anda akan dapat mengaktifkan boot aman dari menu UEFI itu sendiri.

Namun jika firmware Anda UEFI dengan CSM / BIOS maka Anda mungkin menghadapi hambatan tertentu seperti opsi untuk mengaktifkan boot aman yang diklik dan semuanya.

sohom154
sumber
2
Ini bukan produk Microsoft, ini adalah standar yang Microsoft mungkin telah banyak katakan dalam pembuatannya: en.wikipedia.org/wiki/…
phk
@phk memperbarui jawaban yang sesuai
sohom154