Защищаем загрузчик GRUB2 в Ubuntu

В этой статье я опишу метод защиты вашего загрузчика GRUB2 на Debian подобных дистрибутивах. В качестве подопытного буду использовать Lubuntu 18.04 LTS.

Создаем пароль для GRUB2

Для начала давайте создадим зашифрованный пароль. Для этого будем использовать приведенную ниже команду:

sudo grub-mkpasswd-pbkdf2

Пример вывода:

Введите пароль: 
Повторно введите пароль: 
Хэш PBKDF2 вашего пароля: grub.pbkdf2.sha512.10000.3B9AEC3327436741332ED29B7C5213769842127F94E5031FD63F35CD921CEAB3A7078A5F45F51C6C4C30095958C2ADEB9EBC6193DF9CC9531CAA725A9E185AF0.D805559D1ABDD2C8E4C1791820E126E862B7122330A0789B75242755A967EE58F3A2BF5AF599B72984CA8A398BCAFB4EBBFBB52135811E5DDF851DFD427A9A52

Этой командой мы зашифровали пароль для защиты загрузчика Grub2.

Настройка защиты для GRUB2

Как вы уже знаете, не рекомендуется редактировать и вставлять только что сгенерированный пароль непосредственно в главный конфигурационный файл grub2. Вместо этого мы должны добавить пароль в пользовательский файл меню Grub2, который находится в каталоге /etc/grub.d/, и, наконец, обновить главный конфигурационный файл Grub2, то есть /etc/grub.cfg.

Создадим копию пользовательского файла меню Grub2:

sudo cp /etc/grub.d/40_custom /etc/grub.d/40_custom.save

Редактируем конфигурационный файл Grub2

Затем отредактируйте конфигурационный файл Grub2:

sudo nano /etc/grub.d/40_custom

Добавьте следующие строки. Убедитесь, что вы вставили правильный пароль, который мы создали ранее.

set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.3B9AEC3327436741332ED29B7C5213769842127F94E5031FD63F35CD921CEAB3A7078A5F45F51C6C4C30095958C2ADEB9EBC6193DF9CC9531CAA725A9E185AF0.D805559D1ABDD2C8E4C1791820E126E862B7122330A0789B75242755A967EE58F3A2BF5AF599B72984CA8A398BCAFB4EBBFBB52135811E5DDF851DFD427A9A52

Обновляем конфигурационный файл Grub2

Теперь пришло время обновить главный конфигурационный файл Grub2 командой:

grub-mkconfig -o /boot/grub/grub.cfg

Пример вывода:

Генерируется файл настройки grub …
Предупреждение: Назначение GRUB_TIMEOUT ненулевого значения при заданной GRUB_HIDDEN_TIMEOUT больше не поддерживается.
Найден образ linux: /boot/vmlinuz-4.15.0-20-generic
Найден образ initrd: /boot/initrd.img-4.15.0-20-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
завершено

Можно также проверить правильность установки пароля в файле /etc/grub2.cfg.

sudo cat /boot/grub/grub.cfg

Все настроено. Перезагрузите свою систему, чтобы проверить, защищен ли загрузчик.

После перезагрузки системы попробуйте отредактировать загрузчик Grub2. Для этого нажмите e при загрузки системы.

Вам будет предложено ввести имя пользователя и пароль, которые мы задали на предыдущем шаге.

Если вы введете правильное имя пользователя и пароль, то сможете редактировать загрузчик Grub2.

Теперь вы знаете, как защитить паролем загрузчик Grub2 в Debian подобных системах. Эти знания добавят дополнительный уровень безопасности вашей операционной системе Linux.