这是 Chroot-BIND8 HOWTO 文档;请参阅哪里?以获取包含最新副本的主站点。 本文档假设您已经知道如何配置和使用 BIND(Berkeley Internet 域名系统)。 如果不了解,我建议您先阅读 DNS HOWTO 文档。 此外,本文档还假设您基本熟悉在类 UNIX 系统上编译和安装软件。
本文档介绍了一些在安装 BIND 时可以采取的额外安全预防措施。 它解释了如何配置 BIND,使其驻留在“chroot 监狱”中,这意味着它无法查看或访问其自身小目录树之外的文件。 我们还将配置它以非 root 用户身份运行。
chroot 背后的思想非常简单。 当您在 chroot 监狱中运行 BIND(或任何其他进程)时,该进程根本无法看到监狱外部文件系统的任何部分。 例如,在本文档中,我们将设置 BIND 在 chroot 环境中运行,目录为 /chroot/named
。 那么,对于 BIND 而言,此目录的内容将显示为 /
,即根目录。 它无法访问此目录之外的任何内容。 如果您曾经通过 FTP 连接到公共系统,您可能之前遇到过 chroot 监狱。
在 chroot 监狱中运行 BIND 的目的是限制任何恶意个人通过利用 BIND 中的漏洞可能获得的访问权限量。 这与我们以非 root 用户身份运行 BIND 的原因相同。
这应被视为对正常安全预防措施(运行最新版本、使用访问控制等)的补充,而不是替代。
如果您对 DNS 安全性感兴趣,您可能也会对其他一些产品感兴趣。 使用 StackGuard 构建 BIND 可能会为提供更多保护带来好处。 使用它很简单;就像使用普通的 gcc 一样。 此外,DNScache 是 BIND 的安全替代品,由 Dan Bernstein 编写。 Dan 是 qmail 的作者,DNScache 似乎遵循类似的理念。
本文档的最新版本始终可以从 Regina, Sask. 的 Linux/开源用户网站获取,网址为 http://www.losurs.org/docs/howto/Chroot-BIND8.html。
现在有本文档的日文翻译版,由 nakano at apm.seikei.ac.jp
维护。 可在 http://www.linux.or.jp/JF/JFdocs/Chroot-BIND8-HOWTO.html 获取。
BIND 可从 互联网软件协会 的 http://www.isc.org/bind.html 获取。 截至撰写本文时,BIND 8 的当前版本为 8.2.4。 BIND 9.x 现已发布,并且已经存在一段时间了。 您可以考虑升级到它;chroot 过程肯定更简单、更清晰。 如果您正在运行 BIND 9,那么您需要 Chroot-BIND HOWTO 文档,该文档应该可以从与本文档相同的位置获取。
请记住,所有低于 8.2.3 版本的 BIND 8 都存在已知安全漏洞,因此请务必确保您运行的是最新版本!
我编写本文档是基于我在 chroot 环境中设置 BIND 的经验。 就我而言,我已经拥有以软件包形式提供的现有 BIND 安装,该软件包随我的 Linux 发行版一起提供。 我假设你们大多数人可能也处于相同的情况,并且将简单地从您现有的 BIND 安装中转移和修改配置文件,然后在安装新软件包之前删除该软件包。 不过,暂时不要删除该软件包;我们可能首先需要其中的一些文件。
如果情况并非如此,您仍然应该能够按照本文档进行操作。 唯一的区别是,当我提到复制现有文件时,您首先必须自己创建它。 DNS HOWTO 文档可能会对此有所帮助。
这些步骤在我的系统上对我有用。 您的结果可能会有所不同。 这只是解决问题的一种方法;还有其他方法可以进行相同的设置(尽管总体方法将是相同的)。 只是碰巧这是我尝试的第一个有效方法,所以我把它写了下来。
我迄今为止的 BIND 经验是在 Linux 服务器上安装。 但是,本文档中的大多数说明也应很容易适用于其他 UNIX 版本,我将尝试指出我意识到的差异。