如何在非主目录中使用ecryptfs


14

我想使用ecryptfs加密一个随机目录(即,不是我的主目录或其子目录,主要是由于主分区的磁盘空间限制),并在我登录帐户时挂载该目录。我看不到该怎么做,即使使用现有软件确实可以做到。我看到过提供模糊建议的帖子(例如,mount.ecryptfs_private与ALIAS选项一起使用),但是我还没有找到有关如何执行此操作的简单分步说明。有人可以提供这些说明或将我定向到哪里找到它们?


2
这是您将找到的最简单的方法:wiki.archlinux.org/index.php/…–
Rinzwind

1
这个解决方案的问题是我已经有一个加密的主目录。看一下的代码ecryptsfs-setup-private,我不确定如果您已经有一个加密的房屋并且真的不想因为担心它做坏事而尝试尝试,那将会发生什么。
user3004015 2015年

1
你知道为什么双身如此难吗?在我看来,合乎逻辑的事情是建立一个通用系统,用于创建加密的存储和文件夹并自动挂载它们,然后在该系统上构建主目录,但是该软件似乎写了很多东西硬连线的东西。存储已经成为.Private,目录必须是私有的,等等
user3004015

2
使用受密码保护的zip文件不是加密安全的。使用类似的方法gpg。假设您要安全地存储文件夹,mydata则可以使用它tar -c mydata | gpg --symmetric > mydata.tar.gpg && rm -rf mydata来存储数据和gpg --decrypt mydata.tar.gpg | tar -x还原数据。您可以轻松地使用私钥/公钥来保护您的数据,这似乎是明智的选择。用这种方法只能存储少量数据。@Rinzwind
Arne L.

1
如果您这样做,将破坏加密数据的目的rm -fR mydata。在您“删除”了很长时间之后,该数据就可以从磁盘上恢复了。我不确定它的安全性如何,但是我倾向于使用“递归”的方法find mydata -type f -exec shred -uz -- {} \;。注意,切碎仅对非日志文件系统和某些设备类型有效。在重要的情况下,应该研究最佳方法。我认为这不是安全的做法:像这样对存档进行加密和解密。可能会无效。
bambams

Answers:


8

你只是看着像超易剧本ecryptsfs-setup-privateecryptsfs-mount-private,他们使用更“通用”的工具,你似乎在寻找:mount.ecryptfsecryptfs-add-passphrase。请参阅他们的man页面以获取更多信息。

Rinzwind发布的链接包含您需要的所有信息,在“ 手动设置”下的页面下方。它们很长,但是非常短的版本是:


“手动设置”方式(archlinux Wiki)

首先,根据需要选择一个ALIAS。通过此部分,ALIAS将是秘密。创建所需的目录/文件:

$ mkdir ~/.secret ~/secret ~/.ecryptfs
$ touch ~/.ecryptfs/secret.conf ~/.ecryptfs/secret.sig

~/.secret目录将保存加密的数据。该~/secret目录是~/.secret将作为ecryptfs文件系统挂载的挂载点。

[现在创建实际的安装密码(简单的脚本将从中选择一个伪随机的32个字符/dev/urandom),使其成为一个很好的密码]

$ echo "$HOME/.secret $HOME/secret ecryptfs" > ~/.ecryptfs/secret.conf
$ ecryptfs-add-passphrase
Passphrase: 
Inserted auth tok with sig [78c6f0645fe62da0] into the user session keyring

将上一条命令的输出签名(ecryptfs_sig)写入〜/ .ecryptfs / secret.sig:

$ echo 78c6f0645fe62da0 > ~/.ecryptfs/secret.sig
  • 可以使用第二个密码来加密文件名。如果选择,请将其添加到密钥环:

    $ ecryptfs-add-passphrase
    Passphrase: 
    Inserted auth tok with sig [326a6d3e2a5d444a] into the user session keyring
    

    如果运行上面的命令,请将其输出签名(ecryptfs_fnek_sig)附加到〜/ .ecryptfs / secret.sig:

    $ echo 326a6d3e2a5d444a >> ~/.ecryptfs/secret.sig
    

最后,在〜/ secret上安装〜/ .secret:

$ mount.ecryptfs_private secret

要卸载〜/ .secret:

$ umount.ecryptfs_private secret

  • 或者,您确实可以弄脏自己的手,并遵循“ 无ecryptfs-utils”指示。

  • 或者,如果您已经看过简单的脚本ecryptsfs-setup-privateecryptsfs-mount-private,则可以一点技巧和耐心地复制并编辑它们以指向您的首选目录。

  • 或者只是以某种方式(安全地最好)自己存储密码,并像man ecryptfs页面示例一样(必须阅读手册页):

    The following command will layover mount eCryptfs on /secret with a passphrase
    contained in a file stored on secure media mounted at /mnt/usb/.
    
    mount  -t  ecryptfs -o key=passphrase:passphrase_passwd_file=/mnt/usb/file.txt /secret /secret
    
    Where file.txt contains the contents "passphrase_passwd=[passphrase]".
    

除了加密的家庭文件夹和家庭内部的加密文件夹-嵌套的eCryptfs文件夹

