分类: 网络与安全
2008-06-22 00:21:50
⒋ 上面对设备驱动模块进行了相应的配置。下面配置加密模块。在内核配置对话框中选择“Cryptographic options”,如图所示:
⒌ 在加密选项画面中,选择dm-crypt所用的加密算法,比如我们想使用AES算法的话,在此选择“AES cipher algorithms ”选项即可,如图:
⒍ 保存对配置所做的修改,然后编译并安装内核,具体命令如下所示:
make linux-2.6-xen0-build make linux-2.6-xen0-install |
⒎ 为使改变生效,重新引导系统。
⒏ 现在验证一下是否已经支持AES,具体命令如下所示:
# cat /proc/crypto |
图8 验证AES
从上图可以看到,内核已经支持AES算法了。
⒐ 安装dm-crypt所需的用户空间的工具软件dmsetup,命令如下所示:
# apt-get install cryptsetup dmsetup |
⒑ 利用dmsetup ,我们能显示当前可用的前面称为 target driver 的模块化插件,具体如下所示:
# dmsetup targets |
图9 显示所支持的插件模块
呵呵,支持的模块还真不少,如镜像、原始快照、加密等。
⒒ 我们将使用回送文件来存放加密文件系统。创建一个文件,用它存放将要安装的Ubuntu的根文件系统,具体命令如下所示:
# dd if=/dev/urandom of=/home/pchaganti/xen-images/ ubuntu_feisty_domU.img bs=1G count=6 |
⒓ 将上面建立的回送文件设置为环路设备,具体命令如下所示:
# losetup –f /home/pchaganti/xen-images/ubuntu_feisty_domU.img |
⒔ 利用环路设备创建一个逻辑卷。这要求你输入口令。 这里需要注意,每次安装这个加密的文件时,都要用到该口令。为此,键入下列命令:
# cryptsetup -y create encrypted_feisty /dev/loop0 |
⒕ 利用dmsetup ls命令检查是否已经正确创建了卷:
# dmsetup ls |
图10 验证逻辑卷
⒖ 使用下面的命令在加密文件上创建一个ext3文件系统:
# mkfs.ext3 /dev/mapper/encrypted_feisty |
图11 创建ext3文件系统
⒗ 安装这个加密文件系统,命令如下:
# mount /dev/mapper/encrypted_feisty /mnt/feisty |
⒘ 现在,我们可以着手将Ubuntu安装到刚才挂载的文件系统中了。具体安装步骤在此略过。安装Ubuntu 后,卸下该文件系统。
⒙ 在/etc/crypttab 目录中添加如下所示的加密文件系统的定义:
encrypted_feisty /dev/mapper/encrypted_feisty none check=ext3,retry=5 |
⒚ 在/etc/fstab 文件中为在引导期间挂载的文件系统添加设备:
/dev/mapper/encrypted-feisty /mnt/feisty ext3 defaults 0 2 |
⒛ 重新引导系统期间,当挂载文件系统时会要求您输入口令。输入正确口令后,文件系统才能被挂载。现在,我们可以通过分区配置文件来启动我们的Ubuntu 客户机分区了。
通过device mapper 机制,我们能够在物理块设备上建立虚拟块设备。更为重要的是,我们能够让操作系统通过dm-crypt来访问这些虚拟块设备,而不是直接访问它们。这样一 来,当我们访问虚拟块设备时,必须经过Linux 内核提供的加密API 来进行访问,因此实际上对写入文件系统的所有数据都进行了高强度的加密,从而有效提高了Xen平台和虚拟机的安全性。
与此同时,我们必须看到,dm-crypt也有其缺点。比如,dm-crypt使用口令的hash值来加密磁盘,这使得改变口令成为一个让人头疼的 问题,不仅要用原口令进行解密,至少还得重新加密整个受保护的分区上的数据。还有,如果使用了弱口令的话,很容易被人猜出,从而殃及加密数据的安全。为 此,下面将向大家介绍一种更先进的硬盘加密技术——LUKS。