Linux服务器磁盘encryption的方法

有什么方法可以在远程服务器上对磁盘进行完全encryption(比如,位于数据中心)? 在Windows上,我们可以通过TPM打开Bitlocker。 然后服务器可以重新启动,而攻击要么需要在活着的时候拿走机器,卸载RAM,要么打破TPM。 在Linux上,有什么可用的?

到目前为止,我已经find了描述如何在TPM中存储dm-crypt密钥的IBM“蓝图”。 这是最好的办法吗?

http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/topic/liaai/tpm/liaaitpm_pdf.pdf

要了解你的问题的最佳解决scheme,你需要澄清你想要达到的目标。 换句话说,你的威胁模型是什么? 谁是你的攻击者? 你提到,为了解决这个问题,需要“在活着的时候把机器拿走”(我假设你的意思是盗号),但是这对于一个共同的服务器来说是最有可能的。 磁盘encryption主要是在物理盗窃的情况下使用。

您还需要考虑您保护的是什么数据。 你提到'完全encryption磁盘',但这是否需要encryption,例如/ usr? 如果你正在运行一个标准的发行版本,那就没有什么意义了。 不知道更多关于服务器将包含什么,很难提出build议。

但是要给出更具体的build议,请考虑以下假设的服务器。 它包含以下内容:

  • 一个简单的网站显示一些产品
  • 用Rails / Django /其他编写的一个基本的CRUD命令应用程序
  • 用于客户信息和订单的Postgres DB

在这些组件中,只有数据库真的需要保护,所以下面是我的方法:

  • 保持机器的大部分未encryption(但尽可能多地使FS只读)
  • 为数据库创build一个单独的分区,并使用任何可用的Linuxencryption系统(ecryptfs等)使用强密码对其进行encryption。
  • 每次重新启动后,请使用存储在别处的密钥login并挂载分区。
  • 在重新启动时,服务器会提醒我

您提到了TPM,但TPM在许多情况下并不能帮助您,例如攻击者获得pipe理权限。 出于这个原因,TrueCrypt已经拒绝了对TPM的支持。

您也可以使用dm-crypt的TPM
https://github.com/shpedoikal/tpm-luks
http://code.google.com/p/cryptsetup/wiki/FrequentlyAskedQuestions#2._Setup

如果集成在initrd ramdisk上,小型SSH服务器允许远程input密码来解锁驱动器。

请注意,上述解决scheme中没有一个能够充分保护具有物理访问权限的技术性攻击者。