可以為 jail 設定許多不同選項,並讓 FreeBSD 的 host 系統與 jail 以各種不同方式組合搭配,以符合更多的應用用途。 本節要介紹的是:
用以微調 jail 行為與安全限制的選項。
可透過 FreeBSD Ports Collection 安裝的高階 jail 管理程式, 搭配這些程式可以達到一些 jail-based 解決方案。
對於 jail 設定的微調,基本上都是透過設定 sysctl(8) 變數來完成。
系統提供一組 sysctl 的特殊子樹,全部相關的選項都在該子樹內,也就是 FreeBSD
kernel 中的 security.jail.*
子樹。 下面則是與 jail
相關的主要 sysctl 設定及預設值,這些名稱都相當容易理解, 如欲更進一步的資訊,請參閱
jail(8) 與 sysctl(8) 說明:
security.jail.set_hostname_allowed: 1
security.jail.socket_unixiproute_only: 1
security.jail.sysvipc_allowed: 0
security.jail.enforce_statfs: 2
security.jail.allow_raw_sockets: 0
security.jail.chflags_allowed: 0
security.jail.jailed: 0
系統管理者可在 host system
透過修改這些設定值來增加、取消 Jail 內 root
帳號的預設限制。 請注意:有些限制是不能取消,在 jail(8) 環境的
root 不能掛載或卸載檔案系統。 此外亦不能載入、 卸載
devfs(8)
規則、設定防火牆規則,或執行其他需修改 kernel 資料的管理作業,例如設定 kernel 的
securelevel
值。
FreeBSD base system 內附一些基本工具,可用來查閱目前使用中的 jail、 並接上(attach) jail 以執行管理指令。 jls(8) 及 jexec(8) 均屬於 FreeBSD base system 之一,可用來執行一些簡單工作:
列出有在使用的 jail 及其相對應的 jail identifier (JID)、IP address、 hostname、路徑。
接上(Attach)正在運作中的 jail,並在其中執行指令以進行管理工作。 這點在當 root 想乾淨關閉 jail 時相當有用, jexec(8) 也可用在 jail 中啟動 shell 以便對其進行管理, 比如:
# jexec 1 tcsh
在諸多 third-party 所提供的 jail 管理工具當中,sysutils/jailutils 是最完整也最好用的。 該套件是由一系列 jail(8) 管理小工具所組成的。 詳情請參閱其網站介紹 。
本文及其他文件,可由此下載:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。
若有 FreeBSD 方面疑問,請先閱讀 FreeBSD 相關文件,如不能解決的話,再洽詢
<questions@FreeBSD.org>。
關於本文件的問題,請洽詢 <doc@FreeBSD.org>。