
在一个有许多加密磁盘的环境中,解锁所有的磁盘是一项困难的任务。网络绑定磁盘加密network bound disk encryption(NBDE)有助于自动解锁 Stratis 卷的过程。这是在大型环境中的一个关键要求。Stratis 2.1 版本增加了对加密的支持,这在《Stratis 加密入门》一文中介绍过。Stratis 2.3 版本最近在使用加密的 Stratis 池时引入了对网络绑定磁盘加密(NBDE)的支持,这是本文的主题。
Stratis 网站将 Stratis 描述为一个“ 易于使用的 Linux 本地存储管理 ”。短视频《使用 Stratis 管理存储》对基础知识进行了快速演示。该视频是在 Red Hat Enterprise Linux 8 系统上录制的,然而,视频中显示的概念也适用于 Fedora Linux 中的 Stratis。
先决条件
本文假设你熟悉 Stratis,也熟悉 Stratis 池加密。如果你不熟悉这些主题,请参考这篇文章和前面提到的Stratis 概述视频。
NBDE 需要 Stratis 2.3 或更高版本。本文中的例子使用的是 Fedora Linux 34 的预发布版本。Fedora Linux 34 的最终版本将包含 Stratis 2.3。
网络绑定磁盘加密(NBDE)概述
加密存储的主要挑战之一是有一个安全的方法在系统重启后再次解锁存储。在大型环境中,手动输入加密口令并不能很好地扩展。NBDE 解决了这一问题,允许以自动方式解锁加密存储。
在更高层次上,NBDE 需要环境中的 Tang 服务器 。客户端系统(使用 Clevis Pin)只要能与 Tang 服务器建立网络连接,就可以自动解密存储。如果网络没有连接到 Tang 服务器,则必须手动解密存储。
这背后的想法是,Tang 服务器只能在内部网络上使用,因此,如果加密设备丢失或被盗,它将不再能够访问内部网络连接到 Tang 服务器,因此不会被自动解密。
关于 Tang 和 Clevis 的更多信息,请参见手册页(、)、Tang 的 GitHub 页面和Clevis 的 GitHub 页面。
设置 Tang 服务器
本例使用另一个 Fedora Linux 系统作为 Tang 服务器,主机名为
tang-server
。首先安装包。
dnf install tang
然后用启用并启动
tangd.socket
。
systemctl enable tangd.socket --now
Tang 使用的是 TCP 80 端口,所以你也需要在防火墙中打开该端口。
firewall-cmd --add-port=80/tcp --permanentfirewall-cmd --add-port=80/tcp
最后,运行
tang-show-keys
来显示输出签名密钥指纹。你以后会需要这个。
# tang-show-keysl3fZGUCmnvKQF_OA6VZF9jf8z2s
创建加密的 Stratis 池
第一步是捕获一个将用于解密 Stratis 池的密钥。即使使用 NBDE,也需要设置这个,因为在 NBDE 服务器无法到达的情况下,可以用它来手动解锁池。使用以下命令捕获密钥。
# stratis key set --capture-key pool1keyEnter key># 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 绑定时,需要向该命令传递几个参数:
记得之前在 Tang 服务器上,运行了
tang-show-keys
,显示 Tang 输出的签名密钥指纹是
l3fZGUCmnvKQF_OA6VZF9jf8z2s
。除了前面的参数外,还需要用参数
-thumbprint l3fZGUCmnvKQF_OA6VZF9jf8z2s
传递这个指纹,或者用
-trust-url
参数跳过对指纹的验证。
使用
-thumbprint
参数更安全。例如:
# stratis pool bind nbde pool1 pool1key--thumbprint l3fZGUCmnvKQF_OA6VZF9jf8z2s
用 NBDE 解锁 Stratis 池
接下来重启主机,并验证你可以用 NBDE 解锁 Stratis 池,而不需要使用密钥口令。重启主机后,该池不再可用:
# stratis pool listName Total Physical Properties
要使用 NBDE 解锁池,请运行以下命令:
# stratis pool unLOCK clevis
注意,你不需要使用密钥口令。这个命令可以在系统启动时自动运行。
此时,Stratis 池已经可以使用了:
# stratis pool listName Total Physical Propertiespool1 4.98 GiB / 583.65 MiB / 4.41 GiB ~Ca, Cr
你可以挂载文件系统,访问之前创建的文件:
# mount /dev/stratis/pool1/filesystem1 /filesystem1/# cat /filesystem1/testfilethis is a test file
轮换 Tang 服务器密钥
最好定期轮换 Tang 服务器密钥,并更新 Stratis 客户服务器以使用新的 Tang 密钥。
要生成新的 Tang 密钥,首先登录到 Tang 服务器,查看
/var/db/tang
目录的当前状态。然后,运行
tang-show-keys
命令:
# ls -al /var/db/tangtotal 8drwx------. 1 tang tang 124 Mar 15 15:51 .drwxr-xr-x. 1 root root 16 Mar 15 15:48 ..-rw-r--r--. 1 tang tang 361 Mar 15 15:51 hbjJEDXy8G8wynMPqiq8F47nJwo.jwk-rw-r--r--. 1 tang tang 367 Mar 15 15:51 l3fZGUCmnvKQF_OA6VZF9jf8z2s.jwk# tang-show-keysl3fZGUCmnvKQF_OA6VZF9jf8z2s
要生成新的密钥,运行
tangd-keygen
并将其指向
/var/db/tang
目录:
# /usr/libexec/tangd-keygen /var/db/tang
如果你再看看
/var/db/tang
目录,你会看到两个新文件:
# ls -al /var/db/tangtotal 16drwx------. 1 tang tang 248 Mar 22 10:41 .drwxr-xr-x. 1 root root 16 Mar 15 15:48 ..-rw-r--r--. 1 tang tang 361 Mar 15 15:51 hbjJEDXy8G8wynMPqiq8F47nJwo.jwk-rw-r--r--. 1 root root 354 Mar 22 10:41 iyG5HcF01zaPjaGY6L_3WaslJ_E.jwk-rw-r--r--. 1 root root 349 Mar 22 10:41 jHxerkqARY1Ww_H_8YjQVZ5OHao.jwk-rw-r--r--. 1 tang tang 367 Mar 15 15:51 l3fZGUCmnvKQF_OA6VZF9jf8z2s.jwk
如果你运行
tang-show-keys
,就会显示出 Tang 所公布的密钥:
# tang-show-keysl3fZGUCmnvKQF_OA6VZF9jf8z2siyG5HcF01zaPjaGY6L_3WaslJ_E
你可以通过将两个原始文件改名为以句号开头的隐藏文件,来防止旧的密钥(以开头)被公布。通过这种方法,旧的密钥将不再被公布,但是它仍然可以被任何没有更新为使用新密钥的现有客户端使用。一旦所有的客户端都更新使用了新密钥,这些旧密钥文件就可以删除了。
# cd /var/db/tang# mv hbjJEDXy8G8wynMPqiq8F47nJwo.jwk.hbjJEDXy8G8wynMPqiq8F47nJwo.jwk# mv l3fZGUCmnvKQF_OA6VZF9jf8z2s.jwk.l3fZGUCmnvKQF_OA6VZF9jf8z2s.jwk
此时,如果再运行
tang-show-keys
,Tang 只公布新钥匙:
# tang-show-keysiyG5HcF01zaPjaGY6L_3WaslJ_E
下一步,切换到你的 Stratis 系统并更新它以使用新的 Tang 密钥。当文件系统在线时, Stratis 支持这样做。
首先,解除对池的绑定:
# stratis pool unbind pool1
接下来,用创建加密池时使用的原始口令设置密钥:
# stratis key set --capture-key pool1keyEnter key># stratis pool bind nbde pool1 pool1key--thumbprint iyG5HcF01zaPjaGY6L_3WaslJ_E
Stratis 系统现在配置为使用更新的 Tang 密钥。一旦使用旧的 Tang 密钥的任何其他客户系统被更新,在 Tang 服务器上的
/var/db/tang
目录中被重命名为隐藏文件的两个原始密钥文件就可以被备份和删除了。
如果 Tang 服务器不可用怎么办?
接下来,关闭 Tang 服务器,模拟它不可用,然后重启 Stratis 系统。
重启后,Stratis 池又不可用了:
# stratis pool listName Total Physical Properties
如果你试图用 NBDE 解锁,会因为 Tang 服务器不可用而失败:
# stratis pool unlock clevisExecution failed:An iterative command generated one or more errors: The operation 'unlock' on a resource of type pool failed. The following errors occurred:Partial action "unlock" failed for pool with UUID 4d62f840f2bb4ec9ab53a44b49da3f48: Cryptsetup error: Failed with error: Error: Command failed: cmd: "clevis" "luks" "unlock" "-d" "/dev/vdb" "-n" "stratis-1-private-42142fedcb4c47cea2e2b873c08fcf63-crypt", exit reason: 1 stdout: stderr: /dev/vdb could not be opened.
此时,在 Tang 服务器无法到达的情况下,解锁池的唯一选择就是使用原密钥口令:
# stratis key set --capture-key pool1keyEnter key># stratis pool unlock keyring
接下来,验证池是否成功解锁:
# stratis pool listName Total Physical Propertiespool1 4.98 GiB / 583.65 MiB / 4.41 GiB ~Ca, Cr
Windows 10怎么启用bitlocker加密
步骤:1、选择需要加密的磁盘,然后右击,点击“启用bitlocker”;2、点击后会有初始化的过程(根据加密磁盘容量不同,初始化时间不同);3、输入要加密磁盘的想要设置的密码,点击“下一步”;4、此界面会有四种方式来备份密钥,防止用户密码忘记而无法打开磁盘;(1)保存到Microsoft账户备份;(2)保存到U盘里,如果没有USB移动存储设置,会有如下提示:(3)保存到文件。 (可以将密钥保存在本地磁盘上,非加密盘)(4)打印密钥,可以将密钥打印出来做备份。 5、做好备份后,点击下一步会有如下提示,会提醒多备份,防止密钥忘记和丢失。 6、选择“仅加密已用磁盘空间”,相对来说,速度较快,适合新的磁盘。 7、点击“下一步”后,点击“开始加密”即可。 8、加密过程;9、加密完成后;10、进入资源管理器的此电脑,能看到需要加密的磁盘上面有一个已经打开的锁,而下次重启则必须要输入密钥才能解锁加密磁盘。 11、右击加密的磁盘,会有“更改bitlocker密码”和“管理bitlocker”两个选项,可以用于更改密码和管理整个硬盘的bitlocker。
怎样设置网络硬盘密码?
普通用户如何给QQ网络硬盘设置密码!很多网友都喜欢在QQ的网络硬盘中保存资料,因为使用起来比较方便,只要能上网就可以使用了。 为了提高它的安全性,网络硬盘可以让QQ会员或者网络硬盘的高级用户来设置密码,对于普通用户就不能设置密码了,其实我们可以利用一个小技巧来对网络硬盘设置密码。 首先你的QQ号码要有设置密码保护,接着打开网页“”,点击“找回QQ号码”按钮,在显示的页面中输入自己的QQ号、取回密码的类型选择网络硬盘密码,再输入验证码后点击“确定”按钮.接下来在显示的页面中就要输入你的密报资料问题,再选中“将邮件发送到默认的Email信箱”,然后点击“发送邮件”按钮.这时腾讯会给你在申请密码保护时的信箱发送一封重新设置密码的邮件,收到后我们点击邮件里面的链接地址,在弹出的网页中就可以来设置网络硬盘密码了,输入你的QQ号码和网络硬盘的密码,设置好后点击“确定”按钮,这样你的网络硬盘就设置好了密码,是不是很方便啊.
怎样给电脑上的f盘加密?
一、加密文件或文件夹步骤一:打开Windows资源管理器。 步骤二:右键单击要加密的文件或文件夹,然后单击“属性”。 步骤三:在“常规”选项卡上,单击“高级”。 选中“加密内容以便保护数据”复选框在加密过程中还要注意以下五点:1.要打开“Windows资源管理器”,请单击“开始→程序→附件”,然后单击“Windows资源管理器”。 2.只可以加密NTFS分区卷上的文件和文件夹,FAT分区卷上的文件和文件夹无效。 3.被压缩的文件或文件夹也可以加密。 如果要加密一个压缩文件或文件夹,则该文件或文件夹将会被解压。 4.无法加密标记为“系统”属性的文件,并且位于systemroot目录结构中的文件也无法加密。 5.在加密文件夹时,系统将询问是否要同时加密它的子文件夹。 如果选择是,那它的子文件夹也会被加密,以后所有添加进文件夹中的文件和子文件夹都将在添加时自动加密。 二、解密文件或文件夹步骤一:打开Windows资源管理器。 步骤二:右键单击加密文件或文件夹,然后单击“属性”。 步骤三:在“常规”选项卡上,单击“高级”。 步骤四:清除“加密内容以便保护数据”复选框。 同样,我们在使用解密过程中要注意以下问题:1.要打开“Windows资源管理器”,请单击“开始→程序→附件”,然后单击“Windows资源管理器”。 2.在对文件夹解密时,系统将询问是否要同时将文件夹内的所有文件和子文件夹解密。 如果选择仅解密文件夹,则在要解密文件夹中的加密文件和子文件夹仍保持加密。 但是,在已解密文件夹内创立的新文件和文件夹将不会被自动加密
发表评论