Clevis
![]() 在此通知移除之前,请勿遵循此处的说明。 |
什么是 clevis
它是一个软件,允许通过绑定到 tang (网络绑定加密/解密) 或 TPM (硬件芯片加密/解密) 来加密/解密磁盘。
它在 redhat fedora 系统中使用。
为何使用 clevis
使用 tang,您可以方便地自动解密设备块/文件,它经过加密,旨在防止中间人攻击,因为没有人获得私钥,只有一个总是变化的、广告的定时密钥。
使用 clevis + tang 自动磁盘解密
您需要在与要解密的服务器不同的服务器上运行 tang。我建议在 docker 上运行 tang 服务器。
mkinitfs + kernel-hooks + secureboot-hook

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

apk add cryptsetup
编辑 /sbin/mkinitfs(将 "# Copy custom init" 放在 "# copy modloop signature" 之前)
内容 /etc/mkinitfs
将 "# Clevis + tang script" 放在 "ebegin "Mounting root"" 之后
内容 /initramfs/init
内容 /etc/mkinitfs/features.d/curl.files
内容 /etc/mkinitfs/features.d/clevis.files
内容 /etc/mkinitfs/mkinitfs.conf
然后只需执行
apk add secureboot-hook gummiboot gummiboot-efistub efibootmgr kernel-hooks secureboot-hook
mkinitfs -c /etc/mkinitfs/mkinitfs.conf -b / $(uname -r)
解压缩
mkdir /tmp/initramfs cd /tmp/initramfs zcat /boot/initramfs-$KERNEL | cpio -idmv
通过执行 "init" 并查看其运行方式来测试 "init" 是否工作
./init
外部来源
- https://fedoramagazine.org/using-linux-system-roles-to-implement-clevis-and-tang-for-automated-luks-volume-unlocking/
- https://www.admin-magazine.com/Archive/2018/43/Automatic-data-encryption-and-decryption-with-Clevis-and-Tang
- https://wiki.archlinux.org.cn/title/Clevis
- https://man.archlinux.org/man/clevis-encrypt-tang.1.en
- https://github.com/latchset/clevis/blob/master/src/pins/tang/clevis-encrypt-tang.1.adoc