Пароль на GRUB: защита от несанкционированной загрузки
Пароль на GRUB ставится в три шага: генерируешь PBKDF2-хеш командой grub-mkpasswd-pbkdf2, прописываешь его в /etc/grub.d/00_header (или 40_custom) через set superusers и password_pbkdf2, а затем пересобираешь конфиг: grub-mkconfig -o /boot/grub/grub.cfg. Затем загрузчик попросит логин и пароль, прежде чем загрузить систему или открыть редактирование пунктов меню. Вся настройка занимает минут пять и не требует дополнительных пакетов, всё уже есть в grub.
Зачем нужен пароль на GRUB
GRUB: первая программа, которая запускается на твоей машине. И именно в меню загрузчика проще всего навредить системе: нажать e и дописать в параметры ядра init=/bin/bash, чтобы получить root без пароля, или загрузить чужое ядро. Пароль закрывает эту дверь: без него нельзя ни загрузить защищённый пункт, ни открыть консоль, ни отредактировать запись.
Что именно защищает пароль
- изменение параметров загрузки прямо из меню (клавиша
e); - вход в командную строку GRUB (клавиша
c); - загрузку пунктов меню, если они не помечены
--unrestricted; - запуск чужих пунктов, добавленных через
40_custom.
Чего пароль GRUB не защищает
Тут важно говорить честно. Пароль загрузчика. Это замок на двери, а не сейф. Он не шифрует данные на диске: вытащи диск, подключи к другой машине, и все файлы доступны. Для этого нужен LUKS. Он не спасает от сброса NVRAM и не мешает загрузиться с флешки: человек с физическим доступом обойдёт его без труда. Проще говоря, пароль GRUB отпугивает любопытных и случайных людей, а не профессионала с отвёрткой. Про границы шифрования и TPM читай в статье про TPM2 в Arch, а про проверку подписей, в материале про Secure Boot через sbctl. Общие принципы защиты системы описаны на странице Security в ArchWiki.
Как создать хеш пароля
GRUB не хранит пароль в открытом виде, только PBKDF2-хеш. Генерируется он одной командой:
grub-mkpasswd-pbkdf2
Программа попросит ввести пароль дважды и выведет строку вида:
grub.pbkdf2.sha512.10000.9D2B4A...B3F2
Этот хеш и нужно вставить в конфиг. Задать пароль в открытом виде можно и командой password, но так делать не стоит: любой, кто прочитает /etc/grub.d, узнает пароль.
Куда вставить хеш
Открой /etc/grub.d/00_header и добавь в конец:
set superusers="admin"
password_pbkdf2 admin grub.pbkdf2.sha512.10000.9D2B4A...B3F2
admin: логин суперпользователя, можешь назвать его как угодно. Подойдёт и /etc/grub.d/40_custom: там правки выглядят аккуратнее, особенно если ты уже добавлял туда свои пункты, например для оформления GRUB. Оба файла переживают пересборку конфига, в отличие от /boot/grub/grub.cfg, который генерируется заново.
Как защитить все пункты меню
Механика простая: как только задан superusers, все пункты меню требуют логин, кроме тех, что помечены флагом --unrestricted. Поэтому после добавления строк выше пересобери конфиг:
grub-mkconfig -o /boot/grub/grub.cfg
Проверяем результат
Перезагрузись. GRUB покажет меню, но при попытке выбрать пункт или нажать e попросит логин и пароль. Вводишь admin и свой пароль, и всё работает. Если пароль неверный, пункт останется locked.
Нюанс с Windows и os-prober
Пункты, найденные через os-prober (например, Windows), тоже попадают под защиту. Если после пересборки Windows пропал из меню, загляни в статью про dualboot и пропавший Windows из GRUB.
Как защитить только редактирование и консоль
Не всем нужен пароль на каждую загрузку. Часто хочется, чтобы система грузилась сама, а вот e и c были закрыты. Для этого пункты меню помечают --unrestricted: они загружаются без пароля, но редактирование и консоль всё равно требуют суперпользователя.
Свои пункты в 40_custom
Если пункт добавляешь сам, флаг ставится прямо в объявлении:
menuentry "Мой Arch" --unrestricted {
...
}
Сгенерированные пункты
Со стандартными пунктами из 10_linux сложнее: grub-mkconfig генерирует их без --unrestricted. Вариант: отредактировать /etc/grub.d/10_linux и добавить флаг в строку menuentry. Учти: при обновлении пакета grub правка слетит, и её придётся повторять. Поэтому многие выбирают простой путь: пароль на всё меню.
Что делать, если забыл пароль GRUB
Забыл пароль: не паникуй. Система не заблокирована, просто загрузчик не пускает. Восстановление занимает несколько минут.
Восстановление через live-USB
- Загрузись с установочной флешки Arch.
- Смонтируй корневой раздел:
mount /dev/sdX2 /mnt(подставь свой). - Войди в систему:
arch-chroot /mnt. - Открой
/etc/grub.d/00_header(или40_custom) и удали строкиset superusersиpassword_pbkdf2. - Пересобери конфиг:
grub-mkconfig -o /boot/grub/grub.cfg. - Перезагрузись: пароль снят, ставь новый по инструкции выше.
Если GRUB вообще сломался и не доходит до меню, поможет материал про переустановку GRUB после поломки. А если /boot зашифрован через GRUB_ENABLE_CRYPTODISK, сначала разблокируй раздел, иначе grub-mkconfig не увидит ядра.
Частые вопросы
Пароль GRUB защищает данные на диске? Нет. Это аутентификация в загрузчике, а не шифрование. Данные защищает только LUKS.
Можно ли обойти пароль GRUB? Да, при физическом доступе: сброс NVRAM, загрузка с флешки, подключение диска к другой машине. Это защита от неподготовленных людей, а не от злоумышленника с инструментами.
Пароль будет спрашиваться при каждой загрузке?
Да, если защищены все пункты меню. Чтобы грузиться без пароля, пометь пункты --unrestricted.
Пароль GRUB и Secure Boot, одно и то же? Нет. Secure Boot проверяет подписи загружаемых файлов, а пароль GRUB, вход в меню загрузчика. Разница разобрана в статье про Secure Boot и sbctl.
Что делать, если забыл пароль?
Загрузиться с live-USB, сделать arch-chroot и убрать строки пароля из /etc/grub.d, затем пересобрать конфиг.
Заключение
Пароль на GRUB, быстрая и честная защита загрузчика: ставится за пять минут, не требует пакетов и закрывает самый очевидный путь к системе, редактирование параметров загрузки. Но помни границы: это не шифрование диска и не защита от физического доступа. Для данных: LUKS, для проверки целостности, Secure Boot и TPM. Если ты только поставил Arch, загляни в статью про первый час после установки, там есть и другие полезные настройки.
Полезные ресурсы
Не получилось? Поможем настроить
Задай вопрос в чате — отвечаем быстро, по делу и без воды.

Комментарии