启动时自动挂载 LUKS 加密卷

启动时自动挂载 LUKS 加密卷

运行 RHEL 7.9,我的根分区经过 LUKS 加密,因此在系统启动期间,控制台会提示我输入密码以继续启动;那部分很好。

系统启动后,/etc/fstab我就会安装一个块设备/dev/sdc1 /data,其中块设备是 LUKS 加密的。

我可以使用 GNOME DISKS 实用程序来解锁并安装它,但这成为第二个进程,并且是每次系统重新启动时我都必须记住的手动进程...我还必须在控制台登录并运行该gnome-disks实用程序挂载我的/data文件夹...这是 TB 级的文件,而我的操作系统磁盘根分区只有 600GB,因此很快出现的问题是如果/data不挂载根分区就会被填满。

在 RHEL 7.9 下,如何自动的解锁并安装加密的 LUKS磁盘是在启动时发生的吗? 因此,它会像 ? 中指定的任何其他[未加密]磁盘一样安装/etc/fstab

答案1

如果您愿意将加密密钥存储在(加密的)根分区上,那么这是可行的。创建包含您的密钥的文件/etc/crypttab.keyfile。然后我用过类似的东西

# blkid /dev/sdc1
/dev/sda1: UUID="1249cb86-92a3-4e3b-8299-828a119fb3d1" TYPE="crypto_LUKS" 
PARTLABEL="primary" PARTUUID="75cf0a0e-0f4d-43c8-b8f5-fa26ab197ddc"
# echo "luks-1249cb86-92a3-4e3b-8299-828a119fb3d1 UUID=1249cb86-92a3-4e3b-8299- 
828a119fb3d1 /etc/crypttab.keyfile luks,discard" >> /etc/crypttab
# cryptsetup -v luksOpen /dev/sdc1 luks-1249cb86-92a3-4e3b-8299-828a119fb3d1 \
--key-file=/etc/crypttab.keyfile

您的设备将在启动时自动解密,并可以通过 fstab 进行安装。

始终将加密密钥的副本安全地存储在其他介质上。丢失它,您的磁盘就消失了。

答案2

这就是我如何让它发挥作用

dd   if=/dev/urandom  of=/root/crypttab.key  bs=1024   count=4
chmod  400  /root/crypttab.key
cryptsetup    luksAddkey   UUID=###   /root/crypttab.key
cryptsetup   -v luksOpen   UUID=###   /root/crypttab.key
# edit /etc/cryptab manually, each line having:
    <volume-name>   <encrypted-device>   <key-file>   <options>
  • UUID=### 属于 luks 锁定分区,如 gnome 磁盘或 lsblk 中所示
  • 不要使用/dev/sda1按名字约定,因为当磁盘来来去去或在系统中移动时,您的 luks 加密卷可能会变成 sdb 或 sdc,并且会失败;使用UUID是可靠的
  • <volume name>相信可以是任何东西
  • 我怀疑这里可以使用第 1 列中允许的所有挂载约定,/etc/fstab例如 uuid、label、scsi-id...请参阅下面的内容/dev/disk/
  • 用于手动编辑/etc/crypttab
    • 将是一个空白文件,尚未完成与 crypttab [或 luks] 相关的任何操作
    • 该文件无法重命名或移动到其他文件
    • 应该有权限 root.root 和-rw-------
    • 用于解锁给定 luks 锁定设备的每一行有 4 列
    • 一个例子可以是
      • scratch UUID=abc123 /root/crypttab.key luks
      • 第四列是luks
  • cryptsetup -v 密钥文件添加到 LUKS,该文件独立于用于 LUKS 加密卷的原始密码
  • cryptsetup -v提示输入现有密码,因此我认为密钥基于密码
  • 如果/root/crypttab.key被泄露,不知道原始密码是否安全,我怀疑可能是安全的。
  • 如果/root/crypttab.key被泄露或丢失,只需删除 /etc/crypttab 中的相应条目并恢复使用密码或使用新密钥重做 cryptsetup
  • /root/crypttab.key文件可以被删除,只要您知道用于 LUKS 加密的原始(或当前)密码,您就可以解锁并获取您的数据
  • 设置完成后,只需单击 gnome 磁盘实用程序中的解锁按钮即可解锁卷,而无需提示输入密码,这正是需要发生的事情
  • /etc/fstab挂载【加密】设备的入口实际上与crypt无关;没有任何与 LUKS 相关的事情发生/etc/fstab
  • /root/crypttab.key 文件可以命名为任何名称并位于任何位置
  • 要使用的 UUID 是锁定的 LUKS 分区在解锁之前的 UUID。
  • 有了/etc/crypttab当前的条目,GNOME 磁盘实用程序将识别该条目,并且 gnome 磁盘将允许您更改现有的密码,这足以表明它还将更新或尊重现有的密钥文件。

相关内容