第 14 章 Jails

Contributed by Matteo Riondato.
目录
14.1. 简介
14.2. 与 Jail 相关的一些术语
14.3. 创建和控制 Jail
14.4. 微调和管理
14.5. 更新多个 jail
14.6. 使用 ezjail 管理 Jail

14.1. 简介

由于系统管理是一项艰巨的任务,故程序员开发了许多工具,使管理员的工作更轻松。这些工具通常增强系统的安装、配置和维护方式。其中一个可以用来增强 FreeBSD 系统安全性的工具是 jails。Jail 自 FreeBSD 4.X 以来就已可用,并在其实用性、性能、可靠性和安全性方面不断得到增强。

Jail 基于chroot(2)概念,它用于更改一组进程的根目录。这将创建一个与系统其余部分分开的安全环境。在 chroot 环境中创建的进程无法访问它之外的文件或资源,因此,在 chroot 环境中运行的服务不应允许攻击者危害整个系统。但chroot 有几个限制。它适用于不需要太多灵活性或复杂高级功能的简单任务。随着时间推移,人们发现有许多方法可以逃脱 chrrot,这使其成为不理想的服务保护解决方案。

Jail 通过多种方式改进了传统 chroot 环境的概念。在传统的 chroot 环境中,进程仅限于它们可以访问的文件系统部分。chroot 中的进程和主机系统的进程共享其余的系统资源,系统用户,运行的进程和网络子系统。Jail 通过虚拟化对文件系统,用户集和网络子系统的访问来扩展此模型。可以使用更多细粒度的控件来调整监狱环境的访问。Jails可以被视为一种操作系统级别的虚拟化。

Jail 有四个基本特征:

  • 目录子树:进入 jail 的起点。一旦进入了 jail,进程就不再被允许访问这棵子树以外的对象。

  • 主机名:将用于 jail 的主机名。 jail 主要用于存放网络服务, 因此在每个 mail 上能够标注一个有意义的主机名, 能够在很大程度上简化系统管理员的工作。

  • IP 地址:这个地址是指定给 jail 的。通常 jail 的 IP 地址是某一个网络接口上的别名地址。

  • 命令:准备在 jail 中执行的可执行文件的完整路径名。 这个命令是相对于 jail 环境的根目录的, 随 jail 环境的类型不同, 可能会有很多不同之处。

Jjail 也可以拥有自己的用户和自己的root用户,其权力会受限于 jail 环境。 Jail 中的 root 用户不能对其 jail 外的环境执行修改。

本章概述了用于管理 FreeBSD jail 的术语和命令。Jail 是系统管理员和高级用户的强大工具。

读完本章节,你将会知道:

  • 什么是jail,它在FreeBSD 安装过程中的作用是什么。

  • 如何联编、 启动和停止 jail。

  • 如何从 jail 内部或主机上进行管理的一些基础知识。

重要:

Jail 是一个强大的工具,但不是安全银弹。尽管被在 jail 中的进程不能越狱,但是有几种方法可以使 jail 外的非特权用户与 jail 内的特权用户合作,以在主机环境中获得提升的特权。

通过确保主机环境中的非特权用户无法访问 jail 中的 root 用户,可以缓解大多数此类攻击。不应授予对 jail 有特权访问的不可信用户访问主机环境。

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.