如何在Linux中保护GRUB引导加载程序
本教程解决了如何在CentOS中使用密码保护GRUB引导加载程序。
我在CentOS 6.x和CentOS 7.x系统上测试了本教程,并正如如下所述的正常工作。
密码保护GRUB引导加载程序
在较旧的Linux发行版,如CentOS 6.x,RHEL 6.x,GRUB是默认引导加载程序。
本节介绍如何在CentOS 6.x系统中设置GRUB密码。
在执行任何更改之前,始终建议备份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键入yy yank(复制)密码。
Password: Retype password: $Ch0NF/password --md5 $I2w2s1$EPZtrLn/h2M4qfh48ZL8O0XsWw8.EW31vRjm5zsnPb/
然后,键入:n(冒号n)。
这将使我们切换到下一个文件:/etc/grub.conf。
在splashimage =(hd0,0)/grub/splash.xpm.gz行之后,按p从上一个文件粘贴加密密码。
然后,按i并在加密密码之前添加行密码--md5,如下所示。
# grub2-mkpasswd-pbkdf2
其中$1 $i2w2s1 $epztrln/h2m4qfh48zl8o0是我的测试系统加密的grub密码。
有关更多澄清,请参阅以下屏幕截图。
然后,按ESC和类型:WQ保存和退出。
重新启动系统。
现在,查看GRUB启动菜单。
我们无法先编辑GRUB菜单而不首先输入密码。
要编辑GRUB菜单,请按P.系统会要求我们输入密码。
只需输入密码即可解锁GRUB启动菜单。
现在,我们可以在GRUB启动菜单中进行任何更改。
密码保护grub2引导加载程序
在RHEL 7及其克隆等CentOS 7中,科学Linux 7,Grub2是默认引导加载程序。
使用密码保护GRUB2引导加载程序与GRUB引导加载程序不同。
首先,使用以下命令作为root用户创建加密密码:
Enter password: Reenter password: PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.62C46DE64C6BDE39A440092F521F86E24F486F5F9FE58B38D1CA9DDA27D6DDA6A6F5615836537B31AF2D06D2C5A8C6BE26709269A08E81286357501882015523.FD91A05503B0538FBA4CF9783A13727C43917E63528FF9FFC9917E4780B9C420CEDAE98451CF9256BA77AC144FA6734CA193D1E4183AC71E1F297BD7868FFC4B
示例输出将是:
# cp /etc/grub.d/40_custom /etc/grub.d/40_custom.bak
我们刚刚创建了一种加密密码来保护Grub2引导加载程序。
正如我们所知道的那样,建议不要直接在GRUB2主配置文件中编辑和粘贴新生成的密码。
相反,我们应该在/etc/grub.d/目录中找到的自定义grub2菜单文件中添加密码,最后更新grub2主配置文件:/etc/grub.cfg。
制作自定义Grub2菜单文件的副本:
# vi /etc/grub.d/40_custom
然后,将自定义Grub2菜单配置文件作为root用户编辑:
set superusers="root" password_pbkdf2 root grub.pbkdf2.sha512.10000.62C46DE64C6BDE39A440092F521F86E24F486F5F9FE58B38D1CA9DDA27D6DDA6A6F5615836537B31AF2D06D2C5A8C6BE26709269A08E81286357501882015523.FD91A05503B0538FBA4CF9783A13727C43917E63528FF9FFC9917E4780B9C420CEDAE98451CF9256BA77AC144FA6734CA193D1E4183AC71E1F297BD7868FFC4B
添加以下行。
确保我们粘贴了我们之前生成的正确密码。
# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
按ESC并键入:WQ保存并关闭文件。
现在,是时候更新GRUB2主配置文件了。
确保我们有Grub2主配置文件的备份副本。
# grub2-mkconfig -o /boot/grub2/grub.cfg
使用命令更新GRUB2 Bootloader配置文件:
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
示例输出:
# cat /etc/grub2.cfg
我们可以验证是否在/etc/grub2.cfg文件中正确设置了密码,如下所示。
##代码##我们都设置了。
重新启动系统以验证引导加载程序是否已使用密码保证。
重新启动系统后,尝试编辑GRUB2引导加载程序。
为此,按e。
我们将被要求输入我们在较早步骤中定义的用户名和密码。
如果输入正确的用户名和密码,我们将能够编辑GRUB2引导加载程序。
我们现在知道如何在Linux中保护GRUB和GRUB2引导加载程序。
就像我已经说过的那样,这将为Linux服务器添加另外的安全层。