模块名: 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有问题,请先阅读文档,如不能解决再联系<[email protected]>.
关于本文档的问题请发信联系 <[email protected]>.