如何在Linux上借助eCryptFS加密文件和目录?

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

你没必要非得是犯罪分子或者为情报部门效力,才使用加密技术。你根本不希望有谁暗中窥视自己的财务数据、家庭照片、尚未发表的手稿,或者是你在上面随手写下的,可能让自己一夜爆富的创业想法的秘密便条。

我曾听人这样说过“我又不是什么重要人士,所以不会被窥视”,或者“我没有什么重要的东西好隐藏的”。我的看法是,即便没有任何东西好隐藏的,或者即便可以发布孩子与爱犬在一起的照片,我还是有权不这么做,目的是为了保护自己的隐私。

加密的类型

我们基本上有两种不同的方法可以对文件和目录进行加密。一种方法是,文件系统级加密,只有某些文件或目录(比如/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

#p#

eCryptFS的基础知识简介

eCryptFS是一种堆叠加密文件系统,自2.6.19以来,它就得到Linux内核的支持(作为ecryptfs模块)。用eCryptFS加密的伪文件系统挂载到你现有的文件系统上。它在EXT文件系统系列及其他文件系统(比如JFS、XFS、ReiserFS和Btrfs,甚至NFS/CIFS共享区)上运行起来非常顺畅。Ubuntu使用eCryptFS 作为其加密主目录的默认方法,ChromeOS也是如此。eCryptFS在底层使用AES算法作为默认算法,但它也支持其他算法,比如blowfish、des3、cast5和cast6等算法。一旦你手动安装eCryptFS,就可以在这些算法当中作一个选择。

正如我说过的那样,Ubuntu让我们可以在安装过程中选择是否对我们的/home目录进行加密。这是使用eCryptFS的最简单的方法。

Ubuntu提供了一系列易于使用的工具,与eCryptFS结合使用可以简化我们的工作;不过在Ubuntu安装过程中启用eCryptFS完全形成一种特定的预配置安装。所以万一默认安装不适合你的要求,你就需要执行手动安装。我在本教程中将介绍如何将eCryptFS手动安装到主要的Linux发行版上。

安装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配置工具,开始加密某个目录:

$ ecryptfs-setup-private

它会要求输入登录密码和挂载密码。登录密码与你平常的那个登录密码一样。挂载密码则用来获得文件加密主密钥。退出,重新登录。

你会注意到eCryptFS在默认情况下创建了两个目录:主目录中的Private目录和.Private目录。~/.Private目录里面含有加密的数据,你可以访问~/Private目录中相应的解密数据。在你登录时, ~/.Private目录自动解密,映射到~/Private目录,那样你就能访问它。你退出后,~/Private目录自动卸载,~/Private目录里面的内容加密回到~/.Private目录。

eCryptFS知道你拥有~/.Private目录,并且自动解密到~/Private,不需要我们键入密码,它是通过eCryptFS PAM模块来做到这一点的,该模块为我们完成了这项任务。

万一你不想在登录时让~/Private目录自动挂载,只要在运行ecryptfs-setup-private工具时,添加“--noautomount”这个选项。同样,如果你不想在退出后让~/Private目录自动卸载,只要指定“--noautoumount”这个选项。不过那样的话,你就得亲自手动挂载或卸载~/Private目录了。

$ ecryptfs-mount-private ~/.Private ~/Private
$ ecryptfs-umount-private ~/Private

你可以运行下面这个命令,确认.Private文件已挂载:

$ mount

现在我们可以开始将任何敏感文件放入到~/Private文件夹里面,我们退出后,它们会自动加密,并在~/.Private文件夹里面严加保护起来。

这一切似乎相当神奇。从根本上来说,ecryptfs-setup-private工具让一切易于安装。如果你想多尝试一下,安装eCryptFS的特定部分,可以参阅官方说明文档:http://ecryptfs.org/documentation.html。

结束语

总之,如果你非常在意自己的隐私,我推荐的***方案就是将基于eCryptFS的文件系统级加密与全磁盘加密结合起来。不过总是要记住一点,光靠文件加密无法为你保证隐私。

原文地址:http://xmodulo.com/encrypt-files-directories-ecryptfs-linux.html

责任编辑:蓝雨泪 来源: 51CTO.com
相关推荐

2012-05-09 10:38:37

2014-05-07 09:56:48

Docker管理Linux容器

2009-09-22 11:59:19

2020-09-30 06:00:00

Linux误删除恢复文件

2014-09-26 10:28:39

LinuxPuppet

2018-02-23 14:50:30

2020-12-28 06:44:45

FedoraLinux RPM文件

2018-07-30 09:42:09

AndroidWineWindows App

2011-09-05 13:41:32

UbuntueCryptfs

2015-08-11 09:30:51

2019-08-14 09:42:06

LinuxElasticsearKibana

2021-11-18 10:37:28

加密挖矿加密货币安全观察

2013-11-18 11:41:37

2016-02-16 09:36:37

CrossOverLinuxWindows

2019-06-10 08:15:52

Linux命令

2015-08-05 09:40:26

2016-12-20 09:47:17

Linux命令复制文件到多个目录

2015-07-20 11:19:22

Amazon S3AWS加密文件配置

2019-02-25 15:36:52

Linux复制文件远程系统

2018-08-06 09:30:00

LinuxPbcopyPbpaste
点赞
收藏

51CTO技术栈公众号