linux上使用eCryptFS加密文件夹的方法

从前有一个摄影师,他不懂加密重要文件,也不懂修电脑,结果你懂的。以下就介绍下linux的加密方法及eCryptFS;

加密的类型

我们基本上有两种不同的方法可以对文件和目录进行加密。一种方法是,文件系统级加密,只有某些文件或目录(比如/home/alice)选择性地加密。在我看来,这是一种理想的入门方法。你没必要重新安装一切来启用或测试加密。不过,文件系统级加密存在一些缺点。比如说,许多现代的应用程序将文件(或文件的部分内容)缓存在硬盘中的未加密区域,比如交换分区、/tmp和/var文件夹,它们会导致隐私泄密。

另一种方法是所谓的全磁盘加密,这意味着整个磁盘都经过了加密(主引导记录可能除外)。全磁盘加密在物理磁盘层面实现;写入到磁盘上的每个比特数据都经过了加密,从磁盘读取的任何数据自动实时解密。这可以防止任何人可能未经授权就访问未加密的数据,并且确保整个文件系统里面的所有数据都经过了加密,包括交换分区或任何临时缓存的数据。

可用的加密工具

在Linux中实施加密机制有几种办法。我在本教程中将介绍一种选择:eCryptFS堆叠加密文件系统工具。下面整理出了几种可用的Linux加密工具,仅供参考。

文件系统级加密

•EncFS:这是尝试加密的最容易的方法之一。EncFS作为堆叠文件系统来运行,所以你只要创建一个加密的文件夹,将它挂载到文件夹上即可使用。

相关链接:http://www.arg0.net/encfs

•eCryptFS:作为一款与POSIX兼容的加密文件系统,eCryptFS的工作方式与EncFS如出一辙,所以你得挂载它。

相关链接:http://ecryptfs.org

全磁盘加密

•Loop-AES:这是最古老的磁盘加密方法。它运行起来速度很快,可以在旧系统(比如内核2.0分支版本)上使用。

相关链接:http://sourceforge.net/projects/loop-aes/

•DMCrypt:现代Linux内核支持的最常见的磁盘加密方案。

相关链接:https://code.google.com/p/cryptsetup/wiki/DMCrypt

•CipherShed:这是现已停止开发的TrueCrypt磁盘加密软件的开源分支版本。

相关链接:https://ciphershed.org

eCryptFS的基础知识简介

eCryptFS是一种堆叠加密文件系统,自2.6.19以来,它就得到Linux内核的支持(作为ecryptfs模块)。用eCryptFS加密的伪文件系统挂载到你现有的文件系统上。它在EXT文件系统系列及其他文件系统(比如JFS、XFS、ReiserFS和Btrfs,甚至NFS/CIFS共享区)上运行起来非常顺畅。


1 安装eCryptFS

安装到Debian、Ubuntu或衍生版本上:

$ sudo apt-get install ecryptfs-utils

注意:如果你决定在Ubuntu安装过程中加密你的主目录,就要确保eCryptFS应该已经安装。

安装到CentOS、RHEL或Fedora上:

# yum install ecryptfs-utils

安装到Arch Linux上:

$ sudo pacman -S ecryptfs-utils

为了稳妥起见,安装程序包后,装入eCryptFS内核模块是个好的做法:

$ sudo modprobe ecryptfs

配置eCryptFS

现在不妨运行eCryptFS配置工具,开始加密某个目录:

2 创建登录密码和挂载密码

ecryptfs-setup-private

如下图所示:

 

3 挂载私人文件

a) 创建文件夹                                                   mkdir /root/tPrivate

 

b) 修改文件夹权限,使其他人无法访问这个文件夹   chmod 700 /root/tPrivate

 

c) 用ecrypt挂载文件夹(加密)                           mount -t ecryptfs /root/tPrivate /root/tPrivate

d) 在挂载过程中会遇到询问提示

     首先需要输入挂载密码(不同于登录密码)

     然后需要选择密钥计算方式(直接回车为默认)

     接着需要输入加密长度(直接回车为默认)

     接着需要选择是否允许将未加密文件放入此文件夹中(默认为不允许)

 

此时提示挂载成功

 

4)测试

a)创建文件,并输入内容,例如:gedit /root/private/test   输入内容“this is a test file content”。

b)查看文件,输入 cat /root/private/test  会看到  this is a test file content 字样

c)卸载文件,输入"umount /root/private"

d)再次查看文件内容,输入cat /root/private/test,会看到乱码。



        (5)快速挂载
        以后每次开机后访问加密数据前都需要重新挂载,你可以使用sudo mount -t ecryptfs ~/company_secret ~/company命令来挂载,但每次都要手工输入一堆选项也挺烦人的。为了以后方便挂载,在~/.bashrc中加入别名:
alias mount_company="sudo mount -t ecryptfs $HOME/company_secret $HOME/company -o ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_enable_filename_crypto=y,ecryptfs_passthrough=n,ecryptfs_fnek_sig=cbd6dc63028e5602(需从前面记录)"

        以后每次使用前只需要执行mount_company即可:
zhouzm@zhouzm:~$ mount_company
[sudo] password for zhouzm:(管理员密码)
Passphrase:(加密密码)
Attempting to mount with the following options:
  ecryptfs_unlink_sigs
  ecryptfs_fnek_sig=cbd6dc63028e5602
  ecryptfs_key_bytes=16
  ecryptfs_cipher=aes
  ecryptfs_sig=cbd6dc63028e5602
Mounted eCryptfs
zhouzm@zhouzm:~$ cat company/test
123456

        (6) 重装系统或移动数据
        你只需要记住加密密码和ecryptfs_fnek_sig参数,则即使你要重装系统或移动数据,也可以用同样的命令对数据进行解密并挂载。



  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值