LUKS 自动解锁远程 ubuntu 服务器上的密钥文件

lud*_*fet 5 ubuntu remote luks

有没有办法在启动时自动解锁 LUKS 驱动器,并将密钥文件存储在远程机器上。这个想法是确保服务器可以在没有任何用户输入的情况下重新启动。服务器在公共云上,我无法加密根分区。将密钥文件留在机器上只会违背加密的目的。

因此,将远程机器中的密钥文件通过安全通道(如 ssh)连接的想法。

Mandos似乎在做我想要的,但我有两个问题。
- 所有的文档都是指根文件系统。它可以与任何驱动器一起使用吗?
- 文档说明它只能在 Intranet 上运行,如果本地和远程服务器通过 VPN 连接,它会起作用吗?

这是最好的解决方案吗?唯一的解决办法?

Tom*_*mek 7

即使在 CentOS 7 上使用加密的根分区, tangclevis也可以实现这一点(我个人使用它在我的家庭网络和工作中自动启动)。查看并检查它是否插入到您的虚拟机中。


Pat*_*zek 3

您可以在网上找到各种解决方案(如此),其中 initrd 中包含一个小型 ssh 服务器(busybox+dropbear),以便在安装文件系统之前在启动时运行它,并与其联系以提供密码作为输入。

您也许可以做一些事情:在 initrd 中,在启动sshd服务器以等待远程连接的内部,ssh使用特定的 ssh 密钥启动与存储密钥的远程主机的连接,以便获取密钥文件(执行 scp ),然后使用 LUKS 密钥解锁本地文件系统。

然而,它并非没有缺点:您当然需要确保在解锁完成后立即删除下载的 LUKS 密钥,否则您将一无所获。如果您找到一种方法,仅在需要时将其存储在 RAM 中,而不存储在任何地方,那就更好了。此外,能够读取您的 initrd 内容的“任何”攻击者都可能会找到 ssh 连接及其 ssh 密钥,与您的远程主机联系并下载 LUKS 密钥。如果发生这种情况,则意味着您的攻击者显然正在针对您并花时间研究您的具体设置,这显然不属于脚本小子的范畴。您至少应该仔细检查下载密钥的所有连接,这些事件应该与其他监控警报相关联,显示给定的服务器确实正在重新启动(这同样无法保护您免受能够修改您的 initrd 的攻击者的侵害)。

您还必须考虑此时网络故障、scp无法连接等情况...因此,同时选择小型sshd服务器能够连接到它并进行调试并不是一个坏主意。或者查看您的云提供商可以提供哪种带外解决方案。