Debian中的磁盘encryption

我有一台运行生产应用程序的Debian Lenny服务器。 最近,我们被一位顾问询问,为数据安全启用磁盘encryption。 他认为全磁盘encryption将要求我们擦除磁盘干净,并从地面启动服务器设置,因此encryptionMySQL和Web根文件的存储就足够了。

所以,我正在考虑创build一个新的分区,并将Apache站点的根目录与MySQL数据文件一起移动,并使用一些软件包/工具进行encryption。

现在,我的问题很直接:

  1. 我的计划是否正确或有更好的解决scheme?
  2. 我应该寻找哪种包装/工具?
  3. 如果要遵循这个方法,我怎样才能将MySQL数据文件夹移动到新的分区?

感谢您的时间和帮助,提前致谢!

问候,

埃姆兰

首先要记住的是,顾问不是在这方面的performance和打扰的负担。 无人参与的重新启动将不再可能,并且为了避免安全隐患,应该有很less的用户具有允许重新启动的encryption密码。 一揽子encryptionbuild议往往是错位的。

数据encryption可以防止一个特定的攻击情况 ,并且这可能不是最可能的漏洞。 数据encryption可以保护您免受攻击者与数据驱动器之间的物理冲突。 如果您担心这种情况,请考虑更好的物理防护措施 – 例如,在机架正面locking面板。

数据encryption通常不会为攻击者通过线路泄露您的networking应用程序提供很多保护。 攻击者最有可能至less具有与您的Web应用程序相同的权限,包括读取和写入数据库,即使它在磁盘上被encryption。

不要忘记说明这将导致你的MySQL数据库的性能。 读取和写入encryption的磁盘将显着变慢 。 如果您已经遇到性能问题,这很可能会破坏事情。

MadHatter和JanC给了你很好的build议。 正如JanC所说, 可以在不擦拭机器的情况下做到这一点,但出于您的目的,这听起来不是必要的。

你需要记住的另一件事是encryption你的交换分区。 要做到这一点,您需要禁用交换,重启以使其消失,安全地删除交换分区,对其进行encryption,重新启用交换,然后重新启动计算机。 我不太清楚如何在Debian中进行设置,但是您需要在启动过程中尽早input密码。

如果您无法encryption交换分区(以及您的/ tmp目录以及您的应用程序可能写入的其他位置),那么您敏感数据的一部分将以未encryption方式写入磁盘。

我认为你的计划大体上是正确的。 encryption分区将为您提供大量的encryption安全存储,而无需重新安装整个机器。

请注意,如果无人值守启动,此机器将不再有用。 它将启动,因为根分区将被解密,但不能启动mysql; 您必须在每次重新启动时手动inputencryption密码。 你当然可以编写脚本,但是encryption密码存储在机器上,这实际上是击败了练习的对象。 所以确保你想这样做,在你做之前。

我写了一个相当详细的技术说明,我如何做到这一点,如果你有兴趣,你可以阅读http://www.teaparty.net/technotes/crypto-fs.html 。 这项工作是在Fedora上完成的,但不是Fedora特有的。

一旦你build立了encryption分区,你只需要使用“cp”或“mv”来获取文件,并且通常将它们从原来的位置(/ var / lib / mysql或者任何地方)连接起来。

全盘encryption最好用cryptsetup和LUKS来完成。 设置这个最简单的方法是当你做一个新的安装; 安装程序中有一个选项可以帮你处理所有的事情。

如果这不是一个选项,你必须手动完成。 有几个教程可以在网上find,例如在这里 。

或者,您也可以使用eCryptFS进行基于文件的encryption(无论是否足够好取决于您试图防范的内容)。

我首先向咨询师询问磁盘encryption应该防范什么。 它所要做的就是(如果你已经设置它需要密码来解密)是阻止人们窃取系统的数据。 在系统运行时,它不会保护数据 – 如果你需要这样做,那么这是错误的方法。

如果你encryption,那么你需要确保你encryption3件事情:

  1. 数据磁盘/分区
  2. 交换分区
  3. / tmp分区(以及Web服务器可能使用的其他临时文件存储)

这个debian指南可以帮助你开始。 稍微懒惰我可能会build议有一个小的encryption分区,你需要一个密码解锁,持有的钥匙解锁所有其他分区。 这比在启动时input多个密码更容易。

最后,检查你当前的CPU和I / O负载。 如果您已经负载过重,那么您可能没有所需的备用容量。 您可能需要考虑更改硬件平台或升级它。