grub加密与解密

前言

grub默认无加密,用户可免密以单用户模式进入系统修改root密码。若想增强其安全性,可以将grub加密。

GRUB2提供两种类型的密码保护:

  • 修改菜单条目时需要密码,但启动菜单条目时不需要密码;

  • 修改菜单条目和启动一个、多个或所有菜单条目都需要密码

CentOS 7.2之前和之后的加密方式略有区别,实验的操作系统版本为CentOS 7.5

加密步骤

编辑需密码认证,启动不需要认证

  1. 使用grub2-setpassword生成加密密码,改命令会在/boot/grub2目录下生成一个user.cfg文件。这种方式可以防止修改GRUB菜单条目,但是不能防止启动。如果启动时也要密码认证,需要修改grub配置文件。
grub2-setpassword

# 根据提示输入两次密码
  1. 重启测试,在引导菜单中按"e"键,提示输入用户名和密码。认证成功则进入编辑页面,认证失败则正常启动。

编辑和启动都需要密码认证

修改/boot/grub2/grub.cfg文件,搜索10_linux,去掉BEGIN和END之间的两处--unrestricted参数,这样便可以启动也需要密码认证

解密

如果系统正常运行中,则删掉/boot/grub2/user.cfg即可。

如果密码忘记了,可使用系统的镜像文件制作启动盘(比如用U盘制作启动盘),在BIOS引导的时候设置为U盘为优先启动项,选择Troubleshooting -> Rescue system -> 1) continue,自动检测到系统后,进入一个shell,在该shell下执行chroot /mnt/sysimage切换根系统。这时候进入的根系统便是硬盘中实际的根系统。找到/boot/grub2/user.cfg,删掉即可。也可以注释/boot/grub2/grub.cfg中以下部分内容:

## BEGIN /etc/grub.d/01_users ###
if [ -f ${prefix}/user.cfg ]; then
  source ${prefix}/user.cfg
  if [ -n "${GRUB2_PASSWORD}" ]; then
    set superusers="root"
    export superusers
    password_pbkdf2 root ${GRUB2_PASSWORD}
  fi
fi
## END /etc/grub.d/01_users ###

参考

posted @ 2022-12-02 11:01  花酒锄作田  阅读(583)  评论(0编辑  收藏  举报