




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Ubuntu Linux之加密文件系统篇本文将详细介绍利用dm-crypt来创建加密文件系统的方法。与其它创建加密文件系统的方 法相比,dm-crypt系统有着无可比拟的优越性:它的速度更快,易用性更强。除此之外,它的适用面也很广,能够运行在各种块设备上,即使这些设备使用 了RAID和 LVM也毫无障碍。dm-crypt系统之所以具有这些优点,主要得益于该技术是建立在2.6版本内核的device-mapper特性之上的。 device-mapper是设计用来为在实际的块设备之上添加虚拟层提供一种通用灵活的方法,以方便开发人员实现镜像、快照、级联和加密等处理。此外, dm-crypt使用了内核密码应用编程接口实现了透明的加密,并且兼容cryptloop系统。 一、配置内核 dm-crypt利用内核的密码应用编程接口来完成密码操作。一般说来,内核通常将 各种加密程序以模块的形式加载。对于256-bit AES来说,其安全强度已经非常之高,即便用来保护绝密级的数据也足够了。因此本文中我们使用256-bit AES密码,为了保证您的内核已经加载AES密码模块,请利用下列命令进行检查:$ cat /proc/crypto如果看到类似下面的输出的话,说明AES模块已经加载: name : aesmodule : aestype : cipherblocksize : 16min keysize : 16max keysize : 32否则,我们可以利用modprobe来手工加载AES模块,命令如下所示: $ sudo modprobe aes接下来安装dmsetup软件包,该软件包含有配置device-mapper所需的工具: $ sudo apt-get install dmsetup cryptsetup为检查dmsetup软件包是否已经建立了设备映象程序,键入下列命令: $ ls -l /dev/mapper/control接下来加载dm-crypt内核模块: $ sudo modprobe dm-cryptdm-crypt加载后,它会用evice-mapper自动注册。如果再次检验的话,device-mapper已能识别dm-crypt,并且把crypt 添加为可用的对象: $ sudo dmsetup targets如果一切顺利,现在你应该看到crypt的下列输出: crypt v1.1.0striped v1.0.2linear v1.0.1error v1.0.1这说明我们的系统已经为装载加密设备做好了准备。下面,我们先来建立一个加密设备。 二、建立加密设备 要创建作为加密设备装载的文件系统,有两种选择:一是建立一个磁盘映像,然后作为回送设备加载;二是使用物理设备。无论那种情况,除了在建立和捆绑回送设备外,其它操作过程都是相似的。 1.建立回送磁盘映象 如果你没有用来加密的物理设备(比如存储棒或另外的磁盘分区),作为替换,你可以利用命令dd来建立一个空磁盘映象,然后将该映象作为回送设备来装载,照样能用。下面我们以实例来加以介绍: $ dd if=/dev/zero of=/secret.img bs=1M count=100这里我们新建了一个大小为100 MB的磁盘映象,该映象名字为secret.img。要想改变其大小,可以改变count的值。接下来,我们利用losetup命令将该映象和一个回送设备联系起来: $ sudo losetup /dev/loop/0 /secret.img现在,我们已经得到了一个虚拟的块设备,其位于/dev/loop/0,并且我们能够如同使用其它设备那样来使用它。 2.设置块设备 准备好了物理块设备(例如/dev/sda1),或者是虚拟块设备(像前面那样建立了回送映象,并利用device-mapper将其作为加密的逻辑卷加载),我们就可以进行块设备配置了。 下面我们使用cryptsetup来建立逻辑卷,并将其与块设备捆绑: $ sudo cryptsetup -y create myEncryptedFilesystem /dev/DEVICENAME其中,myEncryptedFilesystem 是新建的逻辑卷的名称。并且最后一个参数必须是将用作加密卷的块设备。所以,如果你要使用前面建立的回送映象作为虚拟块设备的话,应当运行以下命令: $ sudo cryptsetup -y create myEncryptedFilesystem /dev/loop/0无论是使用物理块设备还是虚拟块设备,程序都会要你输入逻辑卷的口令,-y的作用在于要你输入两次口令以确保无误。这一点很重要,因为一旦口令弄错,你就会把自己的数据锁住,这时谁也帮不了您了!为了确认逻辑卷是否已经建立,可以使用下列命令进行检查一下: $ sudo dmsetup ls只要该命令列出了逻辑卷,就说明已经成功建立了逻辑卷。不过根据机器的不同,设备号可能有所不同: myEncryptedFilesystem (221, 0)device-mapper会把它的虚拟设备装载到/dev/mapper下面,所以,你的 虚拟块设备应该是/dev/mapper/myEncryptedFilesystem ,尽管用起来它和其它块设备没什么不同,实际上它却是经过透明加密的。如同物理设备一样,我们也可以在虚拟设备上创建文件系统: $ sudo mkfs.ext3 /dev/mapper/myEncryptedFilesystem现在为新的虚拟块设备建立一个装载点,然后将其装载。命令如下所示: $ sudo mkdir /mnt/myEncryptedFilesystem $ sudo mount /dev/mapper/myEncryptedFilesystem /mnt/myEncryptedFilesystem我们能够利用下面的命令查看其装载后的情况: $ df -h /mnt/myEncryptedFilesystem Filesystem Size Used Avail Use% Mounted on/dev/mapper/myEncryptedFilesystem 97M 2.1M 90M 2% /mnt/myEncryptedFilesystem很好,我们看到装载的文件系统,尽管看起来与其它文件系统无异,但实际上写到/mnt/myEncryptedFilesystem /下的所有数据,在数据写入之前都是经过透明的加密处理后才写入磁盘的,因此,从该处读取的数据都是些密文。 三、卸载方法 要卸载加密文件系统,和平常的方法没什么两样: $ sudo umount /mnt/myEncryptedFilesystem即便已经卸载了块设备,在dm-crypt中仍然视为一个虚拟设备。如若不信,你可以再次运 行命令sudo dmsetup ls来验证一下,你会看到该设备依然会被列出。因为dm-crypt缓存了口令,所以机器上的其它用户不需要知道口令就能重新装载该设备。为了避免这种情 况发生,你必须在卸载设备后从dm-crypt中显式的删除该设备。命令具体如下所示: $ sudo cryptsetup remove myEncryptedFilesystem此后,它将彻底清除,要想再次装载的话,你必须再次输入口令。为了简化该过程,我们可以利用一个简单的脚本来完成卸载和清除工作: #!/bin/shumount /mnt/myEncryptedFilesystem cryptsetup remove myEncryptedFilesystem四、重新装载 在卸载加密设备后,我们很可能还需作为普通用户来装载它们。为了简化该工作,我们需要在/etc/fstab文件中添加下列内容: /dev/mapper/myEncryptedFilesystem /mnt/myEncryptedFilesystem ext3 noauto,noatime 0 0此外,我们也可以通过建立脚本来替我们完成dm-crypt设备的创建和卷的装载工作,方法是用实际设备的名称或文件路径来替换/dev/DEVICENAME: #!/bin/shcryptsetup create myEncryptedFilesystem /dev/DEVICENAMEmount /dev/mapper/myEncryptedFilesystem /mnt/myEncryptedFilesystem如果你使用的是回送设备的话,你还能利用脚本来捆绑设备: #!/bin/sh losetup /dev/loop/0 /secret.imgcryptsetup create myEncryptedFilesystem /dev/loop/0mount /dev/mapper/myEncryptedFilesystem /mnt/myEncryptedFilesystem如果你收到消息“ioctl: LOOP_SET_FD: Device or resource busy”,这说明回送设备很可能仍然装载在系统上。我们可以利用sudo losetup -d /dev/loop/0命令将其删除。 五、加密主目录 如果配置了PAM(Pluggable Authentication Modules,即可插入式鉴别模块)子系统在您登录时装载主目录的话,你甚至还能加密整个主目录。因为libpam-mount模块允许PAM在用户登 录时自动装载任意设备,所以我们要连同openssl一起来安装该模块。命令如下所示: $ sudo apt-get install libpam-mount openssl接下来,编辑文件/etc/pam.d/common-auth,在其末尾添加下列一行: auth optional pam_mount.so use_first_pass然后在文件/etc/pam.d/common-session末尾添加下列一行内容: session optional pam_mount.so现在,我们来设置PAM,告诉它需要装载哪些卷、以及装载位置。对本例而言,假设用户名是Ian,要用到的设备是/dev/sda1,要添加到/etc/security/pam_mount.conf文件中的内容如下所示: volume Ian crypt - /dev/sda1 /home/Ian cipher=aes aes-256-ecb /home/Ian.key如果想使用磁盘映象,你需要在此规定回送设备(比如/dev/loop/0),并确保在 Ian登录之前系统已经运行losetup。为此,你可以将losetup /dev/loop/0 /home/secret.img放入/etc/rc.local文件中。因为该卷被加密,所以PAM需要密钥来装载卷。最后的参数用来告诉PAM密钥在 /home/Ian.key文件中,为此,通过使用OpenSSL来加密你的口令来建立密钥文件: $ sudo sh -c echo YOUR PASSPHRASE | openssl aes-256-ecb /home/Ian.key这时,提示你输入密码。注意,这里的口令必需和想要的用户登录密码一致。原因是当你登录时,PAM需要你提供这个密码,用以加密你的密钥文件,然后根据包含在密钥文件中的口令用dm-crypt装载你的主目录。 需要注意的是,这样做会把你的口令以明文的形式暴露在.history文件中,所以 要及时利用命令history -c清楚你的历史记录。此外,要想避免把口令存放在加密的密钥文件中的话,可以让创建加密文件系统的口令和登录口令完全一致。这样,在身份认证时,PAM 只要把你的密码传给dm-crypt就可以了,而不必从密钥文件中抽取密码。为此,你可以在/etc/security/pam_mount.conf文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度物业经营管理承包合同书
- 2025标准二手房买卖合同封面模板(含房屋维修责任界定)
- 2025年茶山茶叶品牌授权承包合同范本
- 2025年度炊事员健康管理与聘用合同
- 2025版社区蔬菜配送与团购服务合同
- 2025版餐具品牌授权与区域代理合同
- 2025年全新第九章进出口合同商订及环保责任履行协议
- 2025版通信工程技术咨询合同范本
- 2025年教育咨询服务销售担保服务协议
- 2025年极地科研设施半包装修合同范本
- 学校十五五规划(同名11527)
- 高中心理健康测试题及答案大全
- 小学二年级上册《健康成长》全册教学设计
- 蓝色简约风医学生职业生涯规划展示模板
- 土建安全员c类考试试题及答案
- T/SHPTA 031-2022电缆和光缆用复合防护尼龙12护套料
- 高中生国防教育
- 汕头侨乡文化课件下载
- 体育公园大众冰雪运动项目配置指南 DB23T 3943-2025
- 值长面试题及答案
- DB32T 4772-2024自然资源基础调查技术规程
评论
0/150
提交评论