使用 kerberos 的 NFS 訪問限制
我有以下設置:一台 linux 機器是整個機器網路的備份儲存。網路被認為是保存的,因為它沒有假設真正的壞人。網路中有多個節點(
A
,B
,…,F
),它們將它們的備份放到中央伺服器(不是這個問題的主題)。每個這樣的節點都專用於一個使用者。現在應該允許使用者訪問他們自己的備份。也就是說,在伺服器上有一個包含文件夾的文件夾
A
,F
其中包含各個備份目標。節點上的使用者應該能夠訪問他們自己的備份。一種想法是使用 chrooted SSH 連接來允許連接到各個備份路徑。另一個想法是將 NFS 與 kerberos 一起使用。IP 是動態分配的,不能固定。沒有選項可以更改此行為(將其視為限制)。所以我不能通過 IP 將共享導出
A
,F
因為這些不是固定的。這是我的問題:我能否以某種方式將某些共享的訪問權限限制為只能通過 kerberos 訪問所有已知機器的子集?
我想過使用不同的域,但我不確定這是否可行。在這裡,我對 kerberos 沒有足夠的了解。在我弄亂整個網路之前,請你給我建議,最後我沒有找到任何有用的東西。
不,您不能輕鬆地將 kerberos 共享導出到動態 IP 地址的子集。但是,您可以相對輕鬆地將 kerberos 共享導出到一組使用 kerberos 的使用者。
kerberized 共享的行為很像標準 NFS 共享,但客戶端不能偽造它正在執行的 uid。應相應地設置 Unix/posix ACL。
NFS 共享既可以設置為特定子網,也可以設置為需要 kerberos。
/srv/backup/A 203.0.113.0/25(ro,sec=krb5p) /srv/backup/B 203.0.113.128/25(ro,sec=krb5p)
客戶端和伺服器都需要訪問適當的密鑰表。
伺服器是
nfs/<server.fqdn>@<REALM>
.客戶端 (rpc.gssd) 按順序搜尋:
<HOSTNAME>$@<REALM> root/<hostname>@<REALM> nfs/<hostname>@<REALM> host/<hostname>@<REALM> root/<anyname>@<REALM> nfs/<anyname>@<REALM> host/<anyname>@<REALM>
客戶必須持有有效票證,通常由
pam_sss
、pam_krb5
、ssh -K
、kinit
或獲得k5start
。伺服器和客戶端都必須將相同的 kerberos 主體解析為相同的使用者名。