如何应用dm-crypt构建加密文件系统(EFS)

日期: 2012-07-04 作者:羽扇纶巾 来源:TechTarget中国

与其它创建加密文件系统的方法相比,dm-crypt系统有着无可比拟的优越性:它的速度更快,易用性更强。除此之外,它的适用面也很广,能够运行在各种块设备上,即使这些设备使用了RAID和 LVM也毫无障碍。dm-crypt系统之所以具有这些优点,主要得益于该技术是建立在2.6版本内核的device-mapper特性之上的。device-mapper是设计用来为在实际的块设备之上添加虚拟层提供一种通用灵活的方法,以方便开发人员实现镜像、快照、级联和加密等处理。

此外,dm-crypt使用了内核密码应用编程接口实现了透明的加密,并且兼容cryptloop系统。   第一步:内核准备   dm -cryp……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

与其它创建加密文件系统的方法相比,dm-crypt系统有着无可比拟的优越性:它的速度更快,易用性更强。除此之外,它的适用面也很广,能够运行在各种块设备上,即使这些设备使用了RAID和 LVM也毫无障碍。dm-crypt系统之所以具有这些优点,主要得益于该技术是建立在2.6版本内核的device-mapper特性之上的。device-mapper是设计用来为在实际的块设备之上添加虚拟层提供一种通用灵活的方法,以方便开发人员实现镜像、快照、级联和加密等处理。此外,dm-crypt使用了内核密码应用编程接口实现了透明的加密,并且兼容cryptloop系统。

  第一步:内核准备

  dm -crypt利用内核的密码应用编程接口来完成密码操作。一般说来,内核通常将各种加密程序以模块的形式加载。对于AES来说,其安全强度已经非常之高,即便用来保护绝密级的数据也足够了。为了保证用户的内核已经加载AES密码模块,请根据如下命令进行检查:
  #cat /proc/crypto

  否则,可以使用modprobe来手工加载AES模块,命令如下所示:
  #modprobe aes

  接下来,用户安装dmsetup软件包,该软件包含有配置device-mapper所需的工具,如下命令所示:
  #yum install dmsetup cryptsetup

  为检查dmsetup软件包是否已经建立了设备映象程序,键入下列命令进行:
  #ls -l /dev/mapper/control

  然后,需要使用如下命令加载dm-crypt内核模块:
  #modprobe dm-crypt

  dm-crypt加载后,它会用evice-mapper自动注册。如果再次检验的话,device-mapper已能识别dm-crypt,并且把crypt 添加为可用的对象。执行完上述步骤后,用户应该可以根据如下命令看到crypt的下列输出:
  #dmsetup targets

  这说明系统已经为装载加密设备做好了准备。下面,我们先来建立一个加密设备。

  第二步:创建加密设备

  要创建作为加密设备装载的文件系统,有两种选择:一是建立一个磁盘映像,然后作为回送设备加载;二是使用物理设备。无论那种情况,除了在建立和捆绑回送设备外,其它操作过程都是相似的。

  建立回送磁盘映象

  如果用户没有用来加密的物理设备(比如存储棒或另外的磁盘分区),作为替换,你可以利用命令dd来建立一个空磁盘映象,然后将该映象作为回送设备来装载,照样能用。下面我们以实例来加以介绍:

  #dd if=/dev/zero of=/virtual.img bs=1M count=100

  这里我们新建了一个大小为100 MB的磁盘映象,该映象名字为virtual.img。要想改变其大小,可以改变count的值。

  接下来,我们利用losetup命令将该映象和一个回送设备联系起来:

  #losetup /dev/loop0 /virtual.img

  现在,我们已经得到了一个虚拟的块设备,其位于/dev/loop0,并且我们能够如同使用其它设备那样来使用它。

  设置块设备

  准备好了物理块设备(例如/dev/hda1),或者是虚拟块设备(像前面那样建立了回送映象,并利用device-mapper将其作为加密的逻辑卷加载),我们就可以进行块设备配置了。

  下面我们使用cryptsetup来建立逻辑卷,并将其与块设备捆绑:
  #cryptsetup -y create ly_EFS device_name

  其中,ly_EFS是新建的逻辑卷的名称。并且最后一个参数device_name必须是将用作加密卷的块设备。所以,如果要使用前面建立的回送映象作为虚拟块设备的话,应当运行以下命令:
  #cryptsetup -y create ly_EFS /dev/loop0

  无论是使用物理块设备还是虚拟块设备,程序都会要求输入逻辑卷的口令,-y的作用在于要你输入两次口令以确保无误。这一点很重要,因为一旦口令弄错,就会把自己的数据锁住, 为了确认逻辑卷是否已经建立,可以使用下列命令进行检查一下:

  #dmsetup ls
  只要该命令列出了逻辑卷,就说明已经成功建立了逻辑卷。不过根据机器的不同,设备号可能有所不同。device-mapper会把它的虚拟设备装载到/dev/mapper下面,所以,你的虚拟块设备应该是/dev/mapper/ly_EFS ,尽管用起来它和其它块设备没什么不同,实际上它却是经过透明加密的。

  如同物理设备一样,用户也可以在虚拟设备上创建文件系统:
  #mkfs.ext3 /dev/mapper/ly_EFS

  现在为新的虚拟块设备建立一个装载点,然后将其装载。命令如下所示:
  #mkdir /mnt/ly_EFS
  #mount /dev/mapper/ly_EFS /mnt/ly_EFS

  用户能够利用下面的命令查看其装载后的情况:
  #df -h /mnt/ly_EFS

  通过上述的步骤后,用户看到装载的文件系统,尽管看起来与其它文件系统无异,但实际上写到/mnt/ly_EFS/下的所有数据,在数据写入之前都是经过透明的加密处理后才写入磁盘的,因此,从该处读取的数据都是些密文。

  卸载加密设备

  要卸载加密文件系统,和平常的方法没什么两样:
  #umount /mnt/ly_EFS

  即便已经卸载了块设备,在dm-crypt中仍然视为一个虚拟设备。如若不信,用户可以再次运行命令dmsetup ls来验证一下,将会看到该设备依然会被列出。因为dm-crypt缓存了口令,所以机器上的其它用户不需要知道口令就能重新装载该设备。为了避免这种情况发生,用户必须在卸载设备后从dm-crypt中显式的删除该设备。命令具体如下所示:
  #cryptsetup remove ly_EFS

  此后,它将彻底清除,要想再次装载的话,用户必须再次输入口令。

  重新装载加密设备

  在卸载加密设备后,用户很可能还需作为普通用户来装载它们。为了简化该工作,需要在/etc/fstab文件中添加下列内容:
  /dev/mapper/ly_EFS /mnt/ly_EFS ext3 noauto,noatime 0 0

  此外,用户也可以通过建立脚本来替我们完成dm-crypt设备的创建和卷的装载工作,方法是用实际设备的名称或文件路径来替  换/dev/DEVICENAME:

  #!/bin/sh
  cryptsetup create ly_EFS /dev/DEVICENAME
  mount /dev/mapper/ly_EFS /mnt/ly_EFS

  如果用户使用的是回送设备的话,用户还可以利用脚本来捆绑设备,脚本如下所示:

  #!/bin/sh
  losetup /dev/loop0 ~/virtual.img
  cryptsetup create ly_EFS /dev/loop0
  mount /dev/mapper/ly_EFS /mnt/ly_EFS

作者

羽扇纶巾
羽扇纶巾

自由撰稿人。

相关推荐

  • 在Linux系统中的加密文件系统应用(EFS)

    开源系统在企业中尤其是在服务器的构建和数据存储中得到了普遍的应用和推广,其安全问题得到了大家的关注。

  • 存储加密技术

    存储加密技术用于加密存储在硬盘和其它一些媒介如备份磁盘上的数据。本文集中介绍了存储加密技术的特点、工作原理以及相应的密匙管理方面的问题……

  • Windows Vista中EFS加密功能的妙用

    从windows 2000开始,微软为我们提供了一个叫做EFS的加密功能,通过该功能,我们可以将保存在NTFS分区上的文件加密,让别人无法打开。本文介绍在Vista中EFS的妙用……

  • Windows 系统安全技术概念技术讲解

    面对庞大纷繁的windows操作系统,保护好其安全势在必行。对于目前关于Windows方面的安全技术和概念,本文将列举一些常见问题,帮助广大网友更好理解Windows安全机制。