Clevis

来自 阿尔派 Linux
此材料正在编写中...

在此通知移除之前,请勿遵循此处的说明。
(上次编辑:WhyNotHugo,于 2025 年 2 月 27 日。)

什么是 clevis

它是一个软件,允许通过绑定到 tang (网络绑定加密/解密) 或 TPM (硬件芯片加密/解密) 来加密/解密磁盘。

它在 redhat fedora 系统中使用。

为何使用 clevis

使用 tang,您可以方便地自动解密设备块/文件,它经过加密,旨在防止中间人攻击,因为没有人获得私钥,只有一个总是变化的、广告的定时密钥。

  • 建议将 tang docker 与此一起使用,例如,您可以使用这个:githubgitlab

使用 clevis + tang 自动磁盘解密

您需要在与要解密的服务器不同的服务器上运行 tang。我建议在 docker 上运行 tang 服务器。

mkinitfs + kernel-hooks + secureboot-hook

待办事项: 编写指南


使用 mkinitfs,可以在 initramfs 生成中强制使用 tang/clevis。建议创建一个 chroot 或 docker,这样您就不会弄乱您的系统文件,并通过添加这些文件

待办事项: init 脚本太大,无法放在 wiki 中,我只是从 initramfs 生成和解压缩中获取了它(阅读下面的提示)


注意: APK 软件包 "cryptsetup" 附带 veritysetup

apk add cryptsetup

注意: 确保 chroot 具有 linux-kernel

编辑 /sbin/mkinitfs(将 "# Copy custom init" 放在 "# copy modloop signature" 之前)

内容 /etc/mkinitfs

... # Copy custom init cp /initramfs/init "$tmpdir"/init # copy modloop signature ...

将 "# Clevis + tang script" 放在 "ebegin "Mounting root"" 之后

内容 /initramfs/init

... ebegin "Mounting root" # Clevis + tang script # work in progress ...

内容 /etc/mkinitfs/features.d/curl.files

/usr/bin/curl

内容 /etc/mkinitfs/features.d/clevis.files

/usr/bin/clevis*

内容 /etc/mkinitfs/mkinitfs.conf

... features="... curl clevis" ...

然后只需执行

apk add secureboot-hook gummiboot gummiboot-efistub efibootmgr kernel-hooks secureboot-hook

提示:为确保 initramfs 具有所需的脚本,请执行

mkinitfs -c /etc/mkinitfs/mkinitfs.conf -b / $(uname -r)

解压缩

mkdir /tmp/initramfs cd /tmp/initramfs zcat /boot/initramfs-$KERNEL | cpio -idmv

通过执行 "init" 并查看其运行方式来测试 "init" 是否工作

./init

外部来源