Ubuntu 18.04 辅助磁盘的 Clevis 解密

Ubuntu 18.04 辅助磁盘的 Clevis 解密

使用未加密的根卷运行 Ubuntu 18.04。对于我需要做的事情,这很好。但我需要安装和解密辅助磁盘。按照 Red Hat 的指示这里因为每次用谷歌搜索 Ubuntu 和 NBDE/Clevis&Tang 都会带我到那里。

*此过程在 RHEL 7.x 和 CentOS 7.x 上完美运行。

我已经完成了分区(这里不使用 LVM)、加密以及将其绑定到 tang 服务器。

首先我安装软件包:

apt-get install clevis clevis-systemd clevis-dracut clevis-luks

然后我设置磁盘

echo '<TEMPPASS>'| cryptsetup --verbose luksFormat /dev/xvdc1

clevis bind luks -f -k- -d /dev/xvdc1 tang '{"url":"http://<IP>:<PORT>","thp":"<KEY>"}' <<< "<TEMPPASS>"

echo "<TEMPPASS>" | cryptsetup luksRemoveKey /dev/xvdc1

clevis luks unlock -d /dev/xvdc1 -n testluksvol

鲍勃就是你的阿姨。然后我将其格式化并验证它可以安装。

mkfs.ext4 /dev/mapper/testluksvol

mount /dev/mapper/testluksvol /testluksvol

到目前为止一切顺利。我使用 _netdev 将条目添加到 /etc/fstab,如指示所述:

/dev/mapper/testluksvol /testluksvol    ext4    defaults,_netdev 0 2

将条目添加到 /etc/crypttab,同样带有 _netdev,尽管我不认为 Ubuntu crypttab 支持该功能,因为它不在 crypttab 手册页中,但无论如何。我们在这里制作 Chef Boy'R'D,而不是世界级的肉酱面:

testluksvol     UUID=<DEVICE UUID>       none    _netdev

最后,启用 clevis-luks-askpass.path

systemctl enable clevis-luks-askpass.path

然后我们重启……它不起作用。所以我们去查看 /var/log/syslog 并看到以下内容:

Jun 22 23:06:22 ubuntu03 systemd[1]: dev-disk-by\x2duuid-72ebf50e\x2dc3de\x2d468a\x2d89c3\x2defc869757a51.device: Job dev-disk-by\x2duuid-72ebf50e\x2dc3de\x2d468a\x2d89c3\x2defc86975
7a51.device/start timed out.
Jun 22 23:06:22 ubuntu03 systemd[1]: Timed out waiting for device dev-disk-by\x2duuid-72ebf50e\x2dc3de\x2d468a\x2d89c3\x2defc869757a51.device.
Jun 22 23:06:22 ubuntu03 systemd[1]: Dependency failed for Cryptography Setup for testluksvol.
Jun 22 23:06:22 ubuntu03 systemd[1]: Dependency failed for dev-mapper-testluksvol.device.
Jun 22 23:06:22 ubuntu03 systemd[1]: Dependency failed for /testluksvol.
Jun 22 23:06:22 ubuntu03 systemd[1]: Dependency failed for Remote File Systems.
Jun 22 23:06:22 ubuntu03 systemd[1]: remote-fs.target: Job remote-fs.target/start failed with result 'dependency'.
Jun 22 23:06:22 ubuntu03 systemd[1]: testluksvol.mount: Job testluksvol.mount/start failed with result 'dependency'.
Jun 22 23:06:22 ubuntu03 systemd[1]: Dependency failed for File System Check on /dev/mapper/testluksvol.
Jun 22 23:06:22 ubuntu03 systemd[1]: [email protected]: Job [email protected]/start failed with result 'dependency'.
Jun 22 23:06:22 ubuntu03 systemd[1]: dev-mapper-testluksvol.device: Job dev-mapper-testluksvol.device/start failed with result 'dependency'.
Jun 22 23:06:22 ubuntu03 systemd[1]: Dependency failed for Local Encrypted Volumes.
Jun 22 23:06:22 ubuntu03 systemd[1]: cryptsetup.target: Job cryptsetup.target/start failed with result 'dependency'.
Jun 22 23:06:22 ubuntu03 systemd[1]: [email protected]: Job [email protected]/start failed with result 'dependency'.
Jun 22 23:06:22 ubuntu03 systemd[1]: dev-disk-by\x2duuid-72ebf50e\x2dc3de\x2d468a\x2d89c3\x2defc869757a51.device: Job dev-disk-by\x2duuid-72ebf50e\x2dc3de\x2d468a\x2d89c3\x2defc86975
7a51.device/start failed with result 'timeout'.

这有点令人沮丧。我之所以选择 18.04,是因为它应该支持 clevis & tang。我想将其集成到运行 tang 服务器的现有环境中。

看在 Linus Torvalds 的份上,有谁能告诉我我做错了什么?

答案1

发现我的磁盘 UUID 不正确。一旦我将其更新为正确的 UUID,整个过程就可以完美运行。

答案2

要创建、加密或解密 LUKS 加密磁盘,您只需使用 cryptsetup。

例如,我将分配一个 test.img 作为空磁盘分区的示例。我将创建一个 LUKS 加密磁盘卷,对其进行格式化,然后挂载它。

fallocate -l 1G test.img

sudo cryptsetup create test test.img
Enter passphrase for test.img: 
sudo mkfs -t ext2 /dev/mapper/test 

mke2fs 1.44.1 (24-Mar-2018)
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: 5f58a7a0-6139-4ae3-b423-be86dbc90874
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

sudo mount /dev/mapper/test /mnt

df /mnt
Filesystem       1K-blocks  Used Available Use% Mounted on
/dev/mapper/test   1032088  1284    978376   1% /mnt

然后,您可以使用挂载在 /mnt/ 上的解密卷。卸载并删除解密的卷。

sudo umount /mnt
sudo cryptsetup remove test

稍后当您需要使用挂载加密卷时,只需执行以下操作。

sudo cryptsetup create test test.img
Enter passphrase for test.img: 

sudo mount /dev/mapper/test /mnt

df /mnt

Filesystem       1K-blocks  Used Available Use% Mounted on
/dev/mapper/test   1032088  1284    978376   1% /mnt

如果您希望它在密码提示时自动挂载,请添加以下内容。

mv test.img /
sudo vi /etc/crypttab

并添加以下行

/mnt /test.img none luks

启动时,系统会提示您输入挂载卷的密码。如果您不想输入密码,可以使用密钥文件。

附言:哦,没关系,我刚意识到你需要从网络获取密钥,抱歉。

相关内容