NFS v4 導出加密分區。客戶端掛載空目錄
我的區域網路伺服器上有一個加密硬碟。它是使用 luks/dm-crypt 加密的。伺服器執行 NFS v4 以在區域網路中共享文件。它可以工作,除了加密的 USB 硬碟驅動器。如果客戶端將共享安裝到他的文件系統中,他會找到一個空文件夾,解密文件應該在其中。
這是設置:
伺服器如何掛載luks分區:
sudo cryptsetup luksOpen /dev/sdb1 data1 sudo mount /dev/mapper/data1 /exports/user1/data1
在伺服器上解密和安裝驅動器工作正常。如果我去,
/exports/user1/data1
我會得到解密的文件。NFS導出:
/exports 192.168.178.20(rw,sync,fsid=0,no_subtree_check,root_squash) 192.168.178.21(rw,sync,fsid=0,no_subtree_check,root_squash) /exports/user1 192.168.178.20(rw,sync,no_subtree_check,root_squash) 192.168.178.21(rw,sync,no_subtree_check,root_squash)
因此,解密的 USB 驅動器直接安裝到 NFS 導出中
/exports/user1/data1
這就是客戶端安裝****共享文件夾的方式:
sudo mount.nfs4 192.168.178.10:/ /fs_data -o soft,intr,rsize=32768,wsize=32768
現在,如果客戶端將伺服器導出安裝到他的文件系統中,他會發現“data1”文件夾是空的。
有什麼我想念的嗎?
更新:
感謝 Gilles的出色回答,我得到了它的工作。我試圖避免
crossmnt
並且nohide
不遇到最終的inode問題。這是我現在使用的:/etc/出口
/exports/user1 192.168.178.20(rw,sync,fsid=0,crossmnt,no_subtree_check) /exports/user1/data1 192.168.178.20(rw,sync,no_subtree_check)
掛載data1的客戶端命令:
sudo mount.nfs4 192.168.178.10:/data1 /fs_data -o soft,intr,rsize=32768,wsize=32768
對於 Linux 核心 NFS 伺服器,如果您導出目錄樹,則不包括掛載在該樹上的任何文件系統。請參閱手冊頁
nohide
中的選項說明。exports(5)
您需要明確導出已安裝的文件系統,即您需要在
exports
for中單獨一行/exports/user1/data1
。此外,您需要在安裝後(重新)啟動 NFS 伺服器/exports/user1/data1
。在客戶端,您需要
/fs_data/data1
單獨安裝。正如手冊頁中所討論的,您可以通過包含選項 on或選項 onexports
來避免這種情況,但這可能會導致麻煩,因為客戶端將在看似相同的文件系統上看到具有相同 inode 編號的文件。例如,這可以導致文件複製或歸檔程序忽略文件,因為它認為它已經備份了它們(如果程序已經看到了 inode 42,它會認為與 inode 42 無關的文件似乎是同一個文件系統——但實際上不是——是同一個文件)。nohide``/exports/users1/data1``crossmnt``/exports/users1``/fs_data/foo``/fs_data/data1/bar