模块名: mac_partition.ko
对应的内核配置:
options MAC_PARTITION
引导选项:
mac_partition_load="YES"
mac_partition(4) 策略将把进程基于其 MAC 标签放到特定的 “partitions” (分区) 中。 这是一种特殊类型的 jail(8), 但对两者进行比较意义不大。
这个模块应加到 loader.conf(5) 文件中, 以便在启动过程中启用这些规则。
绝大多数这一策略的配置是通过 setpmac(8) 工具来完成的,
它将在后面介绍。 这个策略可以使用下面的 sysctl
:
security.mac.partition.enabled
将启用强制的 MAC 进程
partitions。
当启用了这个规则时, 用户将只能看到他们自己的,
以及其他与他们同处一个 partition 的进程,
而不能使用能够越过 partition 的工具。 例如,
insecure
class 中的用户,
就无法使用 top
命令,
以及其他需要产生新进程的工具。
要设置或删除 partition 标签中的工具, 需要使用
setpmac
:
#
setpmac partition/13 top
这将把 top
命令加入到 insecure
class
中的用户的标签集。 注意, 所有由 insecure
class
中的用户产生的进程, 仍然会留在
partition/13
标签中。
下面的命令将显示 partition 标签以及进程列表:
#
ps Zax
接下来的这个命令将允许察看其他用户的进程 partition 标签, 以及那个用户正在运行的进程:
#
ps -ZU trhodes
除非加载了 mac_seeotheruids(4) 策略,
否则用户就看不到 root
的标签。
非常手工化的实现, 可能会在 /etc/rc.conf
中禁用所有的服务, 并用脚本来按不同的标签来启动它们。
下面的几个策略支持基于所给出的三种标签的完整性设定。 这些选项, 连同它们的限制, 在模块的联机手册中进行了进一步介绍。
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.