Nfs

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

  • July 25, 2016

encfs 使用 FUSE 將加密目錄(按慣例隱藏的“.directory”)安裝到使用者指定的另一個目錄上。

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

當我嘗試這樣做時,mount 命令成功並且沒有報告錯誤(即使使用“-vvv”參數)。但是,**客戶端上的掛載始終為空。**為什麼?我該如何解決這個問題?

我的計劃是客戶端不必一直掛載解密的目錄,從而提高安全性(我希望如此)。

另一種共享方式是在 NFS 伺服器上對其進行解密,這意味著它必須始終保持解密狀態(afaik)。

更新:我想澄清一下,我沒有在 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

儲存在加密目錄中的數據對於文件系統來說就像普通文件(只是名稱和加密數據不同)。因此,導出加密的掛載點將正常工作。

因此,在伺服器上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

引用自:https://unix.stackexchange.com/questions/298004