在启动时挂载LUKS加密硬盘


24

我在SSD设备上安装了Xubuntu 14.04(在安装过程中正确加密了HOME),此外,我还有一个带有加密分区的HDD,其中包含我想挂载在/ mnt / hdd中的额外数据。为此,我遵循以下步骤:

(以前,我在这篇文章http://www.marclewis.com/2011/04/02/luks-encrypted-disks-under-ubuntu-1010/之前使用LUKS加密了磁盘)

检查UUID

sudo blkid 
/dev/sda1: UUID="b3024cc1-93d1-439f-80ce-1b1ceeafda1e" TYPE="crypto_LUKS"

使用正确的密码短语创建一个密钥文件,并将其保存在我的HOME中(该文件也已加密)。

sudo dd if=/dev/urandom of=/home/[USERNAME]/.keyfiles/key_luks bs=1024 count=4
sudo chmod 0400 .keyfiles/key_luks

添加密钥

sudo cryptsetup luksAddKey /dev/sda1 /home/zeugor/.keyfiles/key_luks

/ etc / crypttab中的新条目

hddencrypted UUID=b3024cc1-93d1-439f-80ce-1b1ceeafda1e /home/[USERNAME]/.keyfiles/key_luks luks

更新初始虚拟磁盘

sudo update-initramfs -u -k all

然后,为了测试它,我使用了以下命令来启动cryptdisks:

sudo cryptdisks_start hddencrypted 
 * Starting crypto disk...                                                       
 * hddencrypted (starting)..
 * hddencrypted (started)... 

要检查hddencrypted是否已映射:

ls /dev/mapper/
control  hddencrypted

创建一个挂载点

mkdir /mnt/hdd

/ etc / fstab中的新条目

/dev/mapper/hddencrypted /mnt/hdd ext4 defaults 0 2

验证fstab而不重新引导:

sudo mount -a

在启动时挂载加密分区

现在,按照我的建议将其安装在/ mnt / hdd中。但是我想重启后自动使它生效。但是在我可以登录之前,我得到了这个错误:

the disk drive for /mnt/hdd is not ready yet or not permit

所有这些使我认为/ etc / crypttab无法访问位于我的HOME(其他加密分区)中的密钥文件。我不知道系统解密和安装单元所遵循的顺序。在授予访问权限以读取密钥文件的权限之前,我的HOME应该未加密。

我会很感激为什么会发生这种情况。

更新: 如果我在/ boot中找到密钥文件(未加密),而不是在/ home / [USERNAME](已加密)中找到/ dev / sda1并更新/ etc / crypttab中的条目,则该文件将在启动时完美安装。


如何/home/$USER加密?像LUKS这样的全盘加密还是基于ecryptfs?
David Foerster,2014年

Answers:


9

/ boot目录中的密钥文件可由计算机上引导的任何其他能够将文件系统挂载到/ boot所在的操作系统上读取。因此,加密并不是真正有效。此参数适用于未加密文件系统上的所有关键文件位置。

为了避免未加密文件系统上的密钥文件,可以使用密码进行解密。为设备创建一个强密码。然后,将/ etc / crypttab中的行更改为

hddencrypted UUID=b3024cc1-93d1-439f-80ce-1b1ceeafda1e none luks

并保持/ etc / fstab中的条目不变。Ubuntu 14.04 / 16.04 / 18.04在启动时要求您输入密码。


结合@ solt87的答案和此答案将完成此答案。

6

如果将fstab中的“默认值”替换为

rw,suid,dev,exec,auto,user,async,relatime

(根据安装手册页,除“用户”外,它与“默认值”相同。)


1

确保hddencrypted分区列主分区之后,并在/etc/fstab和中/etc/crypttab。如crypttab (5)联机帮助页所述:

crypttab中记录的顺序很重要,因为init脚本会按顺序遍历crypttab进行工作。

您也可以尝试将noearly选项添加到后面的分区中/etc/crypttab

hddencrypted UUID=<...> /home/[USERNAME]/.keyfiles/key_luks luks,noearly

在正常情况下,您可以指示必须首先通过将其添加到CRYPTDISKS_MOUNTin中来挂载主分区 /etc/default/cryptdisks,但是由于它本身是加密的,因此我觉得这不是一个好主意。


1
这将无法正常工作,因为ubuntu尝试解密所有分区然后挂载它们。因此,密钥文件将不可用。
Christian Wolf
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.