使用 USB 存储器作为密钥在启动时自动挂载 LUKS 加密卷

使用 USB 存储器作为密钥在启动时自动挂载 LUKS 加密卷

我正在设置一个新的 Debian Stretch 安装,这对我来说有点新鲜。我经常使用 Linux,但以前从未真正担任过服务器管理员。因为这个系统,或者至少其中的一些服务,对外界是可见的,所以我想尽可能地保证它的安全。正如您所知,这在“互联网”意义上都是可见的。我不住在银行金库中,所以完全可以想象有人可以简单地盗窃我的家。

盒子里有一个USB存储器“焊接”到了主板上,大小为512mb。我想将 /boot 分区放在那里,而其他所有分区都将位于 RAID1 阵列上,该阵列具有使用 LUKS 加密的 2x4tb 驱动器,并在顶部使用 LVM 来处理分区。对我来说,这一切看起来都是一个相当好的主意,但我一直在寻找一种方法来避免每次系统重新启动时都必须输入加密密码。因此,显而易见的问题是如何在不影响整个设置的情况下存储密码或密钥。

这个想法(在我看来这不是一个新想法)是将密钥放在 USB 记忆棒(又名 USB 密钥)上,需要将其物理插入服务器的 USB 插槽之一才能安装加密的驱动器。我什至找到了一种方法来提高安全级别,而无需加密 USB 密钥(这需要我为此输入密码),方法是用随机数据填充 USB 密钥,而不使用文件系统,将其安装为块设备并使用其随机垃圾的任意子集作为密钥。一切都很好,但我有点不知道从哪里开始。

1) 如何强制 Debian 在尝试挂载加密驱动器之前尝试挂载 USB 记忆棒?我可能可以编写一个 shell 脚本,将内存安装为块设备,读取需要从中读取的任何内容,卸载它,然后使用读取的数据安装加密驱动器。但我该把它插到哪里呢?

2) 我可以让启动停止并等待(无限期地或者在一段时间后放弃并关闭)直到出现带有正确数据的 USB 密钥吗?或者它会继续启动,除了 /boot 分区之外没有任何东西,然后惨败?

3)我可以这样做,以便我只在启动时需要 USB 密钥,但在安装加密的 FS 后,可以安全地删除 USB 密钥(当然直到下次重新启动),而无需在终端?

相关内容