返回顶部
首页 > 资讯 > 操作系统 >Linux下如何使用Stratis的网络绑定磁盘加密
  • 202
分享到

Linux下如何使用Stratis的网络绑定磁盘加密

2023-06-28 09:06:34 202人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关linux下如何使用Stratis的网络绑定磁盘加密,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Stratis 是一个卷管理文件系统volume-managing files

这篇文章将为大家详细讲解有关linux下如何使用Stratis的网络绑定磁盘加密,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Stratis 是一个卷管理文件系统volume-managing filesystem(VMF),类似于 ZFS 和 Btrfs。它使用了存储“池”的核心思想,该思想被各种 VMF 和 形如 LVM 的独立卷管理器采用。

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 的更多信息,请参见手册页(man tang、man clevis)、Tang 的 GitHub 页面 和 Clevis 的 gitHub 页面。

设置 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 --permanentfirewall-cmd --add-port=80/tcp

最后,运行 tang-show-keys 来显示输出签名密钥指纹。你以后会需要这个。

# tang-show-keysl3fZGUCmnvKQF_OA6VZF9jf8z2s

创建加密的 Stratis 池

第一步是捕获一个将用于解密 Stratis 池的密钥。即使使用 NBDE,也需要设置这个,因为在 NBDE 服务器无法到达的情况下,可以用它来手动解锁池。使用以下命令捕获 pool1 密钥。

# stratis key set --capture-key pool1keyEnter 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 参数跳过对指纹的验证。

使用 -thumbprint 参数更安全。例如:

# stratis filesystem create pool1 filesystem1# mkdir /filesystem1# mount /dev/stratis/pool1/filesystem1 /filesystem1# cd /filesystem1# echo "this is a test file" > testfile

用 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

你可以通过将两个原始文件改名为以句号开头的隐藏文件,来防止旧的密钥(以 l3fZ 开头)被公布。通过这种方法,旧的密钥将不再被公布,但是它仍然可以被任何没有更新为使用新密钥的现有客户端使用。一旦所有的客户端都更新使用了新密钥,这些旧密钥文件就可以删除了。

# 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 data followed by the return key:

最后,用更新后的密钥指纹将 Stratis 池绑定到 Tang 服务器上:

# stratis pool listName Total Physical Properties

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 data followed by the return key:

然后你可以使用钥匙解锁池:

# stratis pool unlock keyring

接下来,验证池是否成功解锁:

# stratis pool listName Total Physical Propertiespool1 4.98 GiB / 583.65 MiB / 4.41 GiB ~Ca, Cr

关于“Linux下如何使用Stratis的网络绑定磁盘加密”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Linux下如何使用Stratis的网络绑定磁盘加密

