Как защитить записи GRUB паролем
Что такое GRUB и зачем его защищать
GRUB (GRand Unified Bootloader) — загрузчик, который показывает меню выбора ОС и параметры загрузки. Защита GRUB полезна, когда нужно ограничить доступ к редактированию параметров загрузки и к режиму восстановления. Это снижает риск, что непрофессиональные пользователи или злоумышленники с дистанционным доступом изменят параметры и получат права root.
Важно понимать модель угроз: если злоумышленник имеет физический доступ к диску (например, может загрузиться с Live-USB и монтировать разделы), паролем GRUB его не остановить. В таких случаях лучше использовать шифрование диска (LUKS), аппаратную защиту BIOS/UEFI и Secure Boot.
Краткая терминология
- GRUB Legacy — старая версия (использует /boot/grub/menu.lst).
- GRUB 2 — современная версия (использует /boot/grub/grub.cfg и скрипты в /etc/grub.d).
- md5crypt — старый метод генерации MD5-хеша пароля для GRUB Legacy.
- grub-mkpasswd-pbkdf2 — утилита для генерации стойкого хеша пароля (GRUB 2).
Преимущества и ограничения защиты GRUB
- Преимущества: блокировка редактирования записей, защита режима восстановления и отдельных записей, простая реализация.
- Ограничения: не защищает от физического доступа к диску; уязвима при слабых паролях; разные версии GRUB требуют разных действий.
Пошаговая инструкция для GRUB Legacy (menu.lst)
Откройте терминал и запустите GRUB в режиме командной строки:
sudo grubПодсказка изменится на
grub>.На приглашении GRUB выполните генерацию MD5-хеша пароля:
grub> md5cryptВведите пароль при запросе. Команда вернёт MD5-хеш. Скопируйте или запишите его в надёжном месте.
Сделайте резервную копию файла конфигурации перед правкой:
sudo cp /boot/grub/menu.lst /boot/grub/menu.lst.bakОтредактируйте
/boot/grub/menu.lstлюбым редактором (например, nano или vi). Добавьте строку с паролем перед списком записей (перед строкойBEGIN AUTOMAGIC KERNEL LISTили любой первой записью меню):password --md5 <вставьте_здесь_md5_хеш>Чтобы запретить интерактивное редактирование записей (нажатие
e), достаточно сохранить изменения. Администратор сможет войти в режим редактирования, нажавpи ввёдши пароль.Чтобы заблокировать конкретную запись меню, вставьте строку
lockсразу после строки сtitleдля этой записи:title Ubuntu, kernel 4.x lock root (hd0,1) kernel /vmlinuz root=/dev/sda1 ro
- Чтобы автоматически блокировать записи режима восстановления, измените
lockalternative=falseнаlockalternative=trueв том же файле. Это защитит будущие записи восстановления при обновлении ядра.
Протестируйте изменения, перезагрузив систему и попытавшись отредактировать или загрузить заблокированную запись.
Пошаговая инструкция для GRUB 2 (современные системы)
GRUB 2 использует другой подход и более стойкие хеши. Рекомендуемый метод:
Сгенерируйте PBKDF2-хеш пароля:
sudo grub-mkpasswd-pbkdf2Введите пароль. Утилита вернёт строку вида
PBKDF2 hash of your password is grub.pbkdf2.sha512.....— скопируйте часть хеша.Откройте или создайте файл
/etc/grub.d/40_customи добавьте в начало:set superusers="admin" password_pbkdf2 admin <вставьте_здесь_pbkdf2_хеш>Замените
adminна желаемое имя пользователя.Чтобы ограничить загрузку отдельных записей, отредактируйте нужные блоки
menuentryв/etc/grub.d/или в генерируемом/boot/grub/grub.cfg, добавив опцию--users adminв определение записи:menuentry 'Ubuntu, with Linux 5.x' --users admin { ... }При таком флаге GRUB потребует ввод пользователя и пароля для запуска этой записи.
Примените изменения:
sudo update-grub
Примечание: структура и синтаксис меню зависят от дистрибутива и версии GRUB 2. Проверяйте итоговый /boot/grub/grub.cfg.
Важные рекомендации
- Всегда делайте резервные копии файлов конфигурации (
menu.lst,/etc/grub.d/*). - Используйте надёжные пароли (длина ≥ 12, фраза-пароль лучше). Для GRUB 2 предпочтительны PBKDF2-хеши.
- Если система использует UEFI и Secure Boot, проверьте совместимость изменений.
- Не полагайтесь только на GRUB: комбинируйте с шифрованием диска и паролем BIOS/UEFI.
Как восстановиться, если вы заблокировали себя
Загрузитесь с Live-USB (тот же дистрибутив или совместимый).
Смонтируйте корневой раздел и раздел /boot (если отдельный):
sudo mount /dev/sdXN /mnt sudo mount /dev/sdYM /mnt/boot # если /boot отдельный sudo chroot /mnt # при необходимостиОтредактируйте
/boot/grub/menu.lst(GRUB Legacy) или/etc/grub.d/40_customи удалите/измените строки с паролями.При GRUB 2 выполните
sudo update-grubиз chroot перед перезагрузкой.Если у вас нет доступа к Live-USB, можно восстановить файл конфигурации из резервной копии
/boot/grub/menu.lst.bak.
Important: при работе в chroot проверяйте, что вы монтируете и редактируете правильные устройства, чтобы не повредить загрузочную запись.
Рольные чек-листы
Администратор сервера:
- Сделать резервные копии конфигураций.
- Использовать grub-mkpasswd-pbkdf2.
- Защитить режим восстановления и административные записи.
- Документировать учётную запись суперпользователя GRUB.
Домашний пользователь:
- Сделать резервную копию
/boot/grub/menu.lstили/etc/grub.d/40_custom. - Защитить записи восстановления.
- Рассмотреть шифрование диска (LUKS) и пароль BIOS/UEFI.
Модель решений и когда это не помогает
- Если угроза — дистанционный злоумышленник, GRUB может помочь только при локальном доступе к загрузочному меню.
- Если угроза — физический доступ к диску, используйте полное шифрование диска.
- GRUB не защищает саму ОС после загрузки; используйте сильные пароли пользователей и политику привилегий.
Матрица рисков и смягчения
- Риск: потеря доступа из-за неправильно настроенного пароля. Смягчение: резервная копия и Live-USB.
- Риск: атака с физическим доступом. Смягчение: шифрование диска и пароль BIOS/UEFI.
- Риск: слабый хеш (MD5). Смягчение: использовать PBKDF2 в GRUB 2.
Совместимость и советы по миграции
- GRUB Legacy использует
menu.lstи MD5-хеши. Многие современные дистрибутивы перешли на GRUB 2. - При переходе на GRUB 2 перейдите от md5crypt к grub-mkpasswd-pbkdf2 для лучшей стойкости.
- Тестируйте изменения в виртуальной машине или на тестовой машине перед применением в продакшене.
Краткое резюме
Защита записей GRUB — эффективный и недорогой способ ограничить доступ к параметрам загрузки и режиму восстановления. Для современных систем используйте GRUB 2 и PBKDF2-хешы. Всегда делайте резервные копии и имейте план восстановления через Live-USB.
Дополнительно
- Социальный превью: “Как защитить записи GRUB паролем — пошагово для GRUB Legacy и GRUB 2”.
- Короткое объявление для команды (100–200 слов): Защитите загрузочное меню сервера: сгенерируйте стойкий хеш пароля (grub-mkpasswd-pbkdf2), добавьте set superusers и password_pbkdf2 в /etc/grub.d/40_custom, пометьте критичные записи параметром –users и выполните update-grub. Перед изменениями создайте резервную копию /boot/grub и подготовьте Live-USB на случай восстановления.
Картинка: пример защищённого меню GRUB с подсветкой заблокированных записей.
Критерии приёмки
- Конфигурация содержит строку с паролем и/или set superusers / password_pbkdf2.
- Заблокированные записи требуют запроса логина/пароля при попытке загрузки.
- Существуют резервные копии исходных конфигураций и инструкция по восстановлению.
1‑строчный словарь
- GRUB: загрузчик, отвечающий за выбор ОС.
- PBKDF2: стойкий алгоритм получения хеша пароля.
Если у вас есть конкретный дистрибутив или версия GRUB, укажите их — я помогу подготовить точный набор команд и проверочных шагов.
Похожие материалы
Сброс Chromebook: Powerwash и полное восстановление
MOV в MP4 на Mac — быстрый способ
Микрофон Android не работает — как починить
VLC не воспроизводит видео в Windows 11 — как исправить
Как узнать название удалённого видео на YouTube