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