本文链接: https://lsjlt.com/news/318452.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux下如何使用Stratis的网络绑定磁盘加密
    这篇文章将为大家详细讲解有关Linux下如何使用Stratis的网络绑定磁盘加密,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Stratis 是一个卷管理文件系统volume-managing files...
    99+
    2023-06-28
  • Linux 7下如何使用udev绑定ASM磁盘
    小编给大家分享一下Linux 7下如何使用udev绑定ASM磁盘,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • Linux下如何使用cryptsetup对磁盘进行加密
    这篇文章主要介绍Linux下如何使用cryptsetup对磁盘进行加密,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!cryptsetup是linux下的一个分区加密工具,cryptsetup是分区级别的加密,比文件系...
    99+
    2023-06-27
  • 如何自动解锁Linux上的加密磁盘
    这篇文章给大家分享的是有关如何自动解锁Linux上的加密磁盘的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。通过使用网络绑定磁盘加密(NBDE),无需手动输入密码即可打开加密磁盘。从安全的角度来看,对敏感数据进行加...
    99+
    2023-06-15
  • 如何自动解锁Linux上的加密磁盘怎样
    如何自动解锁Linux上的加密磁盘怎样,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。通过使用网络绑定磁盘加密(NBDE),无需手动输入密码即可打开加密磁盘。对于系统安全来说,防...
    99+
    2023-06-28
  • Linux下如何使用Evilscan扫描网络
    小编给大家分享一下Linux下如何使用Evilscan扫描网络,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Evilscan 是一个网络扫描器,它运行在 Node...
    99+
    2023-06-27
  • 如何使用linux 系统下磁盘检测工具e2fsck
    这篇文章主要讲解了“如何使用linux 系统下磁盘检测工具e2fsck”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用linux 系统下磁盘检测工具e2fsck”吧!指令:e2fsck...
    99+
    2023-06-10
  • Linux系统下如何查看磁盘IO使用情况
    这篇文章主要为大家展示了Linux系统下如何查看磁盘IO使用情况,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“Linux系统下如何查看磁盘IO使用情况”这篇文章吧。1.iostat:1.1 命令格...
    99+
    2023-06-27
  • Linux如何查看内存、磁盘、CPU以及网络的状态
    这篇文章主要介绍“Linux如何查看内存、磁盘、CPU以及网络的状态”,在日常操作中,相信很多人在Linux如何查看内存、磁盘、CPU以及网络的状态问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux如何...
    99+
    2023-06-22
  • 【PHP面试题16】Linux下面如何查看CPU,磁盘,内存,网络等资源使用情况
    文章目录 一、概览二、top命令2.1 使用方法2.2 输出解释 三、htop命令3.1 安装方法3.2 使用方法3.3 输出解释 四、free命令4.1 使用方法4.2 输出解释 ...
    99+
    2023-09-27
    linux 网络 运维 CPU 资源管理
  • Linux下如何使用GPG加密和解密文件
    这篇文章给大家分享的是有关Linux下如何使用GPG加密和解密文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。GnuPG(英文:GNU Privacy Guard,简称:GPG)是加的免费工具,大多用于加密信息...
    99+
    2023-06-27
  • 如何进行Linux下双网卡绑定bond的配置
    如何进行Linux下双网卡绑定bond的配置,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、什么是bond 网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡冗余,带...
    99+
    2023-06-06
  • Linux中如何使用netpas网络加速器
    这篇文章将为大家详细讲解有关Linux中如何使用netpas网络加速器,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。2 准备工作2.1 好点的机器配置。既然是用虚拟机跑代理,当然机子内存要大...
    99+
    2023-06-13
  • Linux下如何使用parted命令对磁盘进行分区
    这篇文章主要为大家展示了“Linux下如何使用parted命令对磁盘进行分区”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何使用parted命令对磁盘进行分区”这篇文章吧。part...
    99+
    2023-06-27
  • Linux下如何使用nmap扫描网络IP
    小编给大家分享一下Linux下如何使用nmap扫描网络IP,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!nmap全称为Network Mapper。是一款网络扫描...
    99+
    2023-06-27
  • Linux下如何使用tvtime看网络电视
    小编给大家分享一下Linux下如何使用tvtime看网络电视,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!tvtime是一个在Linux平台上运作的电视软件,主要作为Linux平台上的电视卡前端播放接口。该软件与PPStr...
    99+
    2023-06-27
  • 如何使用Linux下NFS网络文件系统
    本篇内容主要讲解“如何使用Linux下NFS网络文件系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Linux下NFS网络文件系统”吧!0.什么是NFS(Network FileSys...
    99+
    2023-06-12
  • Linux下如何使用bmon进行网络监视
    小编给大家分享一下Linux下如何使用bmon进行网络监视,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!bmon是系统中一个基于文本,简单但非常强大的网络监视和调...
    99+
    2023-06-27
  • 如何在Linux中使用nmcli命令绑定多块网卡
    如何在Linux中使用nmcli命令绑定多块网卡?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。网卡绑定为我们提供了两个主要的好处:现在让我们在 CentOS 7 上配置网卡绑定...
    99+
    2023-06-13
  • 如何使用linux网络编程用到的网络函数
    本篇内容主要讲解“如何使用linux网络编程用到的网络函数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用linux网络编程用到的网络函数”吧!一.概念介绍网络程序分为服务端程序和客户端程...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作