+ xPKQ90ht2zqmFz / sNF / sycDi6hYTYvF8Fcg9x -

OpenZFS原生加密的快速入门指南

通过这个简短的指南了解OpenZFS加密的方法、原因和内容。

挂锁的特写照片。
放大 /磁盘加密是一个复杂的主题,但本文应该能让您对OpenZFS的实现有一个可靠的了解。

OpenZFS带来的众多特性之一是ZFS原生加密。本机加密首先在OpenZFS 0.8中引入,它允许系统管理员在ZFS本身内部透明地加密数据。这样就不需要像VeraCrypt,或磁盘加密

OpenZFS的加密算法默认为两者之一AES-256-CCM(在0.8.4之前)或AES-256-GCM(> = 0.8.4)加密= ON.被设置。但它也可以直接指定。目前支持的算法是:

  • AES-128-CCM
  • aes - 192 - ccm
  • AES-256-CCM(默认在OpenZFS < 0.8.4)
  • aes - 128 gcm
  • AES-192-GCM
  • AES-256-GCM(OpenZFS中的默认> = 0.8.4)

不过,OpenZFS原生加密除了所使用的算法之外还有更多的内容——因此,我们将试图从系统管理员的角度为您提供关于“为什么”和“什么”以及简单的“如何”的简要而坚实的基础。

为什么(或者为什么不)OpenZFS本机加密?

一个聪明的Sysadmin,他们想要提供AT-REST加密并不实际上是OpenZFS本机加密,显然是。如引言中所述,VeraCrypt,还有许多其他方案可用,可以在OpenZFS本身的下面或上面分层。

首先,“为什么不呢?”

比如Linux在Openzfs下面有一个优势 - 与全部的磁盘加密后,恶意攻击者将不能再看到ZFS的名称、大小或属性数据集zvols没有钥匙。事实上,攻击者根本无法看到ZFS正在被使用!

但这也有明显的缺点(或类似)OpenZFS下面。每个GNARL最重要的是个人必须加密将成为池一部分的磁盘,在ZFS池之前加载和解密每个卷进口阶段。对于有许多磁盘(在某些情况下是许多磁盘)的ZFS系统来说,这可能是一个值得注意的挑战数以千万计的磁盘。ZFS之下的加密的另一个问题是,额外的层会出问题,而且它可以撤销所有ZFS的正常完整性保证。

或者类似的OpenZFS解决了前面提到的问题—a加密Zvol.无论涉及多少个磁盘,只需要一个键,而且层不能从这里撤销OpenZFS的完整性保证。不幸的是,加密-顶层zfs引入了一个新的问题——它有效地削弱了OpenZFS内嵌压缩,因为加密的数据通常是不可压缩的。这种方法也需要一个的使用Zvol.每个加密的文件系统,以及一个客户文件系统(例如,Ext4.),以格式化卷本身与。

现在,“为什么”

OpenZFS原生加密解决了这一问题:它运行在普通ZFS存储层之上,因此不会削弱ZFS自身的完整性保证。但是它也不会干扰ZFS压缩——数据在被保存到加密之前被压缩数据集或者Zvol.

选择OpenZFS本机加密的令人信服的原因是更加令人信服的原因,但 - 呼吁“RAW发送”。ZFS复制是易于快速而有效的 - 频繁的数量次数比文件系统 - 中性工具更快rsync-原始发送不仅可以复制加密数据集年代和Zvol.s,但要这样做,而不会将关键暴露于远程系统。

这意味着您可以使用ZFS复制将您的数据备份到不可信的位置,无需担心您的私人数据被读取。使用原始发送,复制数据无需解密——备份目标根本无法解密数据。这意味着你可以复制你的离线备份到一个朋友的家里或在一个商业服务,如rsync.net或者zfs.rent.不损害您的隐私,即使服务(或朋友)本身受到损害。

如果您需要恢复Offsite备份,则可以简单地复制它回来到你自己的位置,然后只有然后,加载解密密钥以实际访问数据。这既适用于完整复制(在线路上移动每个单独的块),也适用于异步增量复制(从一个常用的快照开始,只移动自该快照以来发生更改的块)。

什么是加密 - 什么不是?

