使用加密文件系统(EFS)
下面将详细介绍利用 dm-crypt 来创建加密文件系统的方法。与其它创建加密文件系统的方法相比,dm-crypt 系统有着无可比拟的优越性:它的速度更快,易用性更强。除此之外,它的适用面也很广,能够运行在各种块设备上,即使这些设备使用了 RAID 和 LVM 也毫无障碍。dm-crypt 系统之所以具有这些优点,主要得益于该技术是建立在 2.6 版本内核的 device-mapper 特性之上的。device-mapper 是设计用来为在实际的块设备之上添加虚拟层提供一种通用灵活的方法,以方便开发人员实现镜像、快照、级联和加密等处理。此外,dm-crypt 使用了内核密码应用编程接口实现了透明的加密,并且兼容 cryptloop 系统。
1、内核准备
dm -crypt 利用内核的密码应用编程接口来完成密码操作。一般说来,内核通常将各种加密程序以模块的形式加载。对于 AES 来说,其安全强度已经非常之高,即便用来保护绝密级的数据也足够了。为了保证用户的内核已经加载 AES 密码模块,请根据图 7 所示命令进行检查:

▲图 7. 检查 AES 模块是否成功加载
否则,可以使用 modprobe 来手工加载 AES 模块,命令如下所示:
接下来,用户安装 dmsetup 软件包,该软件包含有配置 device-mapper 所需的工具,如下命令所示:
为检查 dmsetup 软件包是否已经建立了设备映象程序,键入下列命令进行:
然后,需要使用如下命令加载 dm-crypt 内核模块:
dm-crypt 加载后,它会用 evice-mapper 自动注册。如果再次检验的话,device-mapper 已能识别 dm-crypt,并且把 crypt 添加为可用的对象。执行完上述步骤后,用户应该可以根据如下命令看到 crypt 的下列输出,如图 8 所示:

▲图 8. 成功做好装载加密设备的显示
这说明系统已经为装载加密设备做好了准备。下面,我们先来建立一个加密设备。
2、创建加密设备
要创建作为加密设备装载的文件系统,有两种选择:一是建立一个磁盘映像,然后作为回送设备加载;二是使用物理设备。无论那种情况,除了在建立和捆绑回送设备外,其它操作过程都是相似的。
3、建立回送磁盘映象
如果用户没有用来加密的物理设备(比如存储棒或另外的磁盘分区),作为替换,你可以利用命令 dd 来建立一个空磁盘映象,然后将该映象作为回送设备来装载,照样能用。下面我们以实例来加以介绍:
这里我们新建了一个大小为 100 MB 的磁盘映象,该映象名字为 virtual.img。要想改变其大小,可以改变 count 的值。
接下来,我们利用 losetup 命令将该映象和一个回送设备联系起来:
现在,我们已经得到了一个虚拟的块设备,其位于 /dev/loop0,并且我们能够如同使用其它设备那样来使用它。
4、设置块设备
准备好了物理块设备(例如 /dev/hda1),或者是虚拟块设备(像前面那样建立了回送映象,并利用 device-mapper 将其作为加密的逻辑卷加载),我们就可以进行块设备配置了。
下面我们使用 cryptsetup 来建立逻辑卷,并将其与块设备捆绑:
其中,ly_EFS 是新建的逻辑卷的名称。并且最后一个参数 device_name 必须是将用作加密卷的块设备。所以,如果要使用前面建立的回送映象作为虚拟块设备的话,应当运行以下命令:
无论是使用物理块设备还是虚拟块设备,程序都会要求输入逻辑卷的口令,-y 的作用在于要你输入两次口令以确保无误。这一点很重要,因为一旦口令弄错,就会把自己的数据锁住,如图 9 所示:

▲图 9. 为 EFS 输入密码