设置 Tang 服务器
本例使用另一个 Fedora Linux 系统作为 Tang 服务器,主机名为 tang-server
。首先安装 tang
包。
-
dnf install tang
然后用 systemctl
启用并启动 tangd.socket
。
-
systemctl enable tangd.socket --now
Tang 使用的是 TCP 80 端口,所以你也需要在防火墙中打开该端口。
-
firewall-cmd --add-port=80/tcp --permanent
-
firewall-cmd --add-port=80/tcp
最后,运行 tang-show-keys
来显示输出签名密钥指纹。你以后会需要这个。
-
# tang-show-keys
-
l3fZGUCmnvKQF_OA6VZF9jf8z2s
创建加密的 Stratis 池
上一篇关于 Stratis 加密的文章详细介绍了如何设置加密的 Stratis 池,所以本文不会深入介绍。
第一步是捕获一个将用于解密 Stratis 池的密钥。即使使用 NBDE,也需要设置这个,因为在 NBDE 服务器无法到达的情况下,可以用它来手动解锁池。使用以下命令捕获 pool1
密钥。
-
# stratis key set --capture-key pool1key
-
Enter key data followed by the return key:
然后我将使用 /dev/vdb
设备创建一个加密的 Stratis 池(使用刚才创建的 pool1key
),命名为 pool1
。
-
# stratis pool create --key-desc pool1key pool1 /dev/vdb。
接下来,在这个 Stratis 池中创建一个名为 filesystem1
的文件系统,创建一个挂载点,挂载文件系统,并在其中创建一个测试文件:
-
# stratis filesystem create pool1 filesystem1
-
# mkdir /filesystem1
-
# mount /dev/stratis/pool1/filesystem1 /filesystem1
-
# cd /filesystem1
-
# echo "this is a test file" > testfile
将 Stratis 池绑定到 Tang 服务器上
此时,我们已经创建了加密的 Stratis 池,并在池中创建了一个文件系统。下一步是将你的 Stratis 池绑定到刚刚设置的 Tang 服务器上。使用 stratis pool bind nbde
命令进行。
当你进行 Tang 绑定时,需要向该命令传递几个参数:
-
池名(在本例中,
pool1
) -
钥匙描述符名称(本例中为
pool1key
) -
Tang 服务器名称(在本例中,
http://tang-server
)
记得之前在 Tang 服务器上,运行了 tang-show-keys
,显示 Tang 输出的签名密钥指纹是 l3fZGUCmnvKQF_OA6VZF9jf8z2s
。除了前面的参数外,还需要用参数 -thumbprint l3fZGUCmnvKQF_OA6VZF9jf8z2s
传递这个指纹,或者用 -trust-url
参数跳过对指纹的验证。