加密虚拟机管理程序上的文件系统可保护静态数据,保证其他人无法访问该数据。本文将展示可用于加密 ">SmartCloud Enterprise 上的 Guest 镜像中的数据的一些技术和应用程序。文中将介绍如何加密一个存储单元(持久存储)和如何加密主目录。本文将逐步介绍这些场景:
使用 dm-crypt 加密 Linux 上的存储单元。dm-crypt 是 Linux 内核中一个透明的
磁盘加密子系统。它是一个设备映射器,提供了透明的块设备加密功能。可在 dm-crypt 上透明地使用一个文件系统,甚至原始数据类型也可使用它。 使用 Windows 加密文件系统 (EFS) 加密 Windows® 上的存储单元。Windows EFS 可透明地加密每个文件、每个目录或每个驱动器上的数据。因此,它也适用于持久存储,作为一种加密技术来加密 Windows 映像内部的数据。 使用 Enterprise Cryptographic Filesystem (eCryptfs) 加密 Linux 上的主目录。eCryptfs 在文件系统之上工作,这使您能够专门加密主目录中的数据。这是一项附加优势,因为 SmartCloud Enterprise 没有加密引导卷的工具。通过加密一个主目录,可以让一些合理的安全机制来填补这一空白。
在开始之前,请注意,对于大多数加密技术,如果您丢失加密密钥且启用了加密,那么数据基本上就已丢失。请小心。
加密一个存储单元
我们首先看看存储单元加密。在 Linux 和 Windows 上,设置存储单元加密的基本步骤包括:
安装文件系统加密工具。 准备目标存储单元。 加密存储单元。 在加密的存储单元上格式化新文件系统。 挂载加密的文件系统供使用。
在 Red Hat 和 SUSE 上使用 dm-crypt 加密存储单元
我们看看加密附加到一个在 SmartCloud Enterprise 上运行的 Linux 虚拟机的持久存储单元的步骤。dm-crypt 支持 Linux 支持的所有文件系统,包括 RAW 类型,但不包括网络文件系统。支持的 dm-crypt 密码列表可在 /proc/ciphers 下找到。最好使用高级加密标准 (AES)。
Red Hat Enterprise Linux 和 SUSE Linux Enterprise Server 上的步骤相同。在 SmartCloud Enterprise 控制台上配置实例时,会附加存储单元。默认的挂载点为 /data。
大多数命令都需要 root 用户特权,
所以启动一个 root shell。 $ sudo sh 安装 dm-crypt 实用程序。该实用程序应已包含在基本映像中。 $ sudo sh $ yum install cryptsetup cryptsetup-luks 您需要知道希望加密的存储单元的名称。要找到它,可查看您在 /data 挂载点或在创建实例时指定的自定义挂载点上挂载的分区的 /etc/fstab 文件。在我们的示例中,存储单元的名称为 /dev/vdc1。 $ cat /etc/fstab/dev/vdc1 /data ext3 defaults 0 0 准备用于加密的附加存储单元。我们建议在加密之前对驱动器执行安全擦除,
然后必须卸载存储单元。请注意,许多高度隐私的组织没有
遵循这种安全删除方法;在使用存储设备时应考虑好备用方法。 $ cat /dev/urandom > /dev/vdc1$ umount /data$ chmod 000 /data 使用 ecryptfs 包所提供的 cryptsetup 命令来初始化存储设备上的 Linux Unified Key Setup (LUKS) 格式。系统会提示您输入一个密码,必须牢记这个密码。请注意,LUK S 格式将会销毁目标上的所有数据。 $ /sbin/cryptsetup luksFormat /dev/vdc1WARNING!========This will overwrite data on /dev/vdc1 irrevocably.Are you sure? (Type uppercase yes): YESEnter LUKS passphrase:Verify passphrase:Command successful. 使用 cryptsetup 命令打开加密的存储设备。luksOpen 后的第一个参数是加密的存储单元的名称。第二个参数是您希望分配给打开的设备的名称。您会被提示输入在第 4 步中指定的密码。 $ /sbin/cryptsetup luksOpen /dev/vdc1 crypt-vdc1Enter LUKS passphrase for /dev/vdc1:key slot 0 unlocked.Command successful. 格式化文件系统,使其便于使用。您需要引用在第 5 步中指定的名称。 $ /sbin/mkfs.ext3 /dev/mapper/crypt-vdc1 挂载新加密的存储单元并安全地存储您的静态数据。在本例中,将它挂载到原始挂载点 /data。 $ mount /dev/mapper/crypt-vdc1 /data 请记住,在不使用加密的数据时,要卸载存储单元并关闭加密的设备。 $ umount /data$ /sbin/cryptsetup luksClose crypt-vdc1
可使用 luksOpen 和 mount 命令再次打开并挂载它。
如果希望删除您的存储设备所附加到的实例,然后将存储设备重新附加到一个新实例,该怎么做?您可以使用 luksOpen 和 mount 命令,使用相同的设备名称 (/dev/vdc1) 按上述方法挂载加密的设备。
要删除加密的分区并将存储设备还原为原始状态,可在它打开并挂载后运行以下命令:
$ /sbin/cryptsetup remove crypt-vdc1$ /sbin/mkfs.ext3 /dev/vdc1