并且,加密的主文件夹通常将文件存储在中/home/.ecryptfs/user/,而加密的私有文件夹的文件则位于您自己的主文件夹中。您不能同时使用两者,eCryptfs不会做嵌套的加密文件夹。但是拥有一个加密的家以及家外的加密文件夹是可以的。

  • 我刚刚尝试用加密的家庭创建一个新用户 sudo adduser --encrypt-home jack

    它创建了一个/home/.ecryptfs/文件夹,其中包含:

    • /home/.ecryptfs/jack/.ecryptfs/ -包装的密码和配置文件可在登录时自动安装杰克的家
    • /home/.ecryptfs/jack/.Private/-实际的加密主文件,/home/jack/在登录时挂载到该文件。

      以及/home/jack/文件夹,但其中包含一个链接,无论是否登录,该链接都将保留在该链接中:

      /home/jack/.ecryptfs/ -> /home/.ecryptfs/jack/.ecryptfs

    • 接下来,我以jack身份登录,但是链接仍然存在,因此尝试运行ecryptfs-setup-private使它可以查找,/home/jack/.ecryptfs/但实际上看到了现有文件,/home/.ecryptfs/jack/.ecryptfs因此无法创建另一个密码文件,并失败ERROR: wrapped-passphrase file already exists, use --force to overwrite.

      尝试上述“ ALIAS”步骤,使用加密主目录中的.secret文件夹失败,出现以下错误:
      Mount on filesystem of type eCryptfs explicitly disallowed due to known incompatibilities
      Reading sb failed; rc = [-22]

      “ eCryptfs不支持将加密目录嵌套在加密目录中。抱歉。-eCryptfs作者和维护者

    • 更改Jack家外的ALIAS文件夹,尝试/tmp/.secret//tmp/secret/ 工作。但是,如果杰克日志退出,则新的加密文件夹将保持挂载状态,因此您必须将其卸载(umount.ecryptfs_private secret)。


1
感谢您的简化答复。但是有一个问题:这可以解决自动安装问题吗?抱歉,我对此表示密集,但是对于为非标准情况设置自动挂载,您所指示的网页和手册页确实不是特别容易理解。因为我已经有一个加密的主目录,所以我已经有$ HOME / .ecryptfs / auto-mount和wrapped-passphrase,但是第一个是空的,第二个已经有东西了。我尚不清楚如何添加新密码并指示其自动挂载目录。
user3004015

更新了一点测试,这个家伙ragingpenguin.com/2012/12/… 显然对遵循Wiki的有关使用PAM自动安装的Wiki指南感到有些运气,但他对此
持谨慎

感谢您的努力。我对嵌套ecryptfs目录不感兴趣,但是在第二个位置自动挂载了第二个目录。我会在有一点时间的时候尝试使其工作,但是绝对不是很清楚……
user3004015 2015年

您可以将其缩小为mount一行,不需要.conf文件或添加密钥,只需阅读man ecryptfs页面中的可用选项即可。然后在中抛出“登录时运行”文件/home/user/.config/autostart/。但是,如果密码存储不正确,密码短语的安全性可能会受到威胁
Xen2050 2015年

关键是ecryptfs有一个很好的系统,可以将加密密码包装在使用登录密码打开的包装器中。这样可以更好地保护ecryptfs密码。我不认为在.config / autostart中放一些东西会允许这样做,除非我误解了应该在脚本中放什么。
user3004015 2015年

0

如果要像encfs一样使用它,则可以使用以下命令输入 /etc/fstab

/tmp/.geheim /tmp/geheim ecryptfs rw,no_sig_cache,ecryptfs_fnek_sig=1f7aefb9e239099f,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_enable_filename_crypto=y,ecryptfs_passthrough=n,passphrase_passwd=geheimpw,user,noauto 0 0

geheim是秘密的德语单词,但要确保它不是关键字。您必须先创建目录。第一次您应该离开ecryptfs_fnek_sig=1f7aefb9e239099f。然后mount /tmp/geheim将显示正确的值。

您可以将密码存储在其他位置,并设置更复杂的选项。您将在中找到所有选项man ecryptfs


-1
ecryptfs /destination/to/encrypted/storage /destination/to/seeing/unencrypted/data

例如:

ecryptfs /home/$USER/EFILES /home/$USER/Downloads/RANDOMDIRECTORY

使用上面的命令创建并安装加密系统,其中将保存在RANDOMDIRECTORY中的文件加密并保存到EFILES。

补充说明。开始时,请确保RANDOMDIRECTORY为空。一旦运行了上面的命令,并且系统已挂载并准备就绪,如果挂载了系统,则保存在RANDOMDIRECTORY中的所有文件都将被加密为EFILES。要快速安装/卸载,您可以创建一个bash脚本,然后通过应用程序快捷方式运行它,或者创建一个别名命令以进行快速安装。

我已经使用了一年多了。

编辑:回家确认,您的命令不是ecryptfs。它的encfs即

encfs /destination/encrypted /destination/unencrypted

对于那个很抱歉。这样,您将必须安装新程序(可能)


1
我键入命令ecryptfs,它会响应找不到命令。 man ecryptfs调出的手册页mount -t ecryptfs,但并未真正解释如何创建这样的加密文件系统。
user3004015 2015年

请注意,我使用的是Ubuntu 14.04 LTS,因此我的安装相对较新。该ecryptfs命令是最近添加的吗?
user3004015 2015年

encfs与ecryptfs不同。这是两个不同的地方。
对角线
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.