- 浏览: 35634 次
- 性别:
- 来自: 济南
最近访客 更多访客>>
最新评论
-
guooscar:
现在的大学怎么就不与时俱进一点呢,都2009年了还在用1987 ...
用c开发的游戏 -
daiming253685:
这怎么读得懂啊
用c开发的游戏 -
zhangzuohai:
请问这是在那个编译器下编译的呀,cv or bc or oth ...
用c开发的游戏 -
xiehao315:
我不会用C,提个建议,能不能多几行注释呀!
因为现在没有谁会认 ...
用c开发的游戏 -
shzhlo:
太多错误了,能不能调好了,再放上来
用c开发的游戏
当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密码模块,请利用下列命令进行检查:
如果看到类似下面的输出的话,说明AES模块已经加载:
module : aes
type : cipher
blocksize : 16
min keysize : 16
max keysize : 32
否则,我们可以利用modprobe来手工加载AES模块,命令如下所示:
接下来安装dmsetup软件包,该软件包含有配置device-mapper所需的工具:
为检查dmsetup软件包是否已经建立了设备映象程序,键入下列命令:
接下来加载dm-crypt内核模块:
dm-crypt加载后,它会用evice-mapper自动注册。如果再次检验的话,device-mapper已能识别dm-crypt,并且把crypt 添加为可用的对象:
如果一切顺利,现在你应该看到crypt的下列输出:
striped v1.0.2
linear v1.0.1
error v1.0.1
这说明我们的系统已经为装载加密设备做好了准备。下面,我们先来建立一个加密设备。
二、建立加密设备
要创建作为加密设备装载的文件系统,有两种选择:一是建立一个磁盘映像,然后作为回送设备加载;二是使用物理设备。无论那种情况,除了在建立和捆绑回送设备外,其它操作过程都是相似的。
1.建立回送磁盘映象
如果你没有用来加密的物理设备(比如存储棒或另外的磁盘分区),作为替换,你可以利用命令dd来建立一个空磁盘映象,然后将该映象作为回送设备来装载,照样能用。下面我们以实例来加以介绍:
这里我们新建了一个大小为100 MB的磁盘映象,该映象名字为secret.img。要想改变其大小,可以改变count的值。
接下来,我们利用losetup命令将该映象和一个回送设备联系起来:
现在,我们已经得到了一个虚拟的块设备,其位于/dev/loop/0,并且我们能够如同使用其它设备那样来使用它。
2.设置块设备
准备好了物理块设备(例如/dev/sda1),或者是虚拟块设备(像前面那样建立了回送映象,并利用device-mapper将其作为加密的逻辑卷加载),我们就可以进行块设备配置了。
下面我们使用cryptsetup来建立逻辑卷,并将其与块设备捆绑:
/dev/DEVICENAME
其中,myEncryptedFilesystem 是新建的逻辑卷的名称。并且最后一个参数必须是将用作加密卷的块设备。所以,如果你要使用前面建立的回送映象作为虚拟块设备的话,应当运行以下命令:
无论是使用物理块设备还是虚拟块设备,程序都会要你输入逻辑卷的口令,-y的作用在于要你输入两次口令以确保无误。这一点很重要,因为一旦口令弄错,你就会把自己的数据锁住,这时谁也帮不了您了!
为了确认逻辑卷是否已经建立,可以使用下列命令进行检查一下:
只要该命令列出了逻辑卷,就说明已经成功建立了逻辑卷。不过根据机器的不同,设备号可能有所不同:
device-mapper会把它的虚拟设备装载到/dev/mapper下面,所以,你的虚拟块设备应该是/dev/mapper/myEncryptedFilesystem ,尽管用起来它和其它块设备没什么不同,实际上它却是经过透明加密的。
如同物理设备一样,我们也可以在虚拟设备上创建文件系统:
现在为新的虚拟块设备建立一个装载点,然后将其装载。命令如下所示:
$ sudo mount /dev/mapper/myEncryptedFilesystem /mnt/myEncryptedFilesystem
我们能够利用下面的命令查看其装载后的情况:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/myEncryptedFilesystem 97M 2.1M 90M 2% /mnt/myEncryptedFilesystem
很好,我们看到装载的文件系统,尽管看起来与其它文件系统无异,但实际上写到/mnt/myEncryptedFilesystem /下的所有数据,在数据写入之前都是经过透明的加密处理后才写入磁盘的,因此,从该处读取的数据都是些密文。
三、卸载方法
要卸载加密文件系统,和平常的方法没什么两样:
即便已经卸载了块设备,在dm-crypt中仍然视为一个虚拟设备。如若不信,你可以再次运行命令sudo dmsetup ls来验证一下,你会看到该设备依然会被列出。因为dm-crypt缓存了口令,所以机器上的其它用户不需要知道口令就能重新装载该设备。为了避免这种情况发生,你必须在卸载设备后从dm-crypt中显式的删除该设备。命令具体如下所示:
此后,它将彻底清除,要想再次装载的话,你必须再次输入口令。为了简化该过程,我们可以利用一个简单的脚本来完成卸载和清除工作:
umount /mnt/myEncryptedFilesystem
cryptsetup remove myEncryptedFilesystem
四、重新装载
在卸载加密设备后,我们很可能还需作为普通用户来装载它们。为了简化该工作,我们需要在/etc/fstab文件中添加下列内容:
此外,我们也可以通过建立脚本来替我们完成dm-crypt设备的创建和卷的装载工作,方法是用实际设备的名称或文件路径来替换/dev/DEVICENAME:
cryptsetup create myEncryptedFilesystem /dev/DEVICENAME
mount /dev/mapper/myEncryptedFilesystem /mnt/myEncryptedFilesystem
如果你使用的是回送设备的话,你还能利用脚本来捆绑设备:
losetup /dev/loop/0 ~/secret.img
cryptsetup create myEncryptedFilesystem /dev/loop/0
mount /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一起来安装该模块。命令如下所示:
接下来,编辑文件/etc/pam.d/common-auth,在其末尾添加下列一行:
然后在文件/etc/pam.d/common-session末尾添加下列一行内容:
现在,我们来设置PAM,告诉它需要装载哪些卷、以及装载位置。对本例而言,假设用户名是Ian,要用到的设备是/dev/sda1,要添加到/etc/security/pam_mount.conf文件中的内容如下所示:
如果想使用磁盘映象,你需要在此规定回送设备(比如/dev/loop/0),并确保在Ian登录之前系统已经运行losetup。为此,你可以将 losetup /dev/loop/0 /home/secret.img放入/etc/rc.local文件中。因为该卷被加密,所以PAM需要密钥来装载卷。最后的参数用来告诉PAM密钥在 /home/Ian.key文件中,为此,通过使用OpenSSL来加密你的口令来建立密钥文件:
'
YOUR PASSPHRASE
'
| openssl aes-256-ecb >
/home/Ian.key"
这时,提示你输入密码。注意,这里的口令必需和想要的用户登录密码一致。原因是当你登录时,PAM需要你提供这个密码,用以加密你的密钥文件,然后根据包含在密钥文件中的口令用dm-crypt装载你的主目录。
需要注意的是,这样做会把你的口令以明文的形式暴露在.history文件中,所以要及时利用命令history -c清楚你的历史记录。此外,要想避免把口令存放在加密的密钥文件中的话,可以让创建加密文件系统的口令和登录口令完全一致。这样,在身份认证时,PAM 只要把你的密码传给dm-crypt就可以了,而不必从密钥文件中抽取密码。为此,你可以在/etc/security/pam_mount.conf文件中使用下面的命令行:
最后,为了保证在退出系统时自动卸载加密主目录,请编辑/etc/login.defs文件使得CLOSE_SESSIONS项配置如下:
六、小结
数据加密是一种强而有力的安全手段,它能在各种环境下很好的保护数据的机密性。而本文介绍的Ubuntu Linux 下的加密文件系统就是一种非常有用的数据加密保护方式,相信它能够在保护数据机密性相方面对您有所帮助。
<本文转载自chinaitlab:玩转Ubuntu Linux之加密文件系统篇>
发表评论
-
Java虚拟机应用
2008-08-19 16:19 1091Java虚拟机是一个想象中 ... -
我常用的ubuntu软件
2008-08-15 13:44 3781聊天工具:kmess(MSN)eva(QQ)pidgin(支持 ... -
ubuntu安装中文输入法
2008-08-15 10:03 7596个人认为输入法还是安装Fcitx 的好下面就是安装过程: su ... -
ubuntu下使用QT3和QT4
2008-08-15 09:35 2196刚开始学习C++,对很多东西都不了解,由于在Ubuntu上, ... -
java代码网络聊天室涂鸦板服务器实现
2008-08-15 09:30 2745这是我自己写的一个C/S架构的类似MSN的聊天工具,当然功 ... -
lunix下的java、mysql实现
2008-08-15 09:22 1136搭建java环境在Windows下是很简单的事情,可是到 ... -
ubuntu下听ape音乐
2008-08-07 11:53 4329转载于http://wolfplanet.itey ... -
linux使用经验
2008-08-07 11:49 1280转载于http://wolfplanet.iteye.com ... -
linux下的系统备份
2008-08-07 11:47 1339转载于http://wolfplanet.iteye.com ... -
怎样在ubuntu下开3D
2008-08-07 11:44 1494转载于http://wolfplanet.iteye ... -
ubuntu下的常用软件
2008-08-07 11:41 1724转载于http://wolfplanet.iteye.com ...
相关推荐
本文将详细介绍利用dm-crypt来创建加密文件系统的方法。与其它创建加密文件系统的方 法相比,dm-crypt系统有着无可比拟的优越性:它的速度更快,易用性更强。除此之外,它的适用面也很广,能够运行在各种块设备上,...
对ubuntu 系统里的文件夹和文件进行加密的命令和参数设置以及软件使用
C++编写的数据加密程序源代码(6个):CRC32校验、DES加密、MD5算法、rsa数字签名、RSA演示、简单移位
用于文件加密,绿盾文件加密软件V1.870616.rar
本文档为GRUB的实验文档,关于单用户破密码、引导菜单加密、救援模式
1. 公司使用配套加密软件对已有的核心代码文件和文档进行加密。 2. 把加密的代码分发给程序员开发,程序员机器安装健明linux平台文档防泄漏软件,开发人员使用支持的编辑器编辑源代码和文档看到的是明文,并且新建, ...
Ubuntu_Linux入门到精通.全面介绍了Ubuntu Linux的相关知识,内 ...主要内容包括Ubuntu介绍、文件系统管理、进程管理、压缩与查询系统、Shell应用、TCP/IP基础、网络管理、网络硬盘以及加密安全通信等内容。
该系统运行在ubuntu10.04的操作系统环境下,通过非交互方式挂载eCryptfs文件加密系统来实现存储资源的安全,并对系统平台进行了测试。测试结果表明,这种解决方案保证了企业私有云存储服务的安全性,解决了在大规模...
Android apk标签加密工具,可以按照说明文档在Linux和windows下使用。本人已经调试成功。
1. 公司使用配套加密软件对已有的核心代码文件和文档进行加密。 2. 把加密的代码分发给程序员开发,程序员机器安装健明linux平台文档防泄漏软件,开发人员使用支持的编辑器编辑源代码和文档看到的是明文,并且新建, ...
来加密文件,$input_file为要加密的文件,$output_file为要输出的加密文件。 5)把加密好的文件放到服务器上运行。 性能比较: 1) 没有使用beast模块的时候: 2)使用beast模块的时候: 可见, ...
SecureCRT 客户端运行于 Windows、Mac 和 Linux,将坚如磐石的终端仿真与强大的加密、广泛的身份验证选项以及 SSH(Secure Shell)协议的数据完整性结合起来,以实现安全的网络管理和最终用户访问。 SecureFX 是 ...
Shc可以用来对shell脚本进行加密,可以将shell脚本转换为一个可执行的二进制文件。经过shc对shell脚本进行加密后,会同时生成两种个新的文件,一个是加密后的可执行的二进制文件(文件名以.x结束),另一个是C语言的...
1、运行前请确保脚本文件的权限,可使用chmod 777 AutoInstallROS.sh.x提升权限; 2、为了防止脚本被恶意篡改,对脚本进行了加密处理,介意的切勿使用。 3、一键部署过程中,可能会在init步失败,这一步为目前国内...
网络上搜索一下它的大名吧。加密文件/分区
这使得用户可以通过加密传输文件来增加安全性。 文件管理功能: 用户可以执行复制、粘贴、删除、重命名等文件管理操作,还可以创建文件夹和设置权限。 队列和断点续传: FileZilla 客户端支持文件传输队列,并具有...
另外在Windows,Mac OS X,OpenSuse與Ubuntu多種平台皆可使用.使用者可以決定安裝或者直接使用,其原理是利用在硬碟上新增一個類似映像檔的加密磁區,使用時只需掛載它,將需要加密的檔案移入其中,最後將其卸載.完成加密...
MD5是现在常用的加密算法,可用在程序密码...或者为了程序的安全性,不被别人修改文件,可以对自己的文件进行MD5验证。总之,MD5加密算法是一种十分有用的算法。 use md5单元,可计算指定文件、指定字符串的MD5特征值。
企业级应用,支持静态密钥加密 动态密钥加密 分页延迟加载 即使转换列队与后台转换列队无缝切入 支持较复杂文档转换 支持加密PDF转换(此功能需要/lib/itext中未修改的jar,因为我修改过ITEXT源码以支持加密PDF)等...
Android加固應用逆向分析技術文件及源碼深入分析 ZIP檔案有吴博脱壳--Android加固应用脱壳技术研究的論文及Android SO壳的发展历程和常见Android SO加壳思路以及对应的脱壳思路