加密单独的根分区和主分区

加密单独的根分区和主分区

所以我尝试使用单独的根分区和主分区(还有交换和引导 ofc)来安装 Arch Linux。基本上我已经对它们进行了分区,我已经安装了它们,并且我已经加密了/并且/home(使用cryptsetup luksFormat)。它看起来像这样lsblk

(抱歉,现阶段无法从虚拟机复制文本) 在此输入图像描述

现在我正在努力实现以下目标:

  • 我想在系统启动时解密所有分区,而不必为每个分区键入密码(顺便说一句,我已将它们设置为相同)
  • 我想为加密分区配置 GRUB,但到目前为止我只看到过配置,GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdXY:cryptroot"而且我有两个,所以我真的不知道应该在这里放什么(也许只有/一个?)

所以现在我陷入了我想要运行但又不能运行的阶段,mkinitcpio因为grub-install/grub-mkconfig如果没有正确的 GRUB 配置,我可能无法启动我的系统。

你们知道我将如何实现这一目标吗?第二个问题更重要,因为有关于第一个问题的文档,我想只是想把它放在那里以获得一个简短的建议,这是我在过去两个小时里一直在摸索的第二个问题。

答案1

欢迎来到 Unix 和 Linux StackExchange!

生成的initramfs文件的作用mkinitcpio只是解锁并挂载根文件系统;挂载其他文件系统/home将在引导过程稍后发生,在根文件系统解锁并挂载之后。 GRUB 不需要了解有关/home文件系统的任何信息。

cryptdevice选项为 initramfs 文件中的脚本提供信息,用于解锁根文件系统的加密。如果您的系统配置稍后发生变化,这使您可以轻松更改假定保存加密根文件系统的设备的名称。为了在系统配置发生意外更改时保持鲁棒性,您实际上可能希望使用语法UUID=<UUID_of_sda3>来代替设备名称。

/home因此,您可以配置使用存储在根文件系统中某处的密钥文件的加密。由于密钥文件位于加密分区内,因此当系统不运行时它将受到保护。当根文件系统可访问后,/etc/crypttab将能够引用该文件,因此/home文件系统的加密可以自动解锁。

根据Arch wiki 的 crypttab 段落/home,您的文件系统的条目/etc/crypttab可能如下所示:

crypthome /dev/sda4 /etc/cryptsetup-keys.d/crypthome.key

您可能还想使用UUID=<UUID of sda4>此处而不是设备名称。

您将确保/etc/cryptsetup-keys.d/只能由 root ( ) 访问chmod 700,并将文件系统的密码写入/homecrypthome.key文件。如果入侵者可以读取此内容,则意味着入侵者具有有效的 root 访问权限,因此他们可以将您的cryptsetup命令替换为通过电子邮件将任何密码短语发送给入侵者的命令,无论它们是键入还是从文件中读取,因此此时您无论如何都会有更大的担忧。

相关内容