Библиотека сайта rus-linux.net
Как защитить паролем загрузчик GRUB
Оригинал: How To Password Protect GRUB Bootloader In Linux
Автор: SK
Дата публикации: 1 апреля 2017 года
Перевод: А. Кривошей
Дата перевода: май 2018 г.
Есть старая поговорка о том, что доступ к загрузке - это все равно, что доступ к паролю root.
Я полностью с этим согласен. Любой, кто может получить доступ к загрузчику, также может легко
получить доступ к правам root в вашей системе.
В этом руководстве описано, как защитить паролем загрузчик 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
Пример вывода:
Теперь мы зашифровали пароль для защиты загрузчика 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
Добавьте следующие строки. Убедитесь, что вы вставили правильный пароль, который мы создали ранее.
Нажмите 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.
Другие статьи о загрузчике GRUB и его настройке:
- GRUB 2: исцеление системного загрузчика
- Восстановление загрузчика Grub в Ubuntu Linux 16.04 /15.10 / 15.04
- Начальный загрузчик GRUB 2 - полное руководство
- Настройка и восстановление загрузчика Grub
- Менеджер загрузки GNU GRUB