的许多特性OpenZFS带给表ZFS本机加密。首先在OpenZFS 0.8中引入的,本地加密允许系统管理员透明加密数据静止在ZFS本身。这消除了需要单独的工具陆,VeraCrypt,或磁盘加密。
OpenZFS加密算法的默认aes - 256 - ccm
(0.8.4之前)或aes - 256 gcm
(> = 0.8.4)时加密上=
是集。但它也可能是直接指定。目前支持的算法是:
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谁想提供静态加密实际上并不需要OpenZFS本机加密,显然。在介绍中提到的,陆
,VeraCrypt
和许多其他方案可用,可以分层下或在OpenZFS本身。
第一,“为什么不”
把类似Linux的陆
OpenZFS下面有一个优势整个磁盘加密,一个进取的攻击者可以不再看名称,大小,或ZFS的属性数据集
和zvols
没有访问的关键。事实上,攻击者不一定能看到,ZFS使用!
但将有显著的缺点陆
OpenZFS下(或类似)。的一个多节是每个个人磁盘将池的一部分必须加密,每卷加载和解密ZFS前池进口
阶段。ZFS系统这是一个明显的挑战与许多磁盘的某些情况下,很多数以千万计的磁盘。encryption-beneath-ZFS的另一个问题是,额外的层是一个额外的事情去——它能够撤销ZFS的正常完整性保证。
把陆
或类似在OpenZFS摆脱上述问题陆
加密zvol
只需要一个关键不管有多少磁盘,和陆
从这里层不能撤销OpenZFS的完整性保证。不幸的是,encryption-atop-ZFS引入了一个新的计算有效削弱OpenZFS内联压缩,因为加密的数据通常是不可压缩的。这种方法也需要使用一个zvol
每个加密文件系统,以及客人的文件系统(例如,ext4
)格式陆
体积本身。
现在,“为什么”
OpenZFS本机加密分裂的区别:它运行在正常的ZFS存储层,因此不会削弱ZFS的完整性保证。但也并不妨碍ZFS压缩数据被保存到一个加密之前被压缩数据集
或zvol
。
rsync
——原始发送不仅可以复制加密数据集
年代和zvol
年代,但这样做没有暴露远程系统的关键。这意味着您可以使用ZFS复制到一个备份你的数据不可信的位置,没有担心你的私人数据被读取。与原始发送、数据复制没有被解密和没有备份目标是否能够解密。这意味着您可以复制你的离线备份到一个朋友家或商业服务rsync.net或zfs.rent在不影响你的隐私,即使服务(或朋友)本身就是妥协。
如果您需要恢复您的离线备份,您可以简单地复制它回来自己的location-then,只有然后,加载解密密钥来访问数据。这适用于完整的复制(移动每一块在丝)或异步增量复制(从普遍持有的快照,只有移动块之后修改过的快照)。
什么是加密的,什么不是吗?
OpenZFS本机加密不是全盘加密的计划中,启用或禁用per-dataset / per-zvol基础上,和它不能打开整个池作为一个整体。加密的数据集的内容或zvols免受静态spying-but描述数据集的元数据/ zvols自己不是。
假设我们创建一个加密的数据集命名池/加密
下面,我们创造更多的子数据集。的加密
属性为孩子们默认继承的父数据集,我们可以看到以下几点:
root@banshee: ~ # zfs上创建加密= - o - o - o keyformat keylocation =提示=密码女妖/加密输入密码:输入密码:root@banshee: ~ # zfs创建女妖/加密/ child1 root@banshee: ~ # zfs创建女妖/加密/ child2 root@banshee: ~ # zfs创建女妖/加密/格root@banshee: ~ #效果参考使用zfs - r女妖/加密列表名称挂载点女妖/加密1.58米848克432 k /女妖/加密的女妖/加密/ child1 320 k 848克320 k /女妖/加密/ child1女妖/加密/ child2 320 k 848克320 k /女妖/加密/ child2女妖/加密/格320 k 848克320 k /女妖/加密/格root@banshee: ~ # zfs得到加密女妖/加密/女妖child1名称属性值来源/加密/ child1加密aes - 256 - gcm -
目前,我们的加密数据集都是安装。但即使我们卸载他们和卸载加密key-making inaccessible-we仍然可以看到他们存在,以及它们的属性:
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女妖山/加密不能挂载的女妖/加密:加密密钥不加载root@banshee: ~ # ls /女妖/加密/ child2 ls:不能访问“女妖/加密/ 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-encrypted树。我们还可以看到每一个加密的数据集的属性,包括但不限于使用
,效果
,请参考
每个数据集。
值得注意的是,努力ls
一个加密的数据集没有关键加载不一定会产生一个错误:
root@banshee: ~ # zfs keystatus女妖/加密的名称属性值来源女妖/加密keystatus不可用——root@banshee: ~ # ls /女妖/加密root@banshee: ~ #
这是因为一个裸体的目录存在于主机,即使实际的数据集是不安装。重载的关键并不自动重新安装数据集,:
root@banshee: ~ # zfs装载键- r女妖/女妖/加密的加密的密码输入:1/1 (s)的关键成功加载root@banshee: ~ # zfs山| grep encr root@banshee: ~ # ls /女妖/加密root@banshee: ~ # ls /女妖/加密/ child2 ls:不能访问“女妖/加密/ child2”:没有这样的文件或目录
为了访问我们的最新副本《哈克贝利·费恩历险记》实际上,我们还需要挂载新key-reloaded数据集:
root@banshee: ~ # zfs keystatus女妖/加密/ child2名称属性值来源女妖/加密/ child2 keystatus可用- root@banshee: ~ # ls - l /女妖/加密/ child2 ls:不能访问“女妖/加密/ child2”:没有这样的文件或目录root@banshee: ~ # zfs山——root@banshee: ~ # ls lh /女妖/加密/总401 k child2 -rw-r根554 k - r - 1根2002年6月13日HuckFinn.txt
现在我们已经都加载必要的关键和安装的数据集,我们可以再次见到我们的加密数据。
60读者评论
我猜一个用户(我想更多的个人笔记本电脑和Linux / * BSD ZFS)基地home-dir是未加密的,但所有的sub-dirs加密的数据集的一部分,然后,在第一个界面登录,提示输入密码来加载密钥。
按https://zfsonlinux.org/manpages/0.8.6/man8/zfs.8.html
控制加密密码套件(分组密码、密钥长度和模式)用于此数据集。需要启用加密功能池。需要keyformat被设置在创建数据集时。
选择加密=当创建一个数据集显示默认加密套件将被选中,目前aes - 256 gcm为了提供一致的数据保护,加密必须指定在创建数据集时,它不能改变。
关于加密的更多细节和注意事项请参见加密部分。
编辑:链接到最新的从版本更新,我与一个过时的旧版本。
最后一次编辑Drizzt321在结婚2021年6月23日,29点
像这样:
zfs得到加密YourPool / YourDataset美元
名称属性值来源
YourPool / YourDataset加密aes - 256 - gcm -
第二个编辑:GCM,顺便说一句。
像这样:
zfs得到加密YourPool / YourDataset美元
名称属性值来源
YourPool / YourDataset加密aes - 256 - gcm -
malor的问题是当该值为“on”,它是什么算法。根据这篇文章,有两种不同的默认值,这取决于你使用ZFS的版本。基本上任何在过去一年左右的时间里,用GCM。
上面@malor,对不起,我的链接是一个旧版本的手册页,对不起,本文根据gcm, > = 0.8.4以来,与当前被0.8.6 ZoL版本。我将更新我的评论。
根据我的经验,你做的事情不想要运行没有AESNI ZFS加密在电脑上。他们改进了软件模式,但它仍然非常缓慢。AESNI,它运行在磁盘速度差不多。不,它是一个烂摊子。
我最初尝试加密在旧i7 - 920,这是古老的,但仍然相当性能。ZFS硬件加密是灾难性的坏。系统不能有效地使用下一个沉重的写负载。交换到4790 k立即固定它。
软件改进添加了因为我的实验,但我们有一个最近的海报在Ars论坛试图使用ARM二进制文件,没有使用他们的硬件加速,对他们来说,这是一个灾难。
编辑:如果你没有太多的卷,就像文章说的那样,您可以使用——加密,很快在任何硬件。但是你可能需要脚本解锁过程,每个磁盘,除非你想输入一个密码。我同样的脚本ZFS键加载和安装,所以你可能没有真正失去什么。
这可能有点不可靠,但AFAIK陆很瘦层,所以它可能会反应相当于把ZFS体积直接在金属上。
根据我的经验,你做的事情不想要运行没有AESNI ZFS加密在电脑上。他们改进了软件模式,但它仍然非常缓慢。AESNI,它运行在磁盘速度差不多。不,它是一个烂摊子。
我最初尝试加密在旧i7 - 920,这是古老的,但仍然相当性能。ZFS硬件加密是灾难性的坏。系统不能有效地使用下一个沉重的写负载。交换到4790 k立即固定它。
软件改进添加了因为我的实验,但我们有一个最近的海报在Ars论坛试图使用ARM二进制文件,没有使用他们的硬件加速,对他们来说,这是一个灾难。
编辑:如果你没有太多的卷,就像文章说的那样,您可以使用——加密,很快在任何硬件。但是你可能需要脚本解锁过程,每个磁盘,除非你想输入一个密码。我同样的脚本ZFS键加载和安装,所以你可能没有真正失去什么。
这可能有点不可靠,但AFAIK陆很瘦层,所以它可能会反应相当于把ZFS体积直接在金属上。
的想法把* * ZFS和磁盘之间的任何东西,无论多么轻量级,令我感到恐惧。
即使在这个硅短缺的时代,我觉得如果你要通过努力来配置和部署加密ZFS,它真的是* *容易证明交换的CPU支持AES-NI(和一个新的MB,如果需要的话)。如果没有其他原因比一些信心,它不会死于年老一旦你开始使用它
在文章中提到的,它将aes - 256 - ccm或aes - 256 gcm根据OpenZFS版本创建的数据集。
是的,那很糟糕;是的,它应该显示的文字值,而不仅仅是最初设置为某些“默认”。我们ashift值具有相同的问题,只是显示为“0”,如果ashift不是手动使用zpool创建时指定。叹息。
编辑:zfs得到加密将向您展示的具体算法用于加密数据集或zvol,即使你没有手动指定当你创建它。但一定要使用zfs得到,而不是zpool得到……
最后一次编辑吉姆·索尔特在结婚2021年6月23日,31点
名称属性值来源
(体积)feature@encryption活跃的地方
…这不是我想要的。
然后我做了大量的恶搞试图找到正确的查询字符串,假设它一定feature@墙后面的某个地方。没有找到任何东西。做了一系列的网络搜索,没有发现任何显式的。然后我问,:
名称属性值来源
(体积)/(文件集)加密aes - 256 - gcm -
瞧,我正在寻找什么。我在错误的地方,错误的语法。zpool feature@encryption是一件事,但显然它只是直接“加密”的文件集。
编辑:注意,我可能会直接算法而不是使用“上”。我花了几天时间研究ZFS和预构建文件系统创建线。
名称属性值来源
(体积)feature@encryption活跃的地方
…这不是我想要的。
然后我做了大量的恶搞试图找到正确的查询字符串,假设它一定feature@墙后面的某个地方。没有找到任何东西。做了一系列的网络搜索,没有发现任何显式的。然后我问,:
名称属性值来源
(体积)/(文件集)加密aes - 256 - gcm -
瞧,我正在寻找什么。我在错误的地方,错误的语法。zpool feature@encryption是一件事,但显然它只是直接“加密”的文件集。
啊哈,好吧。是的,“zpool得到”让你知道你的池支持加密,也在这种情况下,功能活跃的在这池……在某处。但它真的只是检查看看您的池支持该功能,没有任何细节关于你使用的特性。
zfs得到的回报zfs特定数据集或zvol本身的属性,这是你想要的(应用于数据集或zvol你好奇的)。
实际上看起来这不是ashift再次惨败后;我绝对没有手动设置的算法在本文例子,但我看到自己的“zfs得到加密”自己的文章表明你获得实际的算法,不仅。
或许下次我会RTFA……
当我写最著名的线(注释2)去年,我只是在开玩笑。
毫不奇怪,我没有赢得编辑器的选择。
然而,这仍然可以设置为年长的zfs释放!对于我的Ubuntu 20.04 NAS,我最终提取openzfs 2.0的debian软件包(但不安装它!)和复制相关的文件从/usr/share/initramfs-tools /etc/initramfs-tools /etc/dropbear-initramfs /添加我的钥匙,重建initramfs。现在,我可以打开我的NAS无需诉诸把u盘或类似的密钥文件。
一边好处是,我目前有两个池;SSD引导池的操作系统和应用程序,并为散装储存锈池。我把进行加密的密钥文件根池,所以很容易添加一个额外的调用导入池和运行“zfs装载键——”后立即解锁根池。
我很高兴我走这种方式而不是运行补丁2.0得到解锁的功能。我的主机上运行的码头工人, https://github.com/openzfs/zfs/issues/11480 当然是我看过的最惊心动魄的文件系统的一个问题影响生产系统在很长一段时间。
名称属性值来源
(体积)feature@encryption活跃的地方
…这不是我想要的。
然后我做了大量的恶搞试图找到正确的查询字符串,假设它一定feature@墙后面的某个地方。没有找到任何东西。做了一系列的网络搜索,没有发现任何显式的。然后我问,:
名称属性值来源
(体积)/(文件集)加密aes - 256 - gcm -
瞧,我正在寻找什么。我在错误的地方,错误的语法。zpool feature@encryption是一件事,但显然它只是直接“加密”的文件集。
很高兴我能帮助!
此外,你可以得到一个所有属性列表和他们的设置:
zfs得到所有(体积)/(文件集)
即使有一个速度达到只要它仍然不够快流BluRay备份使用丛对我很好。
即使有一个速度达到只要它仍然不够快流BluRay备份使用丛对我很好。
如果你在谈论与AES-NI CPU,就好了。如果它没有AES-NI……它可能不是足够强大。你会发现,很明显。
哦,该死。答案是这里。我仔细阅读这篇文章,但显然没有图像。
这一切似乎并未正确,根据手册页(实际上这篇文章后面的部分,是指改变键):
我猜一个用户(我想更多的个人笔记本电脑和Linux / * BSD ZFS)基地home-dir是未加密的,但所有的sub-dirs加密的数据集的一部分,然后,在第一个界面登录,提示输入密码来加载密钥。
在Linux上,可以编写pam模块来处理。
我已经开始了与开发者讨论甚至试图实现自己,但我不是一个专家的Linux内部/内核模块和组装,我挣扎。
如果有人感兴趣,欢迎加入讨论:帮助
提示:当加密子数据集由sanoid / syncoid复制,复制的数据集失去继承加密参数目标(例如,变成“提示”而不是keylocation路径)。当使用原始发送。这可以固定解锁后孩子和家长在目标和使用“zfs改变键-我…”。
同时,加密性能基准。
我写了一个bash脚本基于吉姆的fio文章从一年左右的时间,尝试了不同的算法和recordsize组合,用于覆盆子πUSB3硬盘驱动器。我的结论是,512 kB recordsizes recordsizes表现好于1米,和CCM优于GCM(很明显,在我的例子中,所以YMMV)。
(编辑:512 kB recordsizes表现好于1 MB recordsizes当fio用大块写道,尽管“传统智慧”1 MB recordsizes应该是更好的在这种情况下。我不知道这是有关USB硬盘性能或覆盆子本身,但由于组合是我作为一个离线备份方法,我不在乎为什么。)
最后一次编辑NewCrow在清华2021年6月24日6:30
我意识到跑步ZFS陆会绕过这个限制(欺骗)但它似乎很奇怪,ZFS本身没有命令行选项隐藏的元数据。
我意识到跑步ZFS陆会绕过这个限制(欺骗)但它似乎很奇怪,ZFS本身没有命令行选项隐藏的元数据。
我坚持跑步GELI在ZFS,因为升级从很久以前当这是唯一的选择,但即使是磁盘上的一个头我希望ZFS / FreeBSD提供一种方法来迁移到位,但生活就是这样。池升级很快,修复它。
解决法律难题你描述是知道是谁控制的数据服务器上,这样你就可以只老鼠出来。理想你集会当地议员和说服他们,这种狗屎法律是屎但他们似乎只服从TLASOUP主人这些天对此类事项。
即使有一个速度达到只要它仍然不够快流BluRay备份使用丛对我很好。
如果你在谈论与AES-NI CPU,就好了。如果它没有AES-NI……它可能不是足够强大。你会发现,很明显。
我毫无价值的旧芹菜1610没有AES很好工作了。没有带宽自动译码系统,但它可以很容易地发展速度甚至比最高的比特率bluray撕裂。
*使用加密只在你完全准备好失去的数据。
*记住你凡人和数据加密可能永远失去了如果有可怕的事情发生在你身上的(尽管死亡还有许多其他的东西可以让你忘记)。
*人忘记密码。
我不是这里的人不愿加密数据,我相信很多人不必要地使用它。
不过关于这个:
我知道你的目标是可能让事情变得简单,但我实际使用提示在自动化(不涉及人类)而不是密钥文件,我只是发现它更方便,例如,在macOS你可以做的:
这让我保持密码macOS钥匙扣像我就加密非系统的apf卷,核心存储、磁盘映像等。(对于任何想做同样的事情,记得/usr/bin/security添加到列表的应用程序可以访问您的脚本钥匙扣条目,或者它不会工作)
而密钥文件的安全性可能会如果处理得当,提示让你把密码从任何地方你喜欢非常方便自动化。
我是一个超级粉丝OpenZFS的加密,使事情更简单,zfs将能够发送加密块神奇的备份。
惟一缺少的特性是一个免费的替代我的旧(但仍顽固地在完美的工作秩序)只支持BTRFS Synology NAS;幸运的是它也iSCSI ZFS所以我仍然可以发送到,但这是几乎没有一个理想的方法。
旁边使用本机所有优点zfs加密,zfs备份到远程服务器的能力保持在运输途中所有的数据加密,然后在休息(没有任何解密/加密)对我来说是非常令人兴奋的。
自然交通也将加密,但是通过保持数据加密的安全提供了强有力的保证,并将居然简化程序和文书工作!
是的,强大的安全应记录和证明,有很多文书工作对一些正当要求的客户。
遵从性。
*使用加密只在你完全准备好失去的数据。
*记住你凡人和数据加密可能永远失去了如果有可怕的事情发生在你身上的(尽管死亡还有许多其他的东西可以让你忘记)。
*人忘记密码。
我不是这里的人不愿加密数据,我相信很多人不必要地使用它。
加密*一切* * *硬件失败时你可以把没有忧虑。
也经常备份离线资源....
zfs快照大大简化备份/恢复……
年代
遵从性。
ZFS不能使用任何但最基本的内核设施,因为它不是GPL,内核开发者拒之门外几乎所有从non-GPLed代码。
实际上,你有两个代码Linux-ZFS系统堆栈....Linux和ZFS的一面。这可能是为什么ZFS的一部分违背了正常的Linux分层严重;因为它不能使用Linux提供了什么,它重新实现几乎所有的金属向上。它发现并管理自己的磁盘,管理自己的压缩、加密、错误检测、自己的重建,提供自己的名称空间。用户级程序看不出什么不同,他们仍然与磁盘上的文件,但是当他们在ZFS数据集,他们与另一个单独的代码交互。
唯一真正值得注意的问题随之而来,ZFS,默认情况下,抓住一半的系统使用的RAM缓存。它可以缓慢释放系统内存的压力下,这可能导致重大问题。我敢肯定你可以调整内存分配下来,虽然我懒得抬头,作为唯一的系统我目前运行是一个专用的服务器,并将使用一半的内存缓存。
因为其他的链接有更多假若,我之前没有调查更紧密地包裹锚标记(因为我记得被官方网站Veracrypt上次我看着它,TrueCrypt被遗弃后不久)。
固定了。谢谢你的提示!
创建一个文件/etc/modprobe.d/zfs.配置和设置选择zfs zfs_arc_max =在字节。
是的,字节。不,它不荣誉或理解单位后缀。是的,这是一个血腥巨大的在服务器1 tib的RAM数量……
创建一个文件/etc/modprobe.d/zfs.配置和设置选择zfs zfs_arc_max =在字节。
是的,字节。不,它不荣誉或理解单位后缀。是的,这是一个血腥巨大的在服务器1 tib的RAM数量……
* *梦想我们在工作中做一些相当该死的大铁但1 t内存仍然是目前4 x我获得的最大的玩具。
你必须登录或创建一个帐户置评。