一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Linux 如何配置引导加载程序启用密码保护防止篡改

时间:2026-09-04 18:32:47 编辑:袖梨 来源:一聚教程网

GRUB加密码的核心目标是锁住编辑入口,防止通过e键修改内核参数进入单用户模式重置root密码;需用grub2-mkpasswd-pbkdf2生成强哈希,配置superusers和password_pbkdf2,锁定menuentry并配合BIOS密码、Secure Boot等基础防护。

给 GRUB 引导加载程序加密码,核心目标是锁住编辑入口——防止有人在开机时按 e 键修改内核参数、添加 rd.breakinit=/bin/bash 进入单用户模式重置 root 密码。这不是加密硬盘,也不防 Live USB 启动,但它是最直接有效的第一道逻辑防线。

生成并配置强哈希密码

明文密码不安全,必须用 PBKDF2 哈希:

  1. 在终端运行 grub2-mkpasswd-pbkdf2(RHEL/CentOS/Fedora)或 grub-mkpasswd-pbkdf2(Debian/Ubuntu),输入两次密码,复制输出的完整哈希串(以 grub.pbkdf2.sha512... 开头)
  2. 编辑 /etc/grub.d/40_custom,在末尾添加:
    set superusers="admin"

    password_pbkdf2 admin grub.pbkdf2.sha512.10000.6A8...

    其中 admin 是自定义用户名,后面接刚生成的密文
  3. 保存后执行 sudo grub2-mkconfig -o /boot/grub2/grub.cfg(RHEL系)或 sudo update-grub(Debian系)生效

锁定关键启动项(可选但推荐)

仅设全局密码还不够,敏感项可单独加固:

  1. 打开 /etc/grub.d/10_linux 或对应启动项生成脚本
  2. 找到类似 menuentry 的行,在引号后加 --users admin,例如:

    menuentry 'CentOS Linux (5.14.0-284.30.1.el9_2.x86_64) 9' --users admin {

  3. 重新生成配置(同上),重启后该菜单项需输入用户名+密码才能编辑或启动

配套必须做的基础防护

GRUB 密码只是环节之一,脱离其他措施效果大打折扣:

  1. BIOS/UEFI 密码:设置管理员密码,禁用 USB/CD 启动,把硬盘设为第一启动设备
  2. Secure Boot 开启:进 UEFI 设置确认 Secure Boot = Enabled,运行 mokutil --sb-state 验证;第三方驱动需导入 MOK 密钥
  3. /boot 分区权限收紧:确保 /boot/grub2/grub.cfg 属主为 root:root,权限为 0600
  4. 物理访问控制:服务器机柜上锁,避免他人直连显示器或插 U 盘操作

验证是否生效

重启系统,看到 GRUB 菜单后:

  1. e 键 → 出现 Enter username: 提示 → 输入 admin → 再提示 Enter password: → 正确输入后才允许编辑
  2. 若输错或跳过,e 键无响应,b 键也无法启动修改后的项
  3. 尝试加 rd.breakinit=/bin/sh 参数会直接被拦截,无法进入单用户环境

热门栏目