Comments 10
Эм... BIOS? MBR? Вы из какого года? Давно уже везде UEFI и GPT.
И в таком варианте гораздо больше безопасности, если вообще выкинуть загрузчик, ядро собрать вместе с initrd в один файл, подписать это всё своим сертификатом, сертификат прописать в UEFI, и туда же прописать запуск нашего ядра. И, конечно, не забыть про пароль на UEFI.
Предполагается физический доступ у злоумышленника, но пароль на загрузчик не имеет смысла пока диски нешифрованы, а в биосе не залочена загрузка. Полнодисковое шифрование с загрузчиком решает все проблемы.
И это все?
А как же очень удобная опция --unrestricted для menuentry, которая позволяет загрузить выбранный пункт, но для изменения параметров загрузки потребует пароль.
Еще в core.img можно интегрировать свой ключ, и тогда grub будет загружать только подписанные вами же ядра и initramfs. Смотрите опцию --pubkey у grub-install.
Или воспользоваться secure boot, прописать свои ключи, да и вообще отказаться от загрузчика. Или подписать grub своим сертификатом, чтобы uefi проверял подпись загрузчика, а загрузчик - подписи ядер и initramfs
Лучше расскажите как 2fa к загрузке прикрутить.
А зачем вообще сейчас нужен GRUB, Lilo... когда одна ОС установлена (например, на сервере)?
Обеспечение безопасности загрузчика GRUB в Linux