您可以为 jail 设置许多不同的选项, 并让 FreeBSD 宿主系统以不同的方式与 jail 交互, 以支持更高级别的应用。 这一节将介绍:
一些用于微调 jail 行为和安全限制的选项。
一些可以通过 FreeBSD Ports 套件安装的高级 jail 管理应用程序, 这些程序可以用于实现一般的基于 jail 的解决方案。
对于 jail 的配置微调, 基本上都是通过设置 sysctl(8)
变量来完成的。 系统提供了一个特殊的 sysctl 子树, 全部相关的选项均在这棵子树中;
这就是 FreeBSD 内核的 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
系统管理员可以在 宿主系统
中, 透过设置这些变量的值来默认为 root
用户增加或取消限制。 需要注意的是, 某些限制是不能够取消的。 在 jail(8) 中的 root 用户, 无法挂载或卸下文件系统, 此外在 jail 中的 root 用户也不能加载或卸载 devfs(8) 规则集、
配置防火墙规则, 或执行其他需要修改内核数据的管理操作, 例如设置内核的 securelevel
等等。
FreeBSD 的基本系统包含一系列用于查看目前在使用的 jail 信息, 以及接入 jail 并执行管理命令所需的基本工具。 jls(8) 和 jexec(8) 命令都是 FreeBSD 基本系统的一部分, 并可用于执行简单的任务:
列出在用的 jail 以及对应的 jail 标识 (JID)、 IP 地址、 主机名和路径。
从宿主系统中接入正在运行的 jail, 并在其中执行命令, 以完成一系列 jail 管理任务。 这在 root 希望干净地关闭 jail 时非常有用。 jexec(8) 工具也可以用于在 jail 中启动 shell 以便对其进行管理; 例如:
# jexec 1 tcsh
在众多第三方 jail 管理工具中, sysutils/jailutils 是最完整和好用的。 它是一系列方便 jail(8) 管理的小工具。 请参见其网站以了解进一步的详情。
本文档和其它文档可从这里下载:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读文档,如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.