Есть ли способ включить безопасную загрузку в Linux?

8

Так же, как Windows имеет безопасную загрузку, которая предотвращает запуск любого внешнего кода загрузчика ОС при загрузке, есть ли у Linux аналогичная опция для себя? Я осмотрелся вокруг, но когда я ищу, единственные результаты, которые я получаю, это как установить Linux на машину с UEFI-Windows. Я не могу найти, как я могу перенести эту опцию на мою машину Linux.

Рохан
источник
Ключевое слово для поиска: "доверяю личинке"
Жиль "ТАК - перестань быть злым"
Существует возможность установки shimзагрузчика, подписанного Microsoft, см., Например, wiki.debian.org/SecureBoot
phk
@ Жиль - это доверяемое программное обеспечение? Страшно загрузить что-то, что изменит мой процесс загрузки.
Рохан
@Rohan Trusted Grub столь же надежен, как и любое другое фундаментальное программное обеспечение Linux. Он поддерживается теми же людьми, что и TrouSers, который является программным стеком Linux TPM.
Жиль "ТАК - перестать быть злым"

Ответы:

3

Для безопасной загрузки ваше Оборудование должно поддерживать безопасную загрузку, а ваша ОС должна поддерживать безопасную загрузку.

Для HW вы можете проверить в меню настроек UEFI и вам нужно добавить сертификаты / ключи, предоставляемые ОС

Для ОС вы можете проверить поддержку с помощью следующих команд:

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

Если вывод вышеуказанной команды равен «1», то безопасная загрузка поддерживается и активируется вашей ОС.

Shubham
источник
Там нет такого файла ...
Рохан
@ Rohan, возможно, ваше ядро ​​не скомпилировано с поддержкой безопасной загрузки. Проверьте вывод следующего: [root @ secureboot-guest ~] # cat / boot / config-uname -r | grep SECURE Если в ядре есть поддержка безопасной загрузки, вы получите вывод, как показано ниже: CONFIG_EFI_SECURE_BOOT_SECURELEVEL = y CONFIG_SECURITY_SECURELEVEL = y
shubham
-rэто неверный параметр для кошки, согласно моему терминалу.
Рохан
о, на самом деле это была команда Linux. Это команда: cat / boot / config - uname -r положить uname -r внутри `на обоих концах
shubham
2

Прежде всего: сгенерируйте собственный ключ

openssl req -new -nodes -utf8 -sha256 -days 36500 -batch -x509 \
       -subj "/ CN = Kernel Key" -outform DER -out kernel.der \
       -keyout kernel.key

Попробуйте скомпилировать ядро ​​Linux с помощью CONFIG_EFI_STUB и внедрить в него 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

Затем создайте файл с ядром cmdline для вашего ноутбука \ рабочей станции, создайте один образ и скопируйте его в загрузочный каталог 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, вы можете сделать cmds следующим образом:

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
user1024
источник
-1

Безопасная загрузка AFAIK - это функция UEFI, разработанная Microsoft и некоторыми другими компаниями, образующими консорциум UEFI.

UEFI частично аппаратно реализован, т. Е. Конфигурация вашей материнской платы может / не может помешать. Если вы используете полный UEFI, то есть вероятность, что вы сможете включить безопасную загрузку из самого меню UEFI.

Однако, если ваша прошивка имеет UEFI с CSM / BIOS, то вы можете столкнуться с определенными препятствиями, такими как опция, включающая безопасную загрузку серого цвета и все такое .

sohom154
источник
2
Это не продукт Microsoft, это стандарт, который Microsoft могла бы сказать о своем создании: en.wikipedia.org/wiki/…
phk
@phk обновил ответ соответственно
sohom154