问题描述
在基于Ubuntu的系统上加密目录的最简单方法是什么?
假设我有一台运行Ubuntu 10.04的笔记本电脑,在那上面我有一些文件应该保持安全(如果我丢失了笔记本电脑)。
假设所有文档都在一个名为〜/work /的目录中,并且该目录之外没有任何秘密。因此,无需加密整个主目录。
应该有一种从命令行锁定/解锁该目录的方法。
似乎有一些不同的方法可以做到这一点:
-
ecryptfs-utils
-
加密设置
-
truecrypt(但是未获得OSI批准的开源)
但是,最简单,最可靠的方法是什么?
谢谢约翰
更新:相关问题,但不是相同的What’s the easiest way to encrypt all of my files in ubuntu 10.04?
最佳方案
共有三种方法:在分区(dm-crypt
,使用cryptsetup
配置)上设置加密卷,设置作为加密卷的文件(truecrypt),在每个文件分别进行加密的目录下建立目录(ecryptfs
或encfs
)。
设置加密的卷可以提供更多的保密性,因为文件的元数据(大小,修改时间)是不可见的。不利的一面是,它的灵活性较差(您必须预先确定加密卷的大小)。 ecryptfs FAQ列出了两种方法之间的一些差异。
如果您选择按文件加密文件,那么我知道两个选择:ecryptfs
和encfs
。前者使用in-kernel驱动程序,而后者则使用FUSE。这可能使ecryptfs
具有速度优势;它为encfs
带来了灵活性优势,因为无需以root身份进行任何操作。 ecryptfs
的可能好处是,完成初始设置后,由于使用了pam_ecryptfs
模块,因此可以将登录密码用作文件系统密码。
对于我自己在类似情况下的使用,我选择了encfs
,因为我看不到其他解决方案有任何实际的安全优势,因此ease-of-use是决定因素。性能不是问题。工作流程非常简单(第一次运行encfs
创建文件系统):
aptitude install encfs
encfs ~/.work.encrypted ~/work
... work ...
fusermount -u ~/work
我建议您还对交换空间以及可能写入临时机密文件的任何位置进行加密,例如/tmp
和/var/spool/cups
(如果您打印机密文件)。使用cryptsetup
加密交换分区。处理/tmp
的最简单方法是通过将其安装为tmpfs
来将其保留在内存中(在任何情况下,这都会带来一点性能上的好处)。