рекомендации

понедельник, 24 мая 2021 г.

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

Есть старая поговорка о том, что доступ к загрузке - это все равно, что доступ к паролю 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, нажмите p. Вам будет предложено ввести пароль.


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



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

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

Во-первых, создайте зашифрованный пароль, используя приведенную ниже команду в качестве пользователя root:
# grub2-mkpasswd-pbkdf2
Пример вывода:
Enter password: 
Reenter password: 
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.62C46DE64C6BDE39A440092F521F86E24F486F5F9FE58B38D1CA9DDA27D6DDA6A6F5615836537B31AF2D06D2C5A8C6BE26709269A08E81286357501882016523.FD91A05503B0538FBA4CF9783A13727C43917E63528FF9FFC9917E4780B9C420CEDAE98451CF9256BA77AC144FA6734CA193D1E4183AC71E1F297BD7868FFC4B
Теперь мы зашифровали пароль для защиты загрузчика 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
Добавьте следующие строки. Убедитесь, что вы вставили правильный пароль, который мы создали ранее.
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.62C46DE64C6BDE39A440092F521F86E24F486F5F9FE58B38D1CA9DDA27D6DDA6A6F5615836537B31AF2D06D2C5A8C6BE26709269A08E81286357501882016523.FD91A05503B0538FBA4CF9783A13727C43917E63528FF9FFC9917E4780B9C420CEDAE98451CF9256BA77AC144FA6734CA193D1E4183AC71E1F297BD7868FFC4B

Нажмите 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.


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

1 комментарий: