![启动时自动挂载 LUKS 加密卷](https://linux22.com/image/205670/%E5%90%AF%E5%8A%A8%E6%97%B6%E8%87%AA%E5%8A%A8%E6%8C%82%E8%BD%BD%20LUKS%20%E5%8A%A0%E5%AF%86%E5%8D%B7.png)
运行 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 列
- https://www.freedesktop.org/software/systemd/man/crypttab.html
-
<volume-name> <encrypted-device> <key-file> <options>
- 一个例子可以是
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 磁盘将允许您更改现有的密码,这足以表明它还将更新或尊重现有的密钥文件。