如何在 Arch Linux 上加密实时 rootfs

如何在 Arch Linux 上加密实时 rootfs

我在 VPS 上运行 Linux Arch 系统。rootfs 安装在 LVM 分区上。我想在这个分区上覆盖一个加密容器,然后在其上重新安装 rootfs,并通过 ssh 在启动时启用 ssh 解锁。我很乐意丢弃现有 rootfs 的所有内容并从头开始创建一个新的 rootfs。

我正在尝试按如下方式进行:

  1. 在 /tmp/newroot 中创建一个新的临时 rootfs
  2. chroot 到它
  3. 此时我想完全停止仍然挂在旧根目录(位于 lvm 分区上)的所有服务(其中一个是 sshd 本身),并从新根目录重新启动它们
  4. 在 lvm 分区上创建加密分区
  5. 在其上安装 arch Linux 并适当修改 intrafms

对于 1 和 2,我使用 archlinux 中提供的 bootstrap 映像维基百科. 4 和 5 有据可查(例如这里)。

我被困在第 3 步。在我 chroot 之后,使用定影器我可以看到有很多进程仍然挂在 lvm 分区上,这不允许我在其上覆盖加密容器,而且我不确定如何停止它们并从新的根目录重新启动其中一些进程。从原始根目录执行会停止它们,但在我这样做之前!我应该从新根目录重新启动其中一些(例如 sshd),否则我会把自己切断。我尝试从新根目录启动它们systemd,但它不起作用,因为它检测到我们处于 chroot 模式。我尝试通过命令行启动它们,没有生成任何错误,但是当我使用以下方式搜索进程时附言,他们不在那里。

有什么建议吗?谢谢

答案1

如果步骤 4 和步骤 5 中出现任何问题,您的系统将无法启动。您的 VPS 是否保证 100% 可用性?

如果“实时”(或在线)重新加密不是必需的,cryptsetup-reencrypt则可以处理离线重新加密。它所需要的只是扩展 LV。目前正在进行一项工作以允许实时重新加密,但这还不稳定。额外的空间要求将保留,因为没有多少文件系统允许在线收缩。

如果使用额外的磁盘空间是可接受的解决方案,您可以创建一个 LUKS 加密物理卷,将其添加到卷组并使用 pvmove 将 rootfs 从未加密的设备移开。

我认为没有一个简单的解决方案可以转移到加密 LV。

相关内容