Administrator
发布于 2026-03-10 / 6 阅读
0
0

GRUB 防御加固

场景说明:

你是乙方交付人员,需要把一台 Ubuntu 24.04 虚拟机交付给甲方业务团队使用。

甲方有虚拟机系统内账号,并且可能打开虚拟机控制台看到 GRUB 菜单,但不应被允许通过“编辑启动参数或进入恢复模式”来绕过登录并读取数据。假设甲方没有 hypervisor 管理员权限,也拿不到虚拟磁盘文件。如果这些前提不成立,请在答案里明确说明风险与补救措施(例如磁盘加密、平台侧权限隔离)。

你的目标是做到:正常启动业务无感知,但 GRUB 编辑 / recovery / single user 等入口必须被口令拦住。

/目标与威胁模型

目标:防止交付后的 VM 被人在控制台/GRUB 环境下通过 init=/bin/bash、进入 recovery、修改 passwd/shadow 等方式绕过登录,从而读取或拷贝数据。

边界:如果甲方可以拿到虚拟磁盘文件(vmdk/qcow2)并离线挂载,或拥有 管理程序(ESXi/Proxmox/KVM)管理员权限,仅靠 OS/GRUB 级加固无法从根本上阻止离线拷贝。此时应配合磁盘加密 + 密钥托管 + 平台级权限隔离。

任务目标:

1、能说清楚本文的威胁模型和边界条件,并能落地完成GRUB口令保护的关键步骤。

2、能在安全与可用性之间做出合理取舍(正常启动免口令,危险入口需口令)。

潜在威胁:

1.用户利用进入单用户模式读取敏感信息或修改密码

进入GRUB菜单,按e
找到以 linux /boot/vmlinuz-... 开头的行,定位到 ro ,将 ro 改为 rw,并将整行末尾替换为 init=/bin/bash
按 Ctrl+X 或 F10 执行启动,直接进入 root 权限的单用户 shell。

2.利用恢复模式

GRUB 菜单中选择 Advanced options for Ubuntu,按回车。
选中带 (recovery mode) 的内核版本,按 e 编辑。
找到 linux 行,将 ro recovery nomodeset dis_ucode_ldr 改为 rw single init=/bin/bash。
按 Ctrl+X 启动,直接获取 root 权限。

操作流程:

配置GRUB

1.安装grub-common

sudo apt update
sudo apt install -y grub-common

2.生成GRUB密码哈希

grub-mkpasswd-pbkdf2

3.输入你要设置的 GRUB 密码,系统会输出类似如下的哈希串:

PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.XXXXXXXX...

4.配置 GRUB 超级用户

编辑 /etc/grub.d/40_custom 文件,添加超级用户和密码配置:

sudo nano /etc/grub.d/40_custom
set superusers="user"
password_pbkdf2 user hash值

5. 更新 GRUB 生效

sudo update-grub

6. 配置正常启动免密码

重启发现正常启动也需要输入密码,影响了正常用户使用,所以我们需要配置正常启动免密码。

编辑 /etc/grub.d/10_linux 文件,让正常启动项无需密码:

sudo nano /etc/grub.d/10_linux

找到 CLASS这一行,在 末尾添加 --unrestricted,修改为:

CLASS="--class gnu-linux --class gnu --class os --unrestricted"
# 该变量为菜单条目添加分类标签,用于 GRUB 主题渲染和菜单分组。使用该变量的条目与该变量的分类属性完全一致。

7.禁用恢复模式(可选)

sudo nano /etc/default/grub

添加

GRUB_DISABLE_RECOVERY="true"

8. 更新 GRUB 生效

sudo update-grub

8. 加固 GRUB 配置文件权限(防止被改)

sudo chmod 700 /etc/grub.d
sudo chmod 600 /etc/default/grub
sudo chmod 700 /boot/grub

9.验证效果

  • GRUB 菜单出现,直接回车可正常启动

  • e → 提示输入用户名 / 密码

  • 试图进入 recovery → 被密码拦截

  • c 进入 GRUB 命令行 → 被密码拦截

  • 恢复模式消失

结论

  • 本虚拟机已完成 GRUB 口令加固,禁止通过控制台编辑启动项、进入恢复模式、单用户模式绕过系统登录。

  • 正常业务启动无感知、无额外密码。

  • 若甲方获取虚拟磁盘文件或 Hypervisor 管理员权限,可离线破解,不在本次 OS 加固防御范围内,需配合磁盘加密与平台权限管控。


评论