uz
KA
июня 23, 2025
Обновлено июня 23, 2025

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

Linux

Достаточно часто бывает необходимо на более низком уровне защитить устройство от различных модификаций и изменений. Будь-то загрузка образов восстановления, которые от лица 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
Создадим пароль для Grub
Скриншот №2 — Создадим пароль для Grub

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

set superusers=“username”

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

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

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

  • set superusers — устанавливает имя пользователя, который будет считаться суперпользователем в контексте GRUB;
  • username — это имя пользователя, для которого вы задаёте пароль;
  • password_pbkdf2 — указывает, что для проверки пароля нужно использовать PBKDF2-хэш;
  • username — имя пользователя, для которого задан пароль;
  • grub.pbkdf2.sha512.<длинный_хэш> — это хэш пароля, сгенерированный с помощью grub-mkpasswd-pbkdf2. GRUB сравнит введённый пользователем пароль с этим хэшем.

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

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

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

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

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

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

Оценка:
5 из 5
Аverage rating : 5
Оценок: 1
100029 Ташкент Улица Якка Чинар, дом 2/1
ООО «ИТГЛОБАЛКОМ ЛАБС»

Вам также может быть интересно...