Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Как защитить паролем загрузчик GRUB

Оригинал: How To Password Protect GRUB Bootloader In Linux
Автор: SK
Дата публикации: 1 апреля 2017 года
Перевод: А. Кривошей
Дата перевода: май 2018 г.

Есть старая поговорка о том, что доступ к загрузке - это все равно, что доступ к паролю root. Я полностью с этим согласен. Любой, кто может получить доступ к загрузчику, также может легко получить доступ к правам root в вашей системе. Здесь описано, как легко сбрасывать или восстанавливать пароль пользователя root через загрузчик Grub. Когда у злоумышленника есть физический доступ к загрузчику, практически нет возможности остановить его. Вот почему нам необходимо защитить паролем Grub, чтобы добавить дополнительный уровень безопасности. Если вы администратор Linux, вы должны знать, как защитить загрузчик.

В этом руководстве описано, как защитить паролем загрузчик Grub в CentOS. Я проверил это руководство на системах CentOS 6.x и CentOS 7.x. В старых дистрибутивах Linux, таких как CentOS 6.x, RHEL 6.x, Grub является загрузчиком по умолчанию. В этом разделе описывается, как установить пароль grub в системах CentOS 6.x.

Перед выполнением каких-либо изменений всегда рекомендуется сделать резервную копию конфигурационного файла GRUB.

$ cp /etc/grub.conf /etc/grub.conf.bak

Во-первых, нам нужно зашифровать пароль. Для этого войдите в систему centos как пользователь root и создайте файл grub, как показано ниже.

$ touch grub

Затем зашифруйте пароль, используя команду md5crypt, как показано ниже.

$ grub-md5-crypt >grub

Введите пароль дважды. Обратите внимание, что на экране вы ничего не увидите. Просто введите пароль и нажмите клавишу ENTER, а затем введите один и тот же пароль и нажмите ENTER.

Пароль зашифрован. Затем нам нужно добавить этот пароль в файл /etc/grub.conf.

Теперь добавим пароль в файл grub.conf. Для этого откройте два файла: grub и /etc/grub.conf.

$ vi /root/grub /etc/grub.conf

Вы увидите зашифрованный пароль, как показано ниже. Поместите курсор перед паролем. Затем нажмите yy, чтобы скопировать пароль.

Password:
Retype password:
$1$Ch0NF/$0XsWw8.EW31vRjm5zsnPb/

Пароль

Затем введите :n (двоеточие n). Это переключит вас на следующий файл /etc/grub.conf.

Переход к следующему файлу

После строки splashimage = (hd0,0) /grub/splash.xpm.gz нажмите p, чтобы вставить зашифрованный пароль из предыдущего файла.

Затем нажмите i и добавьте line password –md5 перед зашифрованным паролем, как показано ниже.

$ password --md5 $1$I2w2s1$EPZtrLn/h2M4qfh48ZL8O0

Здесь, $1$I2w2s1$EPZtrLn/h2M4qfh48ZL8O0 - это зашифрованный пароль grub на моей тестовой системе.

Для получения более подробных сведений см. скриншот ниже.

Вставка зашифрованного пароля

Далее нажмите ESC и введите :wq для сохранения и выхода.

Перезагрузите систему.

Теперь взгляните на меню загрузки Grub. Вы не сможете редактировать меню grub без ввода пароля.

Меню grub

Чтобы изменить меню Grub, нажмите p. Вам будет предложено ввести пароль.

Ввод пароля для редактирования меню grub

Теперь вы сможете внести любые изменения в меню загрузки grub.

меню grub

Защита паролем загрузчика GRUB2

В RHEL 7 и его клонах, таких как CentOS 7, Scientific Linux 7, загрузчиком по умолчанию является Grub2. Защита загрузчика Grub2 паролем отличается от таковой для grub.

Во-первых, создайте зашифрованный пароль, используя приведенную ниже команду в качестве пользователя root:

$ grub2-mkpasswd-pbkdf2

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

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

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

$ cp /etc/grub.d/40_custom /etc/grub.d/40_custom.bak

Затем отредактируйте конфигурационный файл Grub2 в качестве пользователя root:

$ vi /etc/grub.d/40_custom

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

создание пароля для grub2

Нажмите ESC и введите :wq, чтобы сохранить и закрыть файл.

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

Убедитесь, что у вас есть резервная копия главного конфигурационного файла.

$ cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

Обновите конфигурационный файл командой:

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

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

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-327.22.2.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.22.2.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-327.13.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.13.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-123.9.3.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-123.9.3.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-123.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-123.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-e250d471d5594282ba042c653cfa0172
Found initrd image: /boot/initramfs-0-rescue-e250d471d5594282ba042c653cfa0172.img
done

Вы можете проверить правильность установки пароля в файле /etc/grub2.cfg, как показано ниже.

$ cat /etc/grub2.cfg

проверка пароля

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

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

меню grub2

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

ввод пароля

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

редактирование grub2

Теперь вы знаете, как защитить паролем загрузчики Grub и Grub2 в Linux. Как я уже говорил, это добавит дополнительный уровень безопасности вашему серверу Linux.


Другие статьи о загрузчике GRUB и его настройке: