[Enjoy Arch] 在Arch Linux上使用Secure Boot

在新电脑上装上了Arch Linux. 不大想关掉Secure Boot,于是就配置了自己的 Secure Boot 密钥 顺便做了一点笔记 :)

这是什么鬼?

简单的说就是给引导器和要加载的内核签上了名,可以阻止恶意代码启动.

但是因为各个Linux发行版各自为营,因此只有几家大的发行版(ubuntu, RedHat, etc.)包含 (由微软) 签好名的引导器,像 Arch Linux这种小众发行版是木有的~

(其实 FSF 是不滋瓷这个的,毕竟这不自由= = FSF的宣言

不过这样也不错,自己签一个可以增加自己对系统的控制嘛. 就是麻烦.

生成 UUID & 密钥

要给Bootloader加密,自然需要生成自己的密钥咯.
原本生成密钥是一件很复杂的事情,好在有dalao (Rodbook) 提供了一份脚本,可以自动生成咱们需要的一切. 代码咱搬过来了,侵删.

(来源在这-> HERE)

新建一个文件夹,创建一个新的 .sh 文件,把这堆脚本复制进去然后运行它(如果权限不足试试 chmod +x 脚本名.sh). 把生成出来的东西复制到一个FAT32盘上(U盘什么的),过会会用到.

把密钥添加到UEFI中

咱们可以用KeyTool这个EFI工具来管理Secure Boot的密钥. 不过要修改密钥,咱们得先打开Setup Mode.

在 ThinkPad 上打开Setup Mode十分简单. 进入BIOS后进入 Security-Secure Boot 然后选择Enter Setup Mode. 看上去什么都不会发生,其实已经好了.

接下来咱们需要在启动项里面添加 KeyTool. 先安装efitools软件包, 然后把这个软件包中的KeyTool.efi复制到EFI分区:

然后添加一条systend-boot启动记录:
vim /boot/loader/entries/keytool.conf

然后重启. 选择KeyTool. 应该可以进入 KeyTool main menu.

选择Edit Keys.

以这个顺序添加密钥:db -> KEK -> PK.

然后就可以退出然后重启到Arch Linux了.

签名引导器和内核

添加一条pacman hook
vim /etc/pacman.d/hooks/99-secureboot.hook

咱的sbsign.sh在这:

如果想直接使用咱的代码, 记得复制DB.crt/root/SecureBoot/OwnKeys以及把这个脚本放到/root/SecureBoot/

现在,重新安装一下linux软件包(sudo pacman -S linux). pacman应该会自动执行签名操作.

最后,到BIOS里面打开Secure Boot. 享受Secure Boot带来的安全感呗~

Reference

点赞
  1. cheng说道:

    基本没看懂...

发表评论

电子邮件地址不会被公开。 必填项已用*标注