OpenZFS本机加密不是全磁盘加密方案 - 它在每个数据集/每个ZVOL上启用或禁用,无法为整个池打开。加密数据集或ZVOL的内容受到静止间谍活动 - 但是描述数据集/ ZVols本身的元数据不是。

假设我们创建一个名为池/加密,在它下面,我们创建了更多的子数据集。的加密属性默认情况下继承自父数据集,因此我们可以看到以下内容:

root @ banshee:〜#zfs create -o encryption = on -o keylocation = charper -o keyformat = passphrase banshee /加密输入密码:重新输入密码:root @ banshee:〜#zfs创建banshee /加密/ child1根@ banshee:〜#zfs创建班晨/加密/ child2 root @ banshee:〜#zfs创建孤脸/加密/ child3 root @ banshee:〜#zfs list -r Banshee /加密名称使用的使用可用性盖板班晨/加密1.58m 848g 432k / banshee/加密banshee/encrypted/child1 320K 848G 320K /banshee/encrypted/child1 banshee/encrypted/child2 320K 848G 320K /banshee/encrypted/child2 banshee/encrypted/child3 320K 848G 320K /banshee/encrypted/child3 root@banshee:~# zfs get encryption banshee/encrypted/child1 NAME PROPERTY VALUE SOURCE banshee/encrypted/child1 encryption aes-256-gcm -

此刻,我们的加密数据集全部安装。但即使我们卸下它们并卸载加密键 - 使它们无法访问 - 我们仍然可以看到它们存在,以及他们的财产:

root@banshee: ~ # wget问:/女妖/加密/ child2 HuckFinn.txt http://textfiles.com/etext/AUTHORS/TWAIN/huck_finn root@banshee: ~ # zfs卸载女妖/加密root@banshee: ~ # zfs unload-key - r女妖/ 1/1密钥加密(s)成功地卸载root@banshee: ~ # zfs女妖山/加密不能挂载的女妖/加密:ls: cannot access '/banshee/encrypted/child2': /banshee/encrypted/child2没有这样的文件或目录root@banshee: ~ #效果参考使用zfs - r女妖/加密列表名称挂载点女妖/加密2.19米848克432 k /女妖/加密的女妖/加密/ child1 320 k 848克320 k /女妖/加密/ child1女妖/加密/ child2 944 k 848克720 k /女妖/加密/ child2女妖/加密/格320 k 848克320 k/女妖/加密/格

正如我们可以看到的那样,在卸载加密密钥后,我们再也看出了我们的新下载的副本哈克贝利·芬恩/女妖/加密/ child2 /.我们是什么可以仍然可以看到的是我们整个zfs加密树的存在和结构。我们还可以看到每个加密数据集的属性,包括但不限于使用效果, 和请参考每个数据集。

值得注意的是试图LS.没有加载密钥的加密数据集不一定会产生错误:

root@banshee:~# zfs get keystatus banshee/encrypted NAME PROPERTY VALUE SOURCE banshee/encrypted keystatus unavailable - root@banshee:~# ls /banshee/encrypted root@banshee:~#

这是因为主机上存在裸目录,即使没有挂载实际的数据集。重新加载键值也不会自动重新加载数据集:

root@banshee: ~ # zfs装载键- r女妖/女妖/加密的加密的密码输入:1/1 (s)的关键成功加载root@banshee: ~ # zfs山| grep encr root@banshee: ~ # ls /女妖/加密root@banshee: ~ # ls /女妖/加密/ child2 ls:不能访问“女妖/加密/ child2”:没有这样的文件或目录

以便获得我们最新的哈克贝利·芬恩,我们也需要实际挂载新键重新加载的数据集:

root @ banshee:〜#zfs get keystatus kanshee /加密/ child2名称属性值源banshee / crecrypted / child2 keystatus可用 -  root @ banshee:〜#ls -l / banshee /加密/ conshe2 ls:无法访问'/ banshee /加密/ child2':没有这样的文件或目录root @ banshee:〜#zfs mount -a root @ banshee:〜#ls -lh / banshee /加密/ child2总共401k -rw-r  -  r-- 1根root 554k jun2002年哈克福尼恩.TXT.

现在我们都加载了必要的键挂载数据集后,我们可以再次看到加密的数据。

