Chinaunix首页 | 论坛 | 博客
  • 博客访问: 161963
  • 博文数量: 48
  • 博客积分: 3000
  • 博客等级: 中校
  • 技术积分: 370
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-08 18:10
文章分类

全部博文(48)

文章存档

2009年(2)

2007年(46)

我的朋友

分类:

2007-07-17 11:23:57

配置文件原理

一个

访问控制列表:定义一个命名的IP地址匹配表,用于存取控制或其它用途。

controls

控制:宣告一个用于rndc的控制管道。

include

引用:引用 一个文件。

key

密钥:指定密钥信息,用在管理区域和使用TSIG

logging

日志:指明哪一个服务器作日志服务器,记录哪些内容。

options

选项:服务器的全局配置选项和其它语句的默认项。

server

服务器:在一个per-server basis上设置一定的配置选项。

trusted-keys

信任的密钥:定义信任的DNSSEC 密钥。

view

Viewdefines a view.

zone

区域:定义一个区域。

logging options 语句在一个配置文件中只能有一个。

语句句法

acl acl-name { 
    address_match_list 
};

语句定义和使用

acl 语句定义一组地址匹配表到一个指定的名字中。ACL来自于缩写:Access Control Lists (ACLs).

注意一个地址匹配表必须定义成ACL然后才能使用。

以下是内置已经定义了的ACLs

any

任何:所有的主机

none

无:不匹配任何主机

localhost

本主机:IPv4地址中,本系统所有网络接口。

localnets

本地网络: IPv4地址中的本地子网。

localhost localnets IPv6 中已经不支持了,(那是因为, localhost已经不匹配主机的IPv6地址了,localnets 也不匹配本地网络了) 因为没有标准的方法来确定本地主机的IPv6地址。

语句语法

controls {
   inet ( ip_addr | * ) [ port ip_port ] allow {  address_match_list  }
                keys {  key_list  };
   [ inet ...; ]
};

语句的定义和使用

controls 语句宣告一个系统管理使用的控制通道,用于对本地域名服务器进行操作。这个控制通道用于运行rndc 程序来发送命令,并且从域名服务器中得到其它(不是域名查询的)结果。

inet 控制通道是一个监听指定的地址和TCP端口号,可以是IPv4 或者 IPv6 地址,如果 ip_addr 中有 * ,则是指IPv4 的通配符,连接会允许所有符合要求的Ipv4地址,监听IPv6 通配符地址, ip_addr::,如果为了安全就只在本地使用rndc,使用回环地址loopback (127.0.0.1 或者 ::1)

通过控制通道发送命令还被allow keys 子句限制。连接到控制通道的许可基于地址许可address_match_listaddress_match_list key_id 会被忽略,替换为独立的key_list,通过对服务器和命令客户机之间的每条信息进行数字签名,key_list每个key_id 都被允许使用管理命令,回应指定的控制通道。(参见Remote Name Daemon Control application Section 3.4.1.2)。所有到控制通道的命令都必须使用它自己指定的密钥签名,以保证安全。

如果没有controls 语句,named进程会使用默认的控制通道,监听本地地址,(Ipv4127.0.0.1 IPv6 ::1)。这种情况和有controls 语句但没有keys 子句的情况下, named 进程会尝试找rndc.key,一般在/etc目录中 (或者其它BIND建立时指定的系统目录sysconfdir)。要建立一个rndc.key 文件,运行rndc-confgen -a.

rndc.key 特性是为了从语句语法

include filename;

定义和使用

include 语句在include语句出现的地方插入指定的文件, include 语句使管理(读或写)配置文件更容易,没有其它用途。例如,可以引用一个私钥,它只可以被域名服务器读取。

语句语法

key key_id {
    algorithm string;
    secret string;
};

定义和使用

key 语句定义了一个TSIG使用的共享密钥,参见Section 4.4.

key 语句可以在配置文件的最高层中出现,也可以出现在view 语句中。Key也可以在最高层定义,但用在view语句中。Key经常用在controls 语句中使用必须定义在最高层(参见 Section 6.2.4)

key_id,也叫密钥名(key name),它可以用在"server" 语句中,使发送请求时使用这个密钥名来加密,也可以用在地址匹配列表中,用于接收请求时用这个密钥来验证密文。

algorithm_id 是一个指定加密算法的字符串,当前只TSIG 只支持hmac-md5算法。secret_string 是被当成64位编码的加密串。

阅读(1093) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~