1. 为什么要进行加密
1.生产环境中经常需要为GRUB引导菜单设置密码,通过GRUB密码阻止非授权用户进入单用户模式,从而增强系统安全性。
2.防止误触带来一些潜在危险性的操作
2. 什么是grub2引导菜单
grub2引导菜单就是启动linux后出现的内核版本信息页面,这个就是grub2引导菜单
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之后的字符串
2.修改配置文件
编辑/etc/grub.d/00_header文件,在末尾追加以下代码
cat << EOF set superusers='root' #引导菜单加密的账户为root password_pbkdf2 root + 刚刚生成的grub2引导菜单密码 EOF
3.更新刚刚编辑的配置文件
更新配置文件,使文件立即生效
grub2-mkconfig -o /boot/grub2/grub.cfg
4.进行重启测试
重启之后,按e进入到此页面
输入正确的账户和密码之后,才可以正常进入内核参数编辑
3.第二种加密方式
1.通过grub2-setpassword来生成grub2的口令 口令存放在/boot/grub2/user.cfg中
grub2-setpassword
2.如果此时reboot重新启动系统后,并尝试修改引导条目,系统将要求提供凭据。相当于是系统加固,防止进入单用户模式。
3.如果想要启删除grub2加密,删除这个配置文件即
rm -rf /boot/grub2/user.cfg
重启之后,grub2菜单加密就被删除了。
4.破解grub2菜单加密
在忘记密码的情况下使用光盘救援模式清除GRUB密码
使用安装时的系统镜像,刻录成光盘或U盘启动,在安装界面选择 Rescue installed system 进入救援模式
这里实验使用的是虚拟机,可以按照下面的步骤进行操作
1.设置虚拟机从光盘启动
编辑虚拟机设置—CD/DVD,选择启动时连接
2.选择电源,点击打开电源时进入固件
3.重启进入BIOS
在BOOT中,通过左右上下按键,移动到boot目录,把CD-ROM Device移动第一位,然后按F10保存退出
4.进入光盘引导,选择Trouble Shooting,选择Rescue a CentOS System,然后回车确定
5.按照提示,输入1继续,回车
6.提示按回车键得到一个shell,然后按照提示,输入chroot /mnt/sysimage进入正常系统环境
7.把 /etc/grub.d/00_header文件下的加密密码那几行删除,然后退出保存
8.重新编译文件,实质在下次重启的时候生效
grub2-mkconfig -o /boot/grub2/grub.cfg
9.然后关闭虚拟机,进入BIOS,把刚刚修改的顺序改回来
10.重新启动,即可无密码进入到grub2引导菜单