Có cách nào để kích hoạt khởi động an toàn trong Linux không?


8

Giống như Windows có khởi động an toàn ngăn không cho bất kỳ mã Trình tải hệ điều hành bên ngoài nào chạy khi khởi động, Linux có tùy chọn tương tự nào không? Tôi đã xem xét xung quanh, nhưng khi tôi tìm kiếm, kết quả duy nhất tôi nhận được là cách cài đặt Linux trên máy Windows hỗ trợ UEFI. Tôi không thể tìm thấy làm thế nào tôi có thể mang tùy chọn này vào máy Linux của mình.


từ khóa tìm kiếm: "grub đáng tin cậy"
Gilles 'SO- ngừng trở thành ác quỷ'

Có khả năng cài đặt shimbộ tải khởi động đã được Microsoft ký, xem ví dụ wiki.debian.org/SecureBoot
phk 17/03/2016

@Gilles là phần mềm đáng tin cậy đáng tin cậy? Thật đáng sợ khi tải xuống một cái gì đó sẽ thay đổi quá trình khởi động của tôi.
Rohan

@Rohan Trusted Grub đáng tin cậy như bất kỳ phần mềm Linux cơ bản nào khác. Nó được duy trì bởi cùng những người như TrouSers, đó là ngăn xếp phần mềm TPM của Linux.
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


3

Để khởi động an toàn hoạt động, Phần cứng của bạn nên hỗ trợ khởi động an toàn và HĐH của bạn nên hỗ trợ khởi động an toàn.

Đối với CTNH, bạn có thể kiểm tra trong menu cài đặt UEFI và bạn cần thêm chứng chỉ / khóa do HĐH cung cấp

Đối với HĐH, bạn có thể kiểm tra hỗ trợ bằng các lệnh sau:

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

Nếu đầu ra của lệnh trên là "1" thì khởi động an toàn được hệ điều hành của bạn hỗ trợ và kích hoạt.


Không có tập tin nào như vậy ...
Rohan

@Rohan, có thể kernel của bạn không được biên dịch với hỗ trợ khởi động an toàn. Kiểm tra đầu ra sau: [root @ secureboot-guest ~] # cat / boot / config-uname -r | grep AN TOÀN Nếu có hỗ trợ khởi động an toàn trong kernel thì bạn sẽ nhận được đầu ra như dưới đây: CONFIG_EFI_SECURE_BOOT_SECURELEVEL = y CONFIG_SECURITY_SECURELEVEL = y
shubham

-rlà một lựa chọn không hợp lệ cho con mèo, theo thiết bị đầu cuối của tôi.
Rohan

oh thực sự đó là một lệnh linux. Đây là lệnh: cat / boot / config- uname -r đặt uname -r bên trong `ở cả hai đầu
shubham

2

Đầu tiên: tạo khóa riêng

openssl req -new -nodes -utf8 -sha256 -ngày 36500 -batch -x509 \
       -subj "/ CN = Khóa hạt nhân" -formform DER -out kernel.der \
       -keyout kernel.key

Hãy thử biên dịch kernel linux với CONFIG_EFI_STUB và nhúng initramfs vào nó như được mô tả ở đây: https://prosauce.org/blog/2015/10/31/boote-linux-seciously , để ký các mô-đun bạn có thể sử dụng tập lệnh tiếp theo:

/ usr / src / linux-headers - $ (uname -r) / scripts / đăng nhập tập tin sha256 kernel.key kernel.der module.ko

Sau đó, tạo tệp với cmdline kernel cho máy tính xách tay của bạn, và tạo một hình ảnh và sao chép nó vào thư mục khởi động efi như thế này:

# objcopy \
  --add-part .osrel = / etc / os-release --change-part-vma .osrel = 0x20000 \
  --add-phần .cmdline = / tmp / cmdline --change-phần-vma .cmdline = 0x30000 \
  --add-phần .linux = / boot / vmlinuz --change-phần-vma .linux = 0x2000000 \
  --add-phần .initrd = / boot / initrd.img --change-part-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

Để cài đặt khóa riêng vào firmware MB, bạn có thể thực hiện các lệnh như thế này:

openssl x509 -inform der -in kernel.der -outform pem -out kernel.pem
cert-to-efi-sig-list -g "$ (uuidgen)" kernel.pem kernel.esl
đăng nhập-efi-sig-list -k KEK.key -c KEK.pem kernel kernel.esl kernel.auth

-1

Khởi động an toàn AFAIK là một tính năng UEFI được phát triển bởi Microsoft và một số công ty khác tạo thành tập đoàn UEFI.

UEFI là một phần cứng được thi hành, tức là cấu hình bo mạch chủ của bạn có thể / không thể cản trở. Nếu bạn sử dụng UEFI hoàn chỉnh thì rất có thể bạn sẽ có thể kích hoạt khởi động an toàn từ chính menu UEFI.

Tuy nhiên, nếu phần sụn của bạn là UEFI với CSM / BIOS thì bạn có thể gặp phải một số rào cản nhất định, chẳng hạn như tùy chọn cho phép khởi động an toàn bị mờ đi và tất cả.


2
Đây không phải là một sản phẩm của Microsoft, đó là một tiêu chuẩn mà Microsoft có thể đã nói rất nhiều trong việc tạo ra nó: en.wikipedia.org/wiki/
mẹo

@phk đã cập nhật câu trả lời tương ứng
sohom154 17/03/2016
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.