内容摘要:Cryptmount允许你加密文件系统和交换空间,一个加密的文件系统能象一个正常的文件系统一样存储在一个块设备上—例如,使用/dev/sda2—或者在另一个文件系统中的一个正常文件。
磁盘交互空间中的内容在进出时不需要保留,因此我们可以使用随机数据作为密钥来保护交换文件,每次交换文件再次挂载时,脚本选择一个新的随机密钥并用mkswap重新创建交换文件,这可以避免为交换文件记忆一个密语,随机密钥导致我们不能恢复已经卸载了交换文件内容,但是我们也没有兴趣那么做,因此我们可以使用/dev/radom文件作为我们的密钥。
下面的代码片段就创建一个加密的交换文件(/var/swapfile),在本例中它只有32MB,但是如果dd命令被修改为创建一个16GB的文件,那么剩下的命令将创建一个巨大的加密交换文件。
# dd if=/dev/zero of=/var/swapfile bs=1M count=32
# vi /etc/cryptmount/cmtab
...
swapfile {
dev=/var/swapfile
fstype=swap
flags=mkswap
cipher=twofish
keyfile=/dev/random keymaxlen=16 keyformat=raw
}
...
# free -m
...
Swap: 0 0 0
/usr/bin/cryptmount --swapon swapfile
# free -m
...
Swap: 31 0 31
# /usr/bin/cryptmount --swapoff swapfile
因为cmtab文件显示交换分区挂载类型为fstype=swap,你可以尝试不用--swapon选项挂载一个加密的交换分区,这个错误将导致mount命令发出抱怨提示没有发现加密的交换分区,尽管fstype是swap,但你还得使用--swapon选项来挂载加密交换文件,如果你想用一个独立的分区作为加密交换空间,在dev=这一行替换=后面的路径为你交换分区的块设备,确保在/etc/fstab中没有列出交换分区和文件,因为它们不能在两个地方都设置。
在cmtab中没有标记挂载点选项,用于在系统重新启动后自动挂载。你必须列出cryptmount在/etc/default/cryptmount文件中启动时挂载点的名字,两个有趣的变量是CM_BOOTFS(为文件系统设置启动时挂载)和CM_BOOTSW(为加密交换分区设置启动时挂载),下面的命令同时设置加密文件系统和交换分区,适当修改配置文件,cryptmount和cryptmount-early服务被设置为启动时启动,在系统启动过程中将提示你给home-ben-myencfs(在这个例子中,你应该用你系统的名字替换“ben”) 设置一个密语,然后再继续启动。当系统启动好后home-ben-myencfs和交换文件将被挂载。
/root# vi /etc/default/cryptmount
...
# list of swap targets to configure at boot:
CM_BOOTSW="swapfile"
# list of filesystem targets to mount at boot:
CM_BOOTFS="home-ben-myencfs"
...
/root# chkconfig --add cryptmount-early
/root# chkconfig --add cryptmount
/root# reboot
你可以使用cryptmount --change-password选项来为一个加密文件系统修改密语,修改的密码被用于加密文件系统的加密密钥,文件系统本身不需要修改。
cryptmount在运行Linux的移动设备上保护信息也是很有用的,我们知道你的home目录和交换文件都已经加密了,但是你的笔记本电脑被偷也可能带来麻烦,甚至丢失重要的财务数据,当然你必须选择一个有弹性的密语以应对字典攻击,保护信息比保护笔记本电脑本身更重要,因为有多人更想得到你的数据。
来源:51CTO 作者:黄永兵 责编:豆豆技术应用
- Linux系统配置VI或VIM的技巧
- 主流开源数据库的技术特点点评
- 开源数据库的关键是兼容
- 刀片服务器硬盘启动Linux独立安装
- Shell编程:Linux系统环境程序设计之路
- 网上“晒”病毒 “磁碟机”详尽分析报告
- 大型电子攻击将成为未来企业新的威胁
- 使用Kerberos实现统一认证(二)
- 使用Kerberos5实现统一认证(一)
- 用Cryptmount保护文件系统和交换空间