安全启动通过UEFI固件验证引导组件签名,防止恶意程序加载。配置需启用UEFI模式并开启Secure Boot,选择支持的发行版如ubuntu、Fedora等,安装后使用sudo mokutil –sb-state验证状态,自定义模块需签名并注册公钥至MOK,第三方驱动须手动签名以确保加载。

linux系统中配置安全启动(Secure Boot)能有效防止未经授权的引导加载程序和内核模块在系统启动时运行,从而提升系统的安全性。安全启动依赖UEFI固件功能,通过加密签名验证引导组件的合法性。以下是具体的配置与验证方法。
启用UEFI模式并开启安全启动
确保系统运行在UEFI模式下是配置安全启动的前提。传统bios不支持该功能。
- 重启系统进入UEFI/BIOS设置界面(通常按F2、Del或Esc键)
- 确认“Boot Mode”设置为“UEFI”,禁用“Legacy Support”或“CSM”
- 找到“Secure Boot”选项,将其设置为“Enabled”
- 保存设置并退出
部分主板可能需要设置管理员密钥(PK)、平台密钥(KEK)和签名数据库(db),厂商默认通常已预置微软和发行版的公钥。
选择支持安全启动的Linux发行版
并非所有Linux发行版都默认支持安全启动。主流发行版如Ubuntu、Fedora、RHEL、SUSE等已集成支持。
- Fedora和RHEL系列使用shim和GRUB2,由Red Hat签名,可直接通过验证
- Ubuntu使用Canonical签名的shim和引导程序
- 自定义内核或第三方驱动需自行签名并导入密钥
安装系统前确认镜像支持UEFI启动,并从UEFI引导u盘或光盘启动安装程序。
验证安全启动是否生效
系统启动后,可通过以下命令检查安全启动状态:
sudo mokutil --sb-state
若输出显示“SecureBoot enabled”,表示安全启动已激活且正常工作。
也可查看内核消息确认:
dmesg | grep -i secure
输出中应包含“Secure boot enabled”等相关信息。
对于使用自定义内核模块的情况,需使用私钥签名模块,并将对应公钥注册到MOK(machine Owner Key)列表中。
处理常见问题
安全启动启用后可能出现无法引导或驱动加载失败的问题。
- 若系统无法启动,检查UEFI中是否信任当前发行版的shim签名
- 第三方nvidia或VirtualBox驱动需手动签名,否则会被拒绝加载
- 使用sbverify工具检查引导文件签名有效性
- 必要时可通过MOK管理工具注册自定义密钥
注意:禁用安全启动虽可绕过问题,但会降低系统安全性,建议优先解决签名问题。
基本上就这些。只要系统固件支持、发行版兼容,并正确配置密钥链,Linux的安全启动就能稳定运行,有效防御引导级恶意软件。


