Freebsd
是否有用於管理了解 ZFS 的 FreeBSD 監獄的工具?
FreeBSD 下的 ZFS 允許將文件系統分配給監獄,這樣監獄中具有適當權限的帳戶就可以訪問文件系統、創建新的從屬文件系統等等。至少對於 8-STABLE,這些功能沒有集成到現有
/etc/rc.d/jail
腳本中。基本過程如下所示:sysctl -w security.jail.enforce_statfs=0 sysctl -w security.jail.mount_allowed=1 zfs set jailed=on <filesystem> zfs jail <jid> <filesystem>
並且還需要暴露
zfs
監獄內的設備節點。與此同時,似乎有大量的工具(ezjail、jailer、warden 和一般來說
/usr/ports/sysutils/*jail*
)聲稱更容易/更好/更強大/等等,但其中大多數似乎只是輕微維護而不是與標準監獄腳本相比,這確實是一場胜利。我想避免重新發明輪子。是否有與 ZFS 良好集成的監獄管理工具?我正在尋找可以在啟動監獄時設置必要的 devfs 規則、sysctl 設置和 zfs 屬性的東西……並且理想情況下允許對監獄的基於名稱的引用,雖然許多第三方支持 -庫存監獄腳本中悲慘地缺少派對工具。
經過一番摸索,事實證明,最新版本的ezjail已經有了這個支持。關鍵部分是以下配置選項
/usr/local/etc/ezjail.conf
:ezjail_use_zfs="YES" ezjail_jailzfs="tank/jails"
並
-c zfs
在創建監獄時使用,如下所示:ezjail-admin create -c zfs myjail 192.168.1.10
您可以使用以下命令將 ZFS 數據集與監獄相關聯
ezjail-admin config
(您不能將其作為create
命令的一部分執行):ezjail-admin config -z tank/data/myjail myjail
這假設您已設置 ZFS 數據集並配置了適當的 sysctl 設置和 devfs 規則以使其工作。
您的 ZFS 數據集需要
jailed
設置選項:zfs set jailed=on tank/data/myjail
您需要以下內容
/etc/sysctl.conf
:# support zfs in jails security.jail.mount_allowed=1 security.jail.enforce_statfs=0
我對使用 ezjail 配置的監獄使用以下 devfs 規則集:
[devfsrules_zfsjail=100] add include $devfsrules_jail add path zfs unhide