加密远程linux服务器

Mic*_*lle 4 encryption centos disk-encryption

我的一位客户要求对他们的 Web 服务器进行加密,以防止对 mysql 数据库和 /var/log 中包含的高度敏感数据的离线攻击。我对流行主机上的专用服务器拥有完全的 root 访问权限。我正在考虑 3 个选项 -

  1. FDE - 这将是理想的,但只有远程访问(没有控制台)我想这会非常复杂

  2. Xen - 安装 XEN 并在 XEN 虚拟机中移动他们的服务器并加密 VM -这似乎更容易远程完成。

  3. 分区 - 加密敏感数据所在的非静态分区,例如 /var /home 等。

满足要求的简单方法是什么?


小智 6

值得与主机核实,看看他们是否可以连接 IP KVM 或安装远程访问卡(IPMI、HP iLO、iDRAC 或 RAS,视情况而定)以提供加密的远程控制台。

对于任何 FDE 解决方案,您都必须有一个未加密的系统引导程序。这至少包括 MBR、引导加载程序、内核和 initrd。

可以通过使用Mandos 之类的东西或使用整个操作系统安装来网络启用 FDE 引导系统,然后通过远程运行自定义脚本来切换到真正的操作系统,这些脚本在 cryptsetup 和 mount 之后利用了 pivot_root、chroot(或 kexec)的强大功能。

使用 Xen 并拥有一个带有加密存储的虚拟机类似于使用整个操作系统进行引导,但更少的麻烦和更容易的维护。这种方法的唯一缺点是虚拟化开销。

块设备方法(LV、分区或环回)当然很容易上手,尤其是当您尝试在生产系统上进行更改时。

现在是建议部分:如果您可以获得远程控制台访问权限(完整的 KVM,而不是串行)并且您正在构建一台新机器,那么请使用 FDE。当前的所有发行版都在安装程序中支持它,这将是最少维护的选项。

除此以外:

  • 甚至不要考虑使用 FDE。远程访问引导系统太脆弱了,当它损坏时,修复将是一场噩梦。除非您真的很清楚自己在做什么,否则不要尝试即时转换实时系统。

  • 如果您正在为此安全升级构建新机器并且虚拟化开销是可以接受的,那么请选择方法 2。对于您自己和任何其他未来的系统管理员来说,理解/维护这将是最明智的选择。使用这种方法,您可以在 VM 中使用操作系统提供的安装程序加密,而不是根据需要加密主机上的存储(这两种方法的优点/缺点与维护/迁移/等)。

  • 如果您必须在生产系统上进行此更改(我强烈建议不要这样做。让客户为使用第二个系统进行适当的迁移付费),然后使用方法 3 并使用 LUKS 格式的块设备(最好是逻辑卷) .

  • 在任何这些情况下,基本系统或引导程序代码显然都可以被木马,从而泄露加密密钥。不要浪费时间试图降低这种风险,除非您手头有很多时间并且您的客户有钱可烧。如果您确实必须减轻它,那么您会想要安装类似 Osiris 的东西。

请记住,由于软件错误、备份系统、配置错误、密码错误等,数据将面临更大的风险。