如何自动挂载LUKS分区?

如何以安全的方式自动挂载LUKS加密分区? 理想情况下,当我登录(因此我的密码在登录屏幕中),或者一旦我到桌面,Ubuntu要求我的密码,然后自动挂载分区?

我的fdisk的内容如下

加密分区是/ dev / sdb7,我的root和home分区是/ dev / sdb5(未加密)。

Disk /dev/loop0: 14 MiB, 14647296 bytes, 28608 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/loop1: 81.7 MiB, 85692416 bytes, 167368 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x0006d9d9 Device Boot Start End Sectors Size Id Type /dev/sda1 2048 524646399 524644352 250.2G 7 HPFS/NTFS/exFAT /dev/sda2 * 524646400 1953523711 1428877312 681.4G 83 Linux Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x1ffae910 Device Boot Start End Sectors Size Id Type /dev/sdb1 214892542 976773119 761880578 363.3G 5 Extended /dev/sdb2 * 2048 2150399 2148352 1G 83 Linux /dev/sdb5 214892544 257558559 42666016 20.4G 83 Linux /dev/sdb6 300716032 318294015 17577984 8.4G 82 Linux swap / Solaris /dev/sdb7 318296064 976773119 658477056 314G 83 Linux Partition table entries are not in disk order. 

使用pam-mount

您可以使用pam-mount执行此操作。 它将挂钩到登录过程,因此能够使用输入的密码来安装luks分区。 以下是如何设置它:

创建测试luks图像

如果您已经有LUKS加密的分区或图像,请跳过此部分

在主目录中创建一个名为.priv的文件,大小为1GB:

 truncate -s 1G ~/.priv 

使用LUKS格式化图像并设置密码(使用与登录密码相同的密码):

 cryptsetup luksFormat ~/.priv 

启用图片:

 sudo cryptsetup luksOpen ~/.priv priv 

在新设备上创建文件系统:

 sudo mkfs.ext4 /dev/mapper/priv 

再次禁用图像:

 sudo cryptsetup luksClose priv 

安装并设置pam-mount

安装包:

 sudo apt install libpam-mount 

编辑配置文件/etc/security/pam_mount.conf.xml并向其添加以下行:

  

在它说之后添加它。 注意路径和mountpoint参数中微妙但重要的区别。 在您的特定情况下,您将使用path="/dev/sdb7"

现在登录到您的计算机,您应该注意到它需要比平常更长的时间。 成功登录后,您可以使用mount命令检查您家中是否mount了新的文件系统。 它看起来应该类似于:

 /dev/mapper/_dev_loop3 on /home/seb/priv type ext4 (rw,relatime,data=ordered,helper=crypt) 

用于/ home / USER

我正在使用此设置从Ubuntu 18.04上的LUKS加密映像安装我的主目录( /home/seb )。 我注销后,pam_mount还会负责卸载图像。 因此,如果在安装过程中没有选择全盘加密,那么至少获得一些加密是一种很好的方法。

要回答@Falc关于为什么将挂载点设置为无效,而是阻止他登录。通过将挂载点设置为home,你实际上是用加密分区替换了您的主目录。 您无法登录的原因是Linux需要/home目录才能工作。 更重要的是,主目录包含许多重要的隐藏文件,如.config,.bashrc,.profile和.bash_profile。 主文件夹中的这些文件和其他文件包括gnome-session-properties ,它们启动您在登录时启动的程序。当您将加密驱动器安装到主目录时,图形会话所需的应用程序无法启动。