单纯加密GRUB仅限菜单访问控制,真正有效的是分层防护:限制GRUB操作、启用Secure Boot验证启动链、绑定LUKS与TPM2防离线提取,并补充BIOS密码、机箱入侵检测等硬件防护。

单纯对引导加载程序(如GRUB)“加密”并不能防范物理入侵篡改——它实际做的是菜单级访问控制,而非数据加密。真正起效的防护是一整套分层机制,核心在于阻断攻击者在物理接触后仍能读取、修改或绕过系统启动过程的能力。
限制GRUB菜单操作(基础门槛)
这一步只能防止他人在开机时按Shift或Esc进入GRUB编辑界面,篡改内核参数、启用单用户模式重置root密码等。它不保护磁盘内容,也无法阻止从Live USB启动并挂载你的分区。
- 运行
grub-mkpasswd-pbkdf2生成强哈希密码串 - 在
/etc/grub.d/01_users或40_custom中配置superusers和password_pbkdf2 - 对敏感启动项添加
--users admin锁住入口 - 执行
sudo update-grub或sudo grub2-mkconfig -o /boot/grub2/grub.cfg生效
启用Secure Boot(验证启动链完整性)
Secure Boot是固件层强制校验机制,确保从UEFI固件开始,每一阶段加载的代码(GRUB、内核、驱动模块)都带有可信签名。未签名或被篡改的组件将直接拒载,从根本上封堵恶意引导程序注入。
- 进BIOS/UEFI确认已启用UEFI模式且
Secure Boot = Enabled - 用
mokutil --sb-state检查当前状态 - 第三方驱动(如NVIDIA)需通过
mokutil --import注册密钥,并在重启时完成MOK注册 - 避免禁用Secure Boot,否则整个可信链断裂
绑定LUKS全盘加密与TPM2(防离线提取)
这是对抗物理接触最有效的环节。即使攻击者拆下硬盘,没有本机TPM2芯片及其锁定的PCR状态(如Secure Boot开启、特定引导策略生效),LUKS密钥无法解封,数据不可读。
- 安装时启用LUKS加密,或对现有系统迁移(备份→加密重装→恢复)
- 用
systemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=7 /dev/sda2将密钥密封进TPM - 确保initramfs包含
tpm2-tss和cryptsetup支持(运行dracut --regenerate-all或update-initramfs -u) - 配合预启动PIN或USB密钥可进一步提升抗暴力破解能力
补充硬件级防护(物理第一道防线)
上述软件措施依赖设备未被物理破坏。若终端部署在无人值守环境,还需叠加基础硬件防护:
- 设置BIOS/UEFI管理员密码,禁用USB启动、网络PXE等外部引导选项
- 启用机箱入侵检测开关(Chassis Intrusion Detection),触发后记录日志或报警
- 对关键设备使用防拆封胶带、定制外壳或导电涂层,篡改即留痕
- 禁用未使用的调试接口(JTAG/SWD),或通过熔丝永久关闭

















