如何在Linux中保护GRUB引导加载程序

时间:2020-03-21 11:46:31  来源:igfitidea点击:

本教程解决了如何在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/h2M4qfh48ZL8O0
XsWw8.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服务器添加另外的安全层。