Как защитить паролем загрузчик GRUB в Linux
Безопасный загрузчик Grub в CentOS 6 и 7
Возможно, вы слышали об этой старой поговорке — "доступ к загрузке==доступ к root". Это действительно правда! Любой, кто имеет доступ к загрузчику, может легко получить root-доступ к вашей системе. Мы уже публиковали руководство, в котором описывается, как сбросить пароль root в Linux. Из этого туториала вы узнаете, как легко сбросить или восстановить пароль пользователя root через загрузчик Grub. Если у кого-то есть физический доступ и/или доступ к загрузчику к машине, остановить его невозможно. Вот почему нам нужно добавить дополнительную безопасность, защитив загрузчик Grub надежным паролем. Если вы администратор Linux, вы должны знать, как защитить свой загрузчик. В этом руководстве объясняется, как защитить загрузчик Grub паролем в CentOS. Я протестировал это руководство на системах CentOS 6.x и CentOS 7.x, и оно работало отлично, как описано ниже.
Защита паролем загрузчика GRUB в RHEL 6.x, CentOS 6.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
, как показано ниже. Все команды, приведенные ниже, должны выполняться от имени пользователя root
.
touch grub
Затем зашифруйте пароль с помощью команды "md5crypt
". Для этого выполните следующую команду из терминала и нажмите клавишу ENTER.
grub-md5-crypt >grub
Введите пароль дважды. Обратите внимание, что при вводе пароля на экране вы ничего не увидите. Просто введите пароль в любом случае и нажмите ENTER, затем введите тот же пароль еще раз и нажмите ENTER.
Пароль был зашифрован. Далее нам нужно добавить этот пароль в файл /etc/grub.conf
.
Теперь давайте добавим пароль в файл grub.conf
. Для этого откройте два файла grub и файлы /etc/grub.conf
.
vi /root/grub /etc/grub.conf
Приведенная выше команда откроет оба файла в редакторе vi
.
Вы увидите зашифрованный пароль, как показано ниже. Переместите курсор и поместите его перед паролем. Затем введите yy
, чтобы получить (скопировать) пароль.
Password:
Retype password:
$1$Ch0NF/$0XsWw8.EW31vRjm5zsnPb/
Скопируйте пароль Grub
Затем введите :n (двоеточие n). Это переключит вас на следующий файл, например /etc/grub.conf
.
Перейти к следующему файлу
После строки splashimage=(hd0,0)/grub/splash.xpm.gz
нажмите p
, чтобы вставьте зашифрованный пароль из предыдущего файла.
Затем нажмите i
и добавьте строку password --md5
перед зашифрованным паролем, как показано ниже.
password --md5 $1$I2w2s1$EPZtrLn/h2M4qfh48ZL8O0
Для получения дополнительных разъяснений обратитесь к следующему снимку экрана.
Защита паролем загрузчика Grub в CentOS 6
Здесь $1$I2w2s1$EPZtrLn/h2M4qfh48ZL8O0
— это зашифрованный пароль grub моей системы CentOS 6. Замените его на свой.
Затем нажмите ESC и введите :wq
, чтобы сохранить файл и закрыть его.
Перезагрузите систему.
С этого момента вы не сможете редактировать меню grub без предварительного ввода пароля.
Меню Grub CentOS 6
Чтобы отредактировать меню Grub, нажмите p
. Вам будет предложено ввести пароль. Просто введите пароль, чтобы разблокировать загрузочное меню Grub.
Разблокируйте загрузочное меню Grub
Теперь вы можете внести любые изменения в меню загрузки grub.
Меню Grub разблокировано
Защита паролем загрузчика GRUB2 в RHEL 7.x, CentOS 7.x
В 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, т.е. < Strong>/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
Установить пароль для Grub
Нажмите ESC и введите :wq
, чтобы сохранить и закрыть файл.
Теперь пришло время обновить основной файл конфигурации Grub2.
Убедитесь, что у вас есть резервная копия основного файла конфигурации Grub2.
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
Обновите файл конфигурации загрузчика Grub2 с помощью команды:
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
У нас все готово. Перезагрузите систему, чтобы проверить, защищен ли загрузчик паролем.
После перезагрузки системы попробуйте отредактировать загрузчик Grub2. Для этого нажмите e
.
Редактировать загрузчик Grub2
Вам будет предложено ввести имя пользователя и пароль, которые мы определили на предыдущем шаге.
Введите пароль, чтобы разблокировать Grub2
Если вы ввели правильное имя пользователя и пароль, вы сможете редактировать загрузчик Grub2.
Grub2 разблокирован
Теперь вы знаете, как защитить паролем загрузчик Grub и Grub2 в Linux. Установка пароля Grub может не полностью защитить вашу систему. Тем не менее, это определенно добавит дополнительный уровень безопасности вашим серверам CentOS Linux.