首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有什么优点/缺点(如果有的话)?在原始驱动器(sdx)上运行luksFormat与分区(sdx1)?

有什么优点/缺点(如果有的话)?在原始驱动器(sdx)上运行luksFormat与分区(sdx1)?
EN

Ask Ubuntu用户
提问于 2015-01-09 04:57:18
回答 1查看 2.9K关注 0票数 6

我已经设置了几个LUKS加密驱动器,并注意到我一直在“raw”(?)上直接创建加密磁盘。开车./dev/sdb,而许多通过google的例子显示它是在/dev/sdb 1上创建的

使用/dev/sdb的示例:

代码语言:javascript
复制
# cryptsetup luksFormat /dev/sdb
# cryptsetup luksOpen /dev/sdb lvm_backup

然后,..and接着创建卷组和逻辑卷,如下所示:

代码语言:javascript
复制
# vgcreate vg_backup /dev/mapper/lvm_backup
# lvcreate -l +100%FREE lvm_backup -n backup
# mkfs.ext4 /dev/mapper/vg_backup-backup

最后安装驱动器。

这让我看起来像这样:

代码语言:javascript
复制
sdb                              8:16   0   2.7T  0 disk  
  lvm_backup (dm-3)            252:3    0   2.7T  0 crypt 
    vg_backup-backup (dm-5)    252:5    0     2T  0 lvm   /backup

相反,其他lsblk输出如下:

代码语言:javascript
复制
sdb                              8:16   0   2.7T  0 disk  
  sdb1                           #:#     0    2.7T 0 part
    lvm_backup (dm-3)            252:3    0   2.7T  0 crypt 
      vg_backup-backup (dm-5)    252:5    0     2T  0 lvm   /backup

直接在磁盘上工作(/dev/sdb)与首先创建分区(/dev/sdb 1)有什么优缺点?

我假设这可能与:https://serverfault.com/questions/338937/differences-between-dev-sda-and-dev-sda1有关

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2015-01-09 08:07:56

无意中,我在想,如果您使用整个设备(/dev/sdb)和LUKS头在驱动器的开始位置,如果其他工具或操作系统“有帮助”决定您的磁盘没有MBR或GPT的格式,那么如果它要覆盖您的LUKS标头,那就太糟糕了。如果您正在为LUKS使用一个分区,那么至少一个新的MBR或GPT不会有那么大的破坏性。

无论如何,您应该始终备份LUKS头,正如cryptsetup手册页所建议的那样。

这就是密码设置常见问题所说的“在分区或原始磁盘上使用2.2Luks吗?”(它很长,但我会粘贴它,提到RAID & LVM会使事情变得非常复杂,您可能想重新考虑在LUKS之上使用LVM ):

这是一个复杂的问题,更多的原因是RAID和LVM的可用性。我将尝试给出一些方案,并讨论利弊。请注意,我说LUKS是为了简单,但是您也可以使用普通的dm-crypt来完成所有描述的事情。另外,请注意,您的特定场景可能非常特殊,以至于下面我所说的大部分甚至所有内容都不适用。请注意,如果将LVM添加到混合中,事情可能会变得非常复杂。RAID也是如此,但情况不太好。特别是,数据恢复非常困难。只有当你有一个很好的理由,并且永远记住亲吻是一个工程师和一个业余者的区别时,才这么做。当然,如果你真的需要额外的复杂性,吻是满意的。但是要非常肯定,因为这是要付出代价的。在工程上,复杂性总是敌人,遇到时需要毫不留情地战斗。还可以考虑使用RAID而不是LVM,因为至少对于旧的超级块格式0.90,RAID超级块位于磁盘的末端,其中永久损坏LUKS报头的风险最小,您可以让RAID控制器(即内核)按其应有的方式组装数组。为此使用分区类型0xfd。我建议您不要使用超级块格式1.0、1.1和1.2,除非您真的需要它们。请注意,您丢失了它们的自动检测,并且必须返回到某个用户空间脚本才能完成。场景:(1)加密分区:只需创建一个您喜欢的分区,并将LUKS放在上面,并将一个文件系统放到LUKS容器中。这使您可以隔离不同任务的数据区域,就像普通分区一样。您可以拥有机密数据、非机密数据、某些特定应用程序的数据、用户家园、根等。优点是简单,因为分区和文件系统之间有1:1的映射、清晰的安全功能以及将数据分离成不同的、独立的(!)集装箱。请注意,对于需要initrd的加密根,您不能这样做。另一方面,initrd与非加密根一样容易受到称职的攻击者的攻击,因此这样做实际上没有安全优势。想要危害您的系统的攻击者只会危及initrd或内核本身。处理此问题的更好方法是确保根分区不存储任何关键数据,并将其移动到其他加密分区。如果您真的担心您的根分区可能会被具有物理访问权限的人所破坏(但奇怪的是,这不会破坏您的BIOS、键盘等),请以其他方式保护它。个人电脑只是没有建立一个真正安全的启动链(不管一些人声称什么)。(2)完全加密的原始块设备:为此,将LUKS放在原始设备上(例如/dev/sdb),并将文件系统放入LUKS容器中,不涉及任何分区。这非常适用于诸如用于备份或脱机数据存储的外部USB磁盘。(3)加密RAID:从分区和/或完整设备创建RAID。将LUKS放在RAID设备的顶部,就像它是一个普通的块设备。应用程序与上面一样,但您会得到冗余。(附带注意,正如许多人似乎不知道的那样:您可以在Linux中使用任意数量的组件来执行RAID1。)另见项目2.8。(4)现在,有人主张在RAID层下面进行加密。这有几个严重的问题。其一,突然间,调试RAID问题变得更加困难。您不能再进行自动RAID组装了。您需要保持组件的加密密钥保持同步或以某种方式管理它们。唯一可能的好处是,随着更多CPU进行加密,事情可能会运行得更快一些,但是如果速度比安全性和简单性更重要,那么无论如何您都是在做错误的事情。缓解速度问题的一个好方法是获得一个执行硬件AES的CPU。

票数 5
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/571581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档