This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.

BIND9 和 FreeBSD

24.7 BIND9 和 FreeBSD

撰写者 Tom Rhodes.

随着 FreeBSD 5.3 版本的发布, BIND9 DNS 服务软件正式成为了发行版本的一部分。 新的安全特性,文件布局, 以及自动的 chroot(8) 配置也加入进来。 这一节分成两部分, 第一部分讨论了新增特性以及如何配置它们; 后一部分则讲述了升级过程, 帮助用户迁移到 FreeBSD 5.3。 从现在起, 服务器将被简单地写作 named(8)BIND。 这一节跳过了前一节所介绍的那些术语, 以及一些理论上的讨论; 因此, 建议您在继续阅读之前首先看一看前面的章节。

目前, named 的配置文件存放在 /var/named/etc/namedb/, 在使用之前需要进行一些修改。 这也是进行绝大多数相关配置的地方。

24.7.1 主域的配置

要配置主域, 应首先进入 /var/named/etc/namedb/ 并执行下面的命令:

# sh make-localhost

如果一切正常, 则在 master 目录中将出现两个新文件。 它们的名字应该是用于本地域名解析的 localhost.rev, 以及用于 IPv6 配置的 localhost-v6.rev。 作为默认的配置文件, 关于它们的配置已经在 named.conf 文件中定义了。

24.7.2 从域的配置

可以通过配置从域来提供额外的域或子域的解析。 多数情况下, master/localhost.rev 文件可以直接复制到 slave 目录中并进行修改。 此后, 这些文件应该加入到 named.conf, 类似下面的 example.com 配置:

zone "example.com" {
        type slave;
        file "slave/example.com";
        masters {
                10.0.0.1;
        };
};

zone "0.168.192.in-addr.arpa" {
        type slave;
        file "slave/0.168.192.in-addr.arpa";
        masters {
                10.0.0.1;
        };
};

请注意在这个例子中, 主服务器的 IP 地址指明了我们要从哪里把域传过来; 那台服务器本身并不一定要作为对外的 DNS 服务器来用。

24.7.3 系统的初始配置

为了让 named 服务能够在系统启动时自动加载, 需要把下面的选项加到 rc.conf 文件中:

named_enable="YES"

尽管还有其他的一些可用选项, 这是运行域名服务器所需要的最小配置。 请参考 rc.conf(5) 联机手册了解更多的选项。 如果不需要继续在 rc.conf 文件中进行其他配置了, 就可以通过下面的命令行来启动 named

# /etc/rc.d/named start

24.7.4 BIND9 的安全

尽管 FreeBSD 会自动地将 named 放到一个 chroot(8) 环境中, 您仍然可以采取一些更为严密的措施来防止潜在的针对 DNS 服务的攻击。

24.7.4.1 查询访问控制表

查询访问控制表可以用来限制对于域的查询。 这些配置通过在 acl 语句中列出的 IP 地址来发挥作用。 要允许一个子网查询 example.org 中的主机, 可以做下面的定义:

acl "example.com" {
        192.168.0.0/24;
};

zone "example.com" {
        type slave;
        file "slave/example.com";
        masters {
                10.0.0.1;
        };
    allow-query { example.com; };
};

zone "0.168.192.in-addr.arpa" {
        type slave;
        file "slave/0.168.192.in-addr.arpa";
        masters {
                10.0.0.1;
        };
    allow-query { example.com; };
};

24.7.4.2 限制版本查询

允许查询 DNS 服务的版本, 可能会给攻击者敞开方便之门。 心存恶意的用户能够利用这一信息找到存在已知漏洞的服务器, 并利用这些漏洞来实施攻击。

警告: 配置伪造的版本号并不能阻止服务器被使用已知的攻击手段进行攻击。 唯一能够确保安全的办法是将服务器升级到没有已知问题的版本。

伪造的版本号可以通过 named.confoptions 小节来指定:

options {
        directory       "/etc/namedb";
        pid-file        "/var/run/named/pid";
        dump-file       "/var/dump/named_dump.db";
        statistics-file "/var/stats/named.stats";
        version     "None of your business";
};

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

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