企业开源域名服务安全防护策略及实战(4)

发表于:2013-07-14来源:IBM作者:李洋点击数: 标签:域名
// generated by named-bootconf.pl options { directory /var/named; /* * If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directiv

 // generated by named-bootconf.pl 

 options { 
 directory "/var/named"; 
 /* 
 * If there is a firewall between you and nameservers you want 
 * to talk to, you might need to uncomment the query-source 
 * directive below. Previous versions of BIND always asked 
 * questions using port 53, but BIND 8.1 uses an unprivileged 
 * port by default. 
 */ 
 // query-source address * port 53; 
 }; 

 // 
 // a caching only nameserver config 
 // 
 zone "." { 
 type hint; 
 file "named.ca"; 
 }; 

 zone "0.0.127.in-addr.arpa" { 
 type master; 
 file "named.local"; 
 }; 
 zone "feixiang.com"{ 
 type slave; 
 file "named.hosts"; 
 masters {25.198.10.3;}; 
 }; 
 zone "198.25.in-addr.arpa"{ 
 type slave; 
 file "named.rev"; 
 masters {25.198.10.3;}; 
 }; 
 cache . named.ca 
 secondary vbrew.com 25.198.10.3 named.hosts 
 secondary 198.25.in-addr.arpa 25.198.10.3 named.rev 
 primary 0.0.127.in-addr.arpa named.local 

  第一个 slave 语句是使这个服务器成为 vbrew.com 的辅助服务器。它告诉 named 从 IP 地址为 25.198.10.3 的服务器中下载 feixiang.com 的信息,并将其数据保存在 /var/named/named.hosts 文件中。如果该文件不存在,named 就创造一个,并从远程服务器中取得区数据,然后将这些数据写入新创建的文件中。如果存在该文件,named 就要检查远程服务器,以了解该远程服务器的数据是否不同于该文件中的数据,如果数据有变化,它就下载更新后的数据,用新数据覆盖该文件的内容;如果数据没有变化,named 就加载磁盘文件的内容,不必做麻烦的区转移工作。将一个数据库拷贝到本地磁盘文件中,就不必每次引导主机时都要转移区文件;只有当数据修改时,才进行这种区文件的转移工作。该配置文件中的下一行表示该本地服务器也是反向域 198.25.in-addr.arpa 的一个辅助服务器,而且该域的数据也从 25.198.10.3 中下载。该反向域的数据存储在 named.rev 中。

  配置高速缓存服务器提高 DNS 服务器性能

  高速缓存服务器可运行域名服务器软件,但是没有域名数据库软件。它从某个远程服务器取得每次域名服务器查询的结果,一旦取得一个,就将它放在高速缓存中,以后查询相同的信息时就用它予以回答。高速缓存服务器不是权威性服务器,因为它提供的所有信息都是间接信息。对于高速缓存服务器只需要配置一个高速缓存文件,但最常见的配置还包括一个回送文件,这或许是最常见的域名服务器配置。

  配置高速缓存域名服务器是很简单的。必须有 named.conf 和 named.ca 文件,通常也要用到 named.local 文件。下面是用于高速缓存服务器的 named.conf 文件的例子:

 // generated by named-bootconf.pl 
 options { 
 directory "/var/named"; 
 /* 
 * If there is a firewall between you and nameservers you want 
 * to talk to, you might need to uncomment the query-source 
 * directive below. Previous versions of BIND always asked 
 * questions using port 53, but BIND 8.1 uses an unprivileged 
 * port by default. 
 */ 
 // query-source address * port 53; 
 }; 

 // 
 // a caching only nameserver config 
 // 

 // 
 // a caching only nameserver config 
 // 
 zone "." { 
 type hint; 
 file "named.ca"; 
 }; 

 zone "0.0.127.in-addr.arpa" { 
 type master; 
 file "named.local"; 

  directory 这一行告诉 named 到哪里去找寻文件。所有其后命名的文件都将是相对于此目录的。该文件告诉 named 去维持一个域名服务器响应的高速缓存,并利用 named.ca 文件的内容去初始化该高速缓存。该高速缓存初始化文件的名字可以是任何名字,但一般使用 /var/named/named.ca。并不是在该文件中使用一个 hint 语句就能使它成为高速缓存配置,几乎每一种服务器的配置都要用到 cache 语句,而是因为没有 master 和 slave 语句才使它成为一个高速缓存配置。

  但是,在我们这个例子中却有一个 master 语句。事实上,几乎在每一个高速缓存的配置文件中都有这一个语句,它将本地服务器定义为它自己的回送域的主服务器,并假定该域的信息存储在 named.local 文件中。这个回送域是一个 in-addr.arpa 域(in-addr.arpa 域用于指定逆向解析,或 IP 地址到 DNS 名字解析),它将地址 127.0.0.1 映射为名字 localhost。转换自己的回送地址对于大多数人都是有意义的,因为大多数的 named.conf 文件都包含这一项。

  在大多数高速缓存服务器的配置文件中,这种 directory、master 和 hint 语句是唯一使用的语句,但也可以增加其他的语句,forwarders 和 slave 等语句都可以使用。

  配置 DNS 负载均衡防止服务器宕机

  DNS 负载均衡技术是在 DNS 服务器中为同一个主机名配置多个 IP 地址,在应答 DNS 查询时,DNS 服务器对每个查询将以 DNS 文件中主机记录的 IP 地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。

  现假设有三台服务器来应对 www.feixiang.com 的请求。在采用 Linux 系统上实现起来比较简单,只需在该域区文件的数据记录中添加类似下面的资源记录即可:

 web_server1INA210.113.1.1 
 web_server2INA210.113.1.2 
 web_server3INA210.113.1.3 
 wwwINCNAMEweb_server1 
 wwwINCNAMEweb_server2 
 wwwINCNAMEweb_server3 

原文转自:http://www.ibm.com/developerworks/cn/linux/1306_liyang_securedns/