23.06.2025

Как установить на Grub пароль?

Достаточно часто бывает необходимо на более низком уровне защитить устройство от различных модификаций и изменений. Будь-то загрузка образов восстановления, которые от лица root могут работать с файловой системой хоста или же редактирование опций ядра, при загрузке!

В данном материале мы рассмотрим одно из решений данной проблемы, такое как установка пароля на Grub!

Что такое Grub?

Grub – это программа, которая получает управление первой после загрузки BIOS/UEFI и позволяет определить образ и параметры, которые необходимо запустить далее. К примеру, такое решение полезно, когда на устройстве две и более операционных систем или образов, которые могут позволить провести работы над ОС по восстановлению.

Скриншот №1 — Список способов загрузки

Загрузка bootloader зависит от того, какой диск с таблицей разделов используется для его хранения. К примеру, с таблицы разделов MBR порядок загрузки следующий:

BIOS → Выбирает первые 512 байт загрузочной области и передает управление (Stage 1) → До загружается конфигурационные файлы bootloader’a (Stage 2) → Загрузка ядра

С GPT разделов (относится чаще к UEFI) загрузка происходит иначе:

UEFI → Поиск по EFI-разделу (обычно /boot/efi) → Непосредственная загрузка bootloader.efi → Загрузка ядра

Нарушитель может эксплуатировать особенности и возможности работы данного решения для получения доступа в обход мер защиты! Как реализацию меры противодействия рассмотрим установку пароля на grub, который закроет часть уязвимостей на своем уровне.

Как установить пароль на Grub?

Аутентификационные данные для Grub хранятся в файле директории /etc/grub.d/ и представляют собой совокупность логина и хешированного пароля. Значит для внесения нового необходимо создать в файле запись. Предварительно, подготовим пароль с утилитой grub-mkpasswd-pbkdf2:

grub-mkpasswd-pbkdf2 | sudo tee -a /etc/grub.d/40_custom

Скриншот №2 — Создадим пароль для Grub

Перейдем в файл /etc/grub.d/ и удалим лишние строки, которые остались в следствии перенаправления вывода, а так же добавим пару строк о пользователе. В итоге получим строку следующего вида в конце конфигурационного файла:

set superusers=“username”

password_pbkdf2 username grub.pbkdf2.sha512.<длинный_хэш>

Скриншот №3 — Добавим аутентификацию

Поясним каждый из пунктов в данном контексте:

После чего выйдем и сохраним файл, а так же скомпилируем из него конфиг для загрузчика:

sudo update-grub

Скриншот №4 — Обновим конфиг

Перезапустим устройство и дождемся загрузчика, после чего выберем один из образов:

Скриншот №5 — Проверим возможность загрузки

Отлично, парольная защита работает и не даст загрузится в ОС, не зная пароля от загрузчика. При нехватке собственных мощностей можно воспользоваться облачными серверами от Serverspace, для этого перейдем к созданию сервера, на любой из двух платформ vStack cloud или же VMware cloud. Нажмем на кнопку Создать сервер и выберем конфигурацию, подходящую под наши задачи, затем нажмем кнопку Создать:

Скриншот №6 — Создание сервера