BIND 9
BIND 9
BIND 9
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
CHAPTER 4. 高级DNS特征 4.5. TSIG<br />
4.5.1.2 手工生成<br />
共享密钥只是一个简单的以base-64编码的随机二进制位序列。大多数ASCII 字符串都是有效的base-64字<br />
符串(假设其长度是4的倍数,并且只含有有效字符),所以共享密钥可以手工生成。<br />
同样,一个字符串也可以通过使用mmencode或类似的程序来生成base-64编码的数据。<br />
4.5.2 拷贝共享密钥到两台主机<br />
这已经超出了DNS的范围。应该使用一个安全的传输机制。可以通过安全的FTP,ssh,电话等等。<br />
4.5.3 告知服务器密钥的存在<br />
设想host1和host 2为两台服务器。将下列语句添加到各自的named.conf文件中:<br />
key host1-host2. {<br />
algorithm hmac-sha256;<br />
secret "La/E5CjG9O+os1jq0a2jdA==";<br />
};<br />
密钥是由以上方式所生成的。因为这是一个秘密,推荐将named.conf设置成并非所有人可读的,或<br />
者使用key指令将一个并非所有人可读的文件包含进named.conf中。<br />
在这一点,密钥是可识别的。这意味着如果服务器收到一个由这个密钥所签名的消息,它可以验证这<br />
个签名。如果成功验证签名,响应就会使用同样的密钥签名。<br />
4.5.4 指示服务器使用密钥<br />
由于密钥仅仅在两台主机之间共享,服务器必须被告知去使用它。下列指令被添加到host1的named.<br />
conf文件中,假定host2的IP地址是10.1.2.3:<br />
server 10.1.2.3 {<br />
keys { host1-host2. ;};<br />
};<br />
可以提供多个密钥,但只能使用第一个。这条指令不包含任何秘密,所以它可以放在一个所有人可读<br />
的文件中。<br />
如果host1发出的消息是一个到那个地址的请求,这个消息将被指定的密钥签名。host1将会期望对这<br />
个被签名的消息的回应都被同一个密钥签名。<br />
一个类似的语句必须出现在host2的配置文件(使用host1的IP地址)中,供host2 将发向host1的消息进<br />
行签名。<br />
4.5.5 基于TSIG密钥的访问控制<br />
<strong>BIND</strong>允许在ACL定义和allow-{ query | transfer | update }指令中指定IP地址和网络范围。这个也被扩<br />
展到允许TSIG密钥。上述密钥被表示成key host1-host2.。<br />
一个allow-update指令的例子是:<br />
allow-update { key host1-host2. ;};<br />
26