Bootstrap

Linux下grub2引导菜单加密

1. 为什么要进行加密

1.生产环境中经常需要为GRUB引导菜单设置密码,通过GRUB密码阻止非授权用户进入单用户模式,从而增强系统安全性。

2.防止误触带来一些潜在危险性的操作

2. 什么是grub2引导菜单

grub2引导菜单就是启动linux后出现的内核版本信息页面,这个就是grub2引导菜单

image-20230831171748573

3.grub2和grub的关系

grub:是一个用于加载和管理系统启动的完整程序。

它是 Linux 发行版中最常见的引导程序(bootloader)。引导程序是计算机启动时运行的第一个软件。它加载 操作系统的内核,然后再由内核初始化操作系统的其他部分(包括 Shell、显示管理器、桌面环境,等等)

grub2:可以说是grub的升级,grub2是借鉴grub改写到更加安全强大到多系统引导程序,现在大部分较新的Linux发行版都是使用grub2作为引导程序的。

4.grub2引导菜单加密具体步骤

1. 环境准备

这里实验所用到的Linux发行版是rhel7.8,其他版本的加密方式基本一致

2.第一种加密方式

1.开机启动rhel7之后,进入终端模式,输入指令

grub2-mkpasswd-pbkdf2   #生成加密密码

输入指令后,连续输入两次一致的密码即可生成sha512加密成的密文,密文是password is之后的字符串

image-20230901170517329

2.修改配置文件

编辑/etc/grub.d/00_header文件,在末尾追加以下代码

cat << EOF
set superusers='root'                           #引导菜单加密的账户为root
password_pbkdf2 root  + 刚刚生成的grub2引导菜单密码 
EOF

image-20230901174709788

3.更新刚刚编辑的配置文件

更新配置文件,使文件立即生效

grub2-mkconfig -o /boot/grub2/grub.cfg

image-20230901174848327

4.进行重启测试

重启之后,按e进入到此页面

输入正确的账户和密码之后,才可以正常进入内核参数编辑

image-20230901172254489

3.第二种加密方式

1.通过grub2-setpassword来生成grub2的口令 口令存放在/boot/grub2/user.cfg中

grub2-setpassword

image-20230904104132581

2.如果此时reboot重新启动系统后,并尝试修改引导条目,系统将要求提供凭据。相当于是系统加固,防止进入单用户模式。

3.如果想要启删除grub2加密,删除这个配置文件即

rm -rf /boot/grub2/user.cfg 

重启之后,grub2菜单加密就被删除了。

4.破解grub2菜单加密

在忘记密码的情况下使用光盘救援模式清除GRUB密码

使用安装时的系统镜像,刻录成光盘或U盘启动,在安装界面选择 Rescue installed system 进入救援模式

这里实验使用的是虚拟机,可以按照下面的步骤进行操作

1.设置虚拟机从光盘启动

编辑虚拟机设置—CD/DVD,选择启动时连接

image-20230901203725890

2.选择电源,点击打开电源时进入固件

image-20230901203944541

3.重启进入BIOS

在BOOT中,通过左右上下按键,移动到boot目录,把CD-ROM Device移动第一位,然后按F10保存退出

image-20230901204232806

4.进入光盘引导,选择Trouble Shooting,选择Rescue a CentOS System,然后回车确定

image-20230901204722080

image-20230901205042535

image-20230901205144354

5.按照提示,输入1继续,回车

image-20230901205305349

6.提示按回车键得到一个shell,然后按照提示,输入chroot /mnt/sysimage进入正常系统环境

image-20230901205644920

7.把 /etc/grub.d/00_header文件下的加密密码那几行删除,然后退出保存

image-20230901210510076

8.重新编译文件,实质在下次重启的时候生效

grub2-mkconfig -o /boot/grub2/grub.cfg

9.然后关闭虚拟机,进入BIOS,把刚刚修改的顺序改回来

image-20230901212311009

10.重新启动,即可无密码进入到grub2引导菜单

;