49读者评论

  1. 有用!谢谢你吉姆。
    2338个帖子|注册
  2. 一如既往的优秀文章。
    |注册了489个帖子
  3. 非常好的写作;我认为任何CPU的表现都是优秀的,但是实现AES-NI(或Equiv),但您是否知道绩效命中的绩效与J1800类似的东西有多大?我知道他们老了,但是嵌入式/工业/无扇形底盘仍有很多人在那里跑去。
    3002帖子|注册
  4. HMM ...有没有任何方法可以同步/使用登录密码/密码自动挂载/加载作为密钥?如在,如果我做用户加密的家庭目录,并且它是用用户密码加密的,可以在用户首次登录时自动安装/卸载,然后用户注销最后一次?虽然像屏幕一样的东西使其更复杂,但系统需要确保在卸载密钥之前,没有用户进程触摸加密数据集。HRM。听起来很难做得很好。

    我猜一个用户(我想更多的个人笔记本电脑与Linux/*BSD与ZFS)可以有一个基本的主目录是未加密的,但所有的子目录是一个加密的数据集的一部分,然后,在第一次UI登录,它提示输入密码,以加载密钥。
    22561个帖子|注册
  5. 是否有一种简单的方法来确定实际使用的加密算法?我看到的唯一相关功能是“加密”,在我的情况下是“开启”。我很好奇关于实际使用哪些算法(无论是CCM还是GCM),但我看不到任何方法可以询问这一点?
    |注册了7389篇帖子
  6. malor写道:
    是否有一种简单的方法来确定实际使用的加密算法?我看到的唯一相关功能是“加密”,在我的情况下是“开启”。我很好奇关于实际使用哪些算法(无论是CCM还是GCM),但我看不到任何方法可以询问这一点?


    按照https://zfsonlinux.org/manpages/0.8.6/man8/zfs.8.html.

    代码:
    加密=关闭|在|AES-128-CCM |AES-192-CCM |AES-256-CCM |AES-128-GCM |AES-192-GCM |AES-256-GCM
    控制用于此数据集的加密密码套件(块密码,键长度和模式)。需要在池上启用加密功能。需要在DataSet创建时间设置keyformat。

    在创建数据集时选择encryption = on表示将选择默认的加密套件,目前是aes-256-gcm。为了提供一致的数据保护,加密必须在数据集创建时指定,之后不能更改。

    有关加密的详细信息和注意事项,请参见加密部分。


    编辑:更新以链接到最新的Managage版本,我链接到已过期的旧版本。

    最后一次编辑Drizzt321于6月23日星期四,2021年7:29

    22561个帖子|注册
  7. malor写道:
    是否有一种简单的方法来确定实际使用的加密算法?我看到的唯一相关功能是“加密”,在我的情况下是“开启”。我很好奇关于实际使用哪些算法(无论是CCM还是GCM),但我看不到任何方法可以询问这一点?

    像这样:
    $ zfs获取加密yourpool / yourdataset
    名称属性值源
    yourpool / yourdataset加密aes-256-gcm -
    2338个帖子|注册
  8. 编辑:没关系,第二篇帖子回答了我的问题。谢谢!

    第二点:顺便说一下,是GCM。
    |注册了7389篇帖子
  9. Nop666写道:
    malor写道:
    是否有一种简单的方法来确定实际使用的加密算法?我看到的唯一相关功能是“加密”,在我的情况下是“开启”。我很好奇关于实际使用哪些算法(无论是CCM还是GCM),但我看不到任何方法可以询问这一点?

    像这样:
    $ zfs获取加密yourpool / yourdataset
    名称属性值源
    yourpool / yourdataset加密aes-256-gcm -


    Malor的问题是当值是“on”时,它是什么算法。根据本文,有两种不同的默认值,这取决于您使用的ZFS版本。基本上过去一年里的任何事情,都在使用GCM。

    @Malor,抱歉,上面的我的链接是用于旧版本的手册页,对不起,根据物品它是-GCM,因为> = 0.8.4,当前ZOL版本为0.8.6。我会更新我的评论。
    22561个帖子|注册
  10. 我想知道的原因是因为我创建它有一段时间了,我不确定我的版本是否正在执行GCM模式。我可能不会重拍它,但我很好奇。幸运的是,它使用了更好的算法。
    |注册了7389篇帖子
  11. jhodge.写道:
    非常好的写作;我认为任何CPU的表现都是优秀的,但是实现AES-NI(或Equiv),但您是否知道绩效命中的绩效与J1800类似的东西有多大?我知道他们老了,但是嵌入式/工业/无扇形底盘仍有很多人在那里跑去。


    根据我的经验,你有希望在没有AESNI的计算机上运行ZFS加密。他们改进了软件模式,但仍然非常缓慢。使用AESNI,它的运行速度与磁盘速度相当。如果没有,就会一团糟。

    我最初尝试在一台老旧的i7-920上进行加密,虽然它很旧,但性能仍然不错。ZFS加密在那个硬件上是灾难性的。系统在沉重的写负载下实际上是不可用的。切换到4790K立即修复了它。

    在我的实验之后,软件方面的改进已经增加了,但我们最近在Ars论坛上张贴了一张海报,试图使用不使用硬件加速的ARM二进制文件,这对他们来说也是一场灾难。

    编辑:如果你没有太多的卷,正如文章所说,你可以使用LUKS加密,这在任何硬件上都是非常快的。但是您可能必须编写解锁过程的脚本,除非您想为每个磁盘输入一个密码。我用类似的方法编写了加载和挂载ZFS键的脚本,因此您可能没有真正丢失任何东西。

    它可能不太可靠,但AFAIK LUKS是一个相当薄的层,所以它可能会反应大约与把ZFS体积直接放在金属上。
    |注册了7389篇帖子
  12. malor写道:
    jhodge.写道:
    非常好的写作;我认为任何CPU的表现都是优秀的,但是实现AES-NI(或Equiv),但您是否知道绩效命中的绩效与J1800类似的东西有多大?我知道他们老了,但是嵌入式/工业/无扇形底盘仍有很多人在那里跑去。


    根据我的经验,你有希望在没有AESNI的计算机上运行ZFS加密。他们改进了软件模式,但仍然非常缓慢。使用AESNI,它的运行速度与磁盘速度相当。如果没有,就会一团糟。

    我最初尝试在一台老旧的i7-920上进行加密,虽然它很旧,但性能仍然不错。ZFS加密在那个硬件上是灾难性的。系统在沉重的写负载下实际上是不可用的。切换到4790K立即修复了它。

    在我的实验之后,软件方面的改进已经增加了,但我们最近在Ars论坛上张贴了一张海报,试图使用不使用硬件加速的ARM二进制文件,这对他们来说也是一场灾难。

    编辑:如果你没有太多的卷,正如文章所说,你可以使用LUKS加密,这在任何硬件上都是非常快的。但是您可能必须编写解锁过程的脚本,除非您想为每个磁盘输入一个密码。我用类似的方法编写了加载和挂载ZFS键的脚本,因此您可能没有真正丢失任何东西。

    它可能不太可靠,但AFAIK LUKS是一个相当薄的层,所以它可能会反应大约与把ZFS体积直接放在金属上。

    无论多么轻便,可怕我,ZFS及其拼盘之间的想法
    即使在这个硅短缺的时代,我觉得如果你要努力配置和部署加密的ZFS,在支持AES-NI的CPU(如果需要的话,还可以换一个新的MB)中进行交换是很容易的。如果没有其他原因,只是有一些信心,它不会在你开始使用时就死于老年;)
    2009年帖子|注册
  13. malor写道:
    是否有一种简单的方法来确定实际使用的加密算法?我看到的唯一相关功能是“加密”,在我的情况下是“开启”。我很好奇关于实际使用哪些算法(无论是CCM还是GCM),但我看不到任何方法可以询问这一点?


    如文章所述,它将是AES-256-CCM或AES-256-GCM,具体取决于创建数据集的OpenZFS版本。

    是的,这很糟糕;是的,它应该显示文字价值,而不仅仅是它最初设置为一些未指定的“默认”。如果在创建ZPOOL时没有手动指定,则使用ASFIFT值与AFFIFT值具有相同的问题。叹。


    编辑:zfs得到加密将向您展示用于加密数据集或zvol的特定算法,即使您在创建它时没有手动指定它。但一定要使用zfs得到,不是ZPOOL.得到……

    最后一次编辑吉姆盐兵2021年6月23日周三晚上8:31

    13294个帖子|注册
  14. 实际问题是我试图在池中读取加密,而不是根文件系统:

    代码:
    ZPool获取功能@加密(卷)

    名称属性值源
    (卷)功能@加密活动本地


    ...这不是我想要的

    然后我做了大量的工作,试图找到要查询的正确字符串,假设它一定在特性@墙后面的某个地方。没有找到任何东西。我在网上搜了一堆,没找到任何明确的信息。于是我问:

    代码:
    ZFS获取加密(卷)/(文件集)
    名称属性值源
    (卷)/(文件集)加密AES-256-GCM -


    瞧,这正是我要找的。我找错地方了,语法也错了。feature@encryption是zpools的东西,但显然它只是对文件集的直接“加密”。

    edit:注意,我可能已经直接设置了算法,而不是使用'on'。我花了几天时间研究ZFS并预构建我的文件系统创建行。
    |注册了7389篇帖子
  15. malor写道:
    实际问题是我试图在池中读取加密,而不是根文件系统:

    代码:
    ZPool获取功能@加密(卷)

    名称属性值源
    (卷)功能@加密活动本地


    ...这不是我想要的

    然后我做了大量的工作,试图找到要查询的正确字符串,假设它一定在特性@墙后面的某个地方。没有找到任何东西。我在网上搜了一堆,没找到任何明确的信息。于是我问:

    代码:
    ZFS获取加密(卷)/(文件集)
    名称属性值源
    (卷)/(文件集)加密AES-256-GCM -


    瞧,这正是我要找的。我找错地方了,语法也错了。feature@encryption是zpools的东西,但显然它只是对文件集的直接“加密”。


    啊,好的。是的,“ZPool Get`让您知道您的池支持加密,并且在这种情况下,该功能是活跃的在这池……在某处。但它只是检查你的池是否支持这个功能,而不是关于你如何支持的任何细节使用的特性。

    ' zfs get '返回特定数据集或zvol本身的zfs属性,这是你想要的(应用到数据集或zvol你首先好奇)。

    引用:
    edit:注意,我可能已经直接设置了算法,而不是使用'on'。我花了几天时间研究ZFS并预构建我的文件系统创建行。


    实际上,看起来这并不是转换失败的又一次;我肯定没有手动设置算法在我的例子在文章中,但我看到我自己的' zfs获得加密'在我自己的文章中表明,你得到实际的算法回去,而不是仅仅打开。

    也许下次我可以…
    13294个帖子|注册
  16. 吉姆盐兵写道:
    也许下次我可以…

    当我写下我的时候最著名的线(评论2)去年,我只是在开玩笑。

    不出所料,我没能因此赢得编辑奖。: P
    2574帖子|挂号的
  17. 需要注意的一点是,不幸的是,在引导期间远程SSH解锁zfs数据集只有在openzfs 2.0或更高版本中。原始的PR是: https://github.com/openzfs/zfs/pull/10027

    但是,这仍然可以为旧的zfs版本设置!对于我的Ubuntu 20.04 NAS,我最终提取了openzfs 2.0的debian包(但没有安装它!),并将相关文件从/usr/share/initramfs-tools复制到/etc/initramfs-tools,将我的密钥添加到/etc/dropbear-initramfs/,并重新构建initramfs。现在,我可以解锁我的NAS,而不必诉诸于将密钥文件放在u盘或类似的地方。

    一个附带的好处是,我目前有两个池;一个用于操作系统和应用程序的SSD启动池,一个用于大容量存储的锈池。我在同样加密的根池上放置了一个密钥文件,因此添加一个额外的调用来导入池并在解锁根池后立即运行' zfs load-key -a '是很简单的。

    我很高兴我这样做了,而不是运行一个2.0的后端口来获得解锁功能。我在主机上运行Docker,然后 https://github.com/openzfs/zfs/issues/11480 这无疑是我在很长一段时间内见过的影响生产系统的最令人心惊肉跳的文件系统问题之一。
    39帖子|挂号的
  18. malor写道:
    实际问题是我试图在池中读取加密,而不是根文件系统:

    代码:
    ZPool获取功能@加密(卷)

    名称属性值源
    (卷)功能@加密活动本地


    ...这不是我想要的

    然后我做了大量的工作,试图找到要查询的正确字符串,假设它一定在特性@墙后面的某个地方。没有找到任何东西。我在网上搜了一堆,没找到任何明确的信息。于是我问:

    代码:
    ZFS获取加密(卷)/(文件集)
    名称属性值源
    (卷)/(文件集)加密AES-256-GCM -


    瞧,这正是我要找的。我找错地方了,语法也错了。feature@encryption是zpools的东西,但显然它只是对文件集的直接“加密”。

    很高兴我能帮上忙!:)

    此外,你可以获得所有属性及其设置的列表:
    ZFS获取所有(卷)/(文件集)
    2338个帖子|注册
  19. 我的驱动器明天会出现扩展我的TrueNAS盒子。看来这次我要对硬盘进行加密了。

    即使有速度达到速度,只要它仍然足够快,可以使用Plex对我来说是罚款的模糊备份。
    |注册了1085个帖子
  20. 坏死写道:
    我的驱动器明天会出现扩展我的TrueNAS盒子。看来这次我要对硬盘进行加密了。

    即使有速度达到速度,只要它仍然足够快,可以使用Plex对我来说是罚款的模糊备份。


    如果你谈论的是带有AES-NI的CPU,那就没问题了。如果它没有AES-NI…它可能不够强大。很明显,你会发现的。
    22561个帖子|注册
  21. 吉姆盐兵写道:
    也许下次我可以…


    哦,该死。答案一直都在那里。我仔细阅读了这篇文章,但显然没有图像。
    |注册了7389篇帖子
  22. “不幸的是,一旦创建数据集或Zvol,您就无法轻松地从交互式提示切换到密钥文件”

    根据手册页(以及本文后面提到的change-key),这似乎不正确:

    男人zfs写道:
    即使在数据集创建后无法更改加密套件,LeyLocation也可以使用ZFS集或ZFS更改键。
    164帖子|挂号的
  23. Drizzt321写道:
    HMM ...有没有任何方法可以同步/使用登录密码/密码自动挂载/加载作为密钥?如在,如果我做用户加密的家庭目录,并且它是用用户密码加密的,可以在用户首次登录时自动安装/卸载,然后用户注销最后一次?虽然像屏幕一样的东西使其更复杂,但系统需要确保在卸载密钥之前,没有用户进程触摸加密数据集。HRM。听起来很难做得很好。

    我猜一个用户(我想更多的个人笔记本电脑与Linux/*BSD与ZFS)可以有一个基本的主目录是未加密的,但所有的子目录是一个加密的数据集的一部分,然后,在第一次UI登录,它提示输入密码,以加载密钥。

    在Linux上,可以写入PAM模块以处理此操作。
    164帖子|挂号的
  24. 我是一个论坛发帖人,对ZFS加密在ARM上的性能感到失望:事实证明,这是因为OpenZFS从一开始就不支持ARM上的硬件加密。

    我已经开始了与DEVS讨论甚至试图实施自己,但我不是Linux内核/内核模块和集会的专家,我正在努力。

    如果有人感兴趣,请加入讨论:欢迎帮助:)
    538个帖子|注册
  25. 很好的介绍。

    提示:当加密的子数据集通过SANOID / SYNCOID复制时,数据集在Replication Target(例如,转换为“提示”)而不是键盘定位的路径丢失其继承的加密参数。使用RAW发送时。在解锁目标和父级并使用“ZFS Change-key -i ...”之后,这可以修复。

    另外,基准加密性能。
    我写了一个bash脚本,基于一年前Jim的fio文章,它尝试了不同的算法和记录大小组合,用于带有USB3硬盘的树莓派。我的结论是512kb的记录比1M的记录性能更好,而且CCM优于GCM(显然,在我的例子中,就是YMMV)。

    (编辑:当fio使用大块写时,512kb的记录大小比1mb的记录大小表现得更好,尽管“传统观点”认为在这种情况下1mb的记录大小应该更好。我不知道这是否与USB硬盘性能或树莓本身有关,但由于这种组合是我使用的离线备份方法,我不关心为什么。)

    最后一次编辑新闻2021年6月24日周四早上6点半

    |注册了331个帖子
  26. 我希望ZFS能够开发的一件事是可否认加密。在许多国家——比如英国——拥有无法在政府需要时解密的加密数据是一种威胁可判处两年或五年监禁的罪行.例如,在一个共享的ZFS服务器上,某人可能不拥有一个给定zvol的加密密钥,但是ZFS元数据的存在足以证明它的存在。

    我意识到在LUKS上运行ZFS可以解决这个问题(用一些骗人的方法),但是ZFS本身没有一个命令行选项来隐藏元数据,这似乎很奇怪。
    |注册了187个帖子
  27. Landak写道:
    我希望ZFS能够开发的一件事是可否认加密。在许多国家——比如英国——拥有无法在政府需要时解密的加密数据是一种威胁可判处两年或五年监禁的罪行.例如,在一个共享的ZFS服务器上,某人可能不拥有一个给定zvol的加密密钥,但是ZFS元数据的存在足以证明它的存在。

    我意识到在LUKS上运行ZFS可以解决这个问题(用一些骗人的方法),但是ZFS本身没有一个命令行选项来隐藏元数据,这似乎很奇怪。


    我在ZFS下困扰了Geli,因为,从后面升级到唯一的选项,但即使是磁盘上的标题:(我希望ZFS/FreeBSD能提供一种合适的迁移方式,但这就是生活。游泳池很快就要升级了,到时候我会修好的。

    您所描述的法律难题的解决方案是知道谁控制您服务器上的哪些数据,以便您可以出卖它们。理想情况下,你应该召集当地的国会议员,让他们相信这种狗屁法律是狗屁,但他们现在似乎只在这类事情上服从他们的特拉索普主人。
    452个帖子|注册
  28. Drizzt321写道:
    坏死写道:
    我的驱动器明天会出现扩展我的TrueNAS盒子。看来这次我要对硬盘进行加密了。

    即使有速度达到速度,只要它仍然足够快,可以使用Plex对我来说是罚款的模糊备份。


    如果你谈论的是带有AES-NI的CPU,那就没问题了。如果它没有AES-NI…它可能不够强大。很明显,你会发现的。


    我的Poxy老芹菜1610没有AES的工作就好了解这一点。没有带宽来转码,但它可以轻松地比即使是最高比特率模糊撕裂。
    452个帖子|注册
  29. 友情提醒:

    *只对你可能会丢失的数据进行加密。
    *记住,你终有一死,如果发生什么可怕的事情,你加密的数据可能会永远丢失(除了死亡,还有很多其他事情可以让你忘记)。
    *人们忘记密码。

    我不是在劝阻这里的任何人不要加密他们的数据,我只是相信很多人没有必要使用它。
    |注册了242个帖子
  30. 好文章!

    不过关于这个:
    引用:
    使用提示符需要每次都人工解锁加密的卷。

    我知道你的目标可能是让事情变得简单,但我实际上在自动化(没有人参与)中使用提示而不是密钥文件,因为我只是发现它更方便,例如,在macOS上,你可以这样做:

    代码:
    -w | ZFS load-key "${dataset}"


    这让我在麦斯科斯键盘中保留密码,如我将用于加密的非系统APFS卷,核心存储,磁盘映像等(对于想要执行此操作的人,记住将/ usr / bin / security添加到列表中可以访问脚本钥匙链条目的应用程序,或者它不起作用)

    虽然Keyfile可能会被正确处理,但提示您可以从您喜欢的任何地方提取密码,以便以这种方式自动化非常方便。

    我是OpenZFS加密的巨大粉丝,使事情更简单,而ZFS发送能够发送加密块是非常棒的备份。

    唯一缺少的功能是一个免费的替代我的旧的Synology NAS(但仍然在完美的工作秩序),它只支持BTRFS;幸运的是,它也做iSCSI,所以我仍然可以ZFS发送到它的方式,但这很难说是一个理想的方式来做。
    |注册了3142个帖子
  31. 很好的文章。

    除了使用本机ZFS加密的所有优点,备份到远程ZFS服务器的能力,保留在运输过程中加密的所有数据,然后在休息(没有任何解密/加密)对我来说非常令人兴奋。

    当然,传输也会加密,但通过一直保持数据加密,可以提供强大的安全保障,并将难以置信地简化我的程序和我的文书工作!
    是的,应记录强有力的安全性并证明,有很多合理要求客户的文书工作。
    916帖子|挂号的
  32. 有人知道zfs是否使用它自己的AES实现,或者它是否使用内核的现有的?因为
    遵从性。
    |注册了85个帖子
  33. 友情提醒:

    *只对你可能会丢失的数据进行加密。
    *记住,你终有一死,如果发生什么可怕的事情,你加密的数据可能会永远丢失(除了死亡,还有很多其他事情可以让你忘记)。
    *人们忘记密码。

    我不是在劝阻这里的任何人不要加密他们的数据,我只是相信很多人没有必要使用它。


    加密*一切*所以*当*硬件失败时,您可以折腾无后顾之忧。

    还要定期备份脱机资源....

    ZFS快照极大地简化了备份/恢复…

    年代
    607帖子|挂号的
  34. 文章中的Veracrypt链接相当古老——指向一个在2017年进入存档模式并在6天内被关闭的网站。真奇怪,它怎么会出现在文章里。 https://veracrypt.fr/ 是准确的链接。
    |注册了55个帖子
  35. 这就是为什么我读ars。这个和啤酒杯的文章!
    4个帖子|注册
  36. danpritts写道:
    有人知道zfs是否使用它自己的AES实现,或者它是否使用内核的现有的?因为
    遵从性。


    ZFS只能使用最基本的内核设施,因为它不是GPL,而且内核开发人员几乎把他们所做的一切都排除在非GPL代码之外。

    实际上,您在Linux-ZFS系统中有两个代码堆栈.... Linux侧和ZFS侧。这可能是为什么ZFS违反正常Linux层的一部分;由于它无法使用Linux优惠,因此它几乎可以从金属向上重新实现。它发现并管理自己的磁盘,管理自己的压缩,加密和错误检测,自身重建,并提供自己的挂载命名空间。用户级程序不会看到差异很大,它们仍然只是与磁盘上的文件交谈,但是当它们在ZFS数据集上时,它们与整个单独的代码库进行交互。

    默认情况下,ZFS默认情况下,ZFS允许使用的唯一一个非常值得注意的问题,以便在系统中使用AS CACH。在记忆压力下将其释放到系统可能会缓慢,这可能会导致重大问题。我很确定你可以调整RAM分配,虽然我没有烦恼地查找如何,作为我现在唯一运行的系统是一个专用服务器,并且可以使用它的一半内存缓存。
    |注册了7389篇帖子
  37. Neshika写道:
    文章中的Veracrypt链接相当古老——指向一个在2017年进入存档模式并在6天内被关闭的网站。真奇怪,它怎么会出现在文章里。 https://veracrypt.fr/ 是准确的链接。


    因为另一个链接有更多的Googlejuice,在包装锚标签之前我没有仔细研究它(因为我记得上次看到Veracrypt的时候,也就是TrueCrypt被放弃不久之后,它是Veracrypt的官方网站)。

    固定了。谢谢你的提示!
    13294个帖子|注册
  38. malor写道:
    我非常确定您可以调优内存分配,尽管我还没有查找如何调优


    创建/etc/modprobe.d/zfs.conf文件并设置选项zfs zfs_arc_max =以字节为单位。

    是的,字节。不,它不会尊重或理解单位后缀。是的,这使得一个血腥巨大的1TiB内存的服务器上的数字…
    13294个帖子|注册
  39. 吉姆盐兵写道:
    malor写道:
    我非常确定您可以调优内存分配,尽管我还没有查找如何调优


    创建/etc/modprobe.d/zfs.conf文件并设置选项zfs zfs_arc_max =以字节为单位。

    是的,字节。不,它不会尊重或理解单位后缀。是的,这使得一个血腥巨大的1TiB内存的服务器上的数字…


    *梦想*我们在工作中做一些相当他妈的大的铁,但1T RAM仍然是4倍的最大的玩具,我目前有访问。
    452个帖子|注册

你必须评论。

通道Ars Technica