通过 NFS 共享 encfs 加密的“.directory”

通过 NFS 共享 encfs 加密的“.directory”

encfs 使用 FUSE 将加密目录(按照惯例是隐藏的“.directory”)挂载到用户指定的另一个目录上。

我想通过 NFS 共享加密的“.directory”,它将在客户端上解密(按需)。

当我尝试这样做时,安装命令成功并且没有报告错误(即使使用“-vvv”参数)。然而,客户端上的挂载始终为空。为什么?我该如何解决这个问题?

我的计划是客户端不必始终挂载解密的目录,从而提高安全性(我希望)。

另一种共享方式是在 NFS 服务器上解密,这意味着它必须始终保持解密状态(据我所知)。

更新:我想澄清一下,我没有将解密的目录安装在 NFS 服务器上,然后尝试共享该目录。我正在尝试共享原始加密目录。

NFS服务器(192.168.1.1 文件服务器)

/etc/fstab:

/home/.shared /export/home/.shared        none    bind 0 0

/etc/导出:

/export/home/.shared 192.168.1.10(fsid=2,rw,no_root_squash,sync,no_subtree_check,nohide)

NFS客户端(192.168.1.10)

我尝试过两种方法:
第一种尝试:

fileserver:/export/home/.shared /home/.shared  nfs4    noauto,x-systemd.automount,x-systemd.device-timeout=10,timeo=14,rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,intr,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.10,local_lock=none,addr=192.168.1.1      0 0

我也尝试过:

fileserver:/export/home/.shared /home/.shared     nfs4    noauto,_netdev,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,intr    0 0

答案1

存储在加密目录中的数据对于文件系统来说看起来就像普通文件(只是具有奇怪的名称和加密的数据)。因此导出加密的挂载点将正常工作。

因此,在服务器上test1我们可以创建一个测试目录:

$ cd /home/sweh
$ mkdir encrypted decrypted
$ encfs ~/encrypted ~/decrypted
[...]
$ echo hello > decrypted/foo
$ ls encrypted
C-1Ky9g41JBTIYaBJC7EeiiH

现在我们可以导出它了。 /etc/exports有:

/home/sweh/encrypted *(rw,no_root_squash,sync,no_subtree_check,nohide)

我们跑去exports -a出口它。

现在test2我们可以安装它了:

$ mkdir encrypted decrypted
$ sudo mount test1:/home/sweh/encrypted encrypted
$ ls encrypted
C-1Ky9g41JBTIYaBJC7EeiiH

我们可以encfs在客户端上使用它:

$ encfs /home/sweh/encrypted /home/sweh/decrypted 
EncFS Password: 
$ cat decrypted/foo 
hello

相关内容