免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1155 | 回复: 0
打印 上一主题 下一主题

基于TSIG加密的区域传输 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-19 13:08 |只看该作者 |倒序浏览

基于TSIG加密的区域传输
    在应用DNS服务器时,一个域常常需要不止一台服务器,自然会存在不同DNS服务之间数据的同步问题。DNS的master/slave架构很好的解决了数据同步问题,但是新的问题又来了。通常情况下,DNS之间的区域传输(zone transfer)是通过明文传送,这样以来会很不安全。Bind-9中通过TSIG(Transaction SIGnature)机制来保证数据的安全传输。下面是我做的基于TSIG加密的区域传输。
一、主DNS配置:
环境:
OS : Red Hat Enterprise Linux 5 update 4
Network: 192.168.1.1/24
domain: example.com
nameserver: 192.168.1.1
1。安装DNS服务的rpm包,
[root@server1 ~]# yum install bind
[root@server1 ~]# yum install bind-chroot
[root@server1 ~]# yum install caching-nameserver
2。生成TSIG密钥文件
[root@server1 ~]# dnssec-keygen -a hmac-md5 -b 128 -n host server1-server2
Kserver1-server2.+157+42041
*参数说明:-a hmac-md5 选择加密算法;
    -b 128 指定密码的长度(bits),最长为128;
    -n host 指定key的所有者类型;
    server1-server2 为key的名字
[root@server1 etc]# ll
total 60
-rw------- 1 root root    59 Oct 16 16:31 Kserver1-server2.+157+08339.key
-rw------- 1 root root   81 Oct 16 16:31 Kserver1-server2.+157+08339.private
[root@server1 etc]# cat Kserver1-server2.+157+08339.key
server1-server2. IN KEY 512 3 157 LUt09StcLpGZfQ9kEPxk6g==
[root@server1 etc]# cat Kserver1-server2.+157+08339.private
Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: LUt09StcLpGZfQ9kEPxk6g==
3。将Kserver1-server2.+157+08339.private中的密码拷贝到一个文件中,命名为ts.key,格式按照/usr/share/doc/bind-9.3.6/arm/Bv9ARM.ch04.html中的规定写。
[root@server1 named]# cat ts.key
key server1-server2. {
        algorithm hmac-md5;
        secret "LUt09StcLpGZfQ9kEPxk6g==";
};
4。编辑named.caching-nameserver.conf文件,
[root@server1 ~]# vi /var/named/chroot/etc/named.caching-nameserver.conf
...
options {
...
allow-transfer {key server1-server2; };   //添加此选项
...
};
view localhost_resolver {
...
include "/var/named/ts.key";
//在view中要include这个文件,需要注意的是这里的"/"是/var/named/chroot
...
}
****
辅助DNS配置:
环境:
OS : Red Hat Enterprise Linux 5 update 4
Network: 192.168.1.2/24
domain: example.com
nameserver: 192.168.1.2
1。将主DNS服务器上生成的ts.key文件拷贝到本机的相应位置,
[root@server2 ~]# scp 192.168.1.1:/var/named/chroot/var/named/ts.key /var/named/chroot/var/named/ts.key
[email=root@192.168.1.1's]root@192.168.1.1's[/email]
password:
ts.key                                        100%   83     0.1KB/s 00:00  
*注意要在/var/named目录下做一个符号链接,否则会出现找不到文件的错误,
错误情况(不做符号链接):
[root@server2 ~]# named-checkconf /var/named/chroot/etc/named.caching-nameserver.conf
/var/named/chroot/etc/named.caching-nameserver.conf:44: open: /var/named/ts.key: file not found
正确情况;
[root@server2 ~]# ln -s /var/named/chroot/var/named/ts.key /var/named/ts.key
[root@server2 ~]# named-checkconf /var/named/chroot/etc/named.caching-
nameserver.conf  //检查无错
2。编辑named.caching-nameserver.conf文件,在view中加入include "/var/named/ts.key"
[root@server1 ~]# vi /var/named/chroot/etc/named.caching-nameserver.conf
view localhost_resolver {
...
include "/var/named/ts.key";
...
}
3。编辑named.rfc1912.zone文件,
[root@server2 ~]# vi /var/named/chroot/etc/named.rfc1912.zones
server 192.168.1.1 {
        keys { server1-server2.; };
//在文件中添加此选项,注意key名字后一定要有"."
};

****
测试

1。首先通过dig命令来查询词域,
[root@server2 slaves]# dig -y server1-server2.:LUt09StcLpGZfQ9kEPxk6g==
@192.168.1.1 example.com axfr
; > DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5 > -y server1-server2.
@192.168.1.1 example.com axfr
; (1 server found)
;; global options:  printcmd
example.com.            86400   IN      SOA     ns1.example.com.
root.example.com. 44 10800 900 604800 86400
example.com.            86400   IN      NS      ns1.example.com.
client1.example.com.    86400   IN      A       192.168.1.100
client3.example.com.    86400   IN      A       192.168.1.200
ns1.example.com.        86400   IN      A       192.168.1.1
example.com.            86400   IN      SOA     ns1.example.com.
root.example.com. 44 10800 900 604800 86400
server1-server2.        0       ANY     TSIG    hmac-md5.sig-alg.reg.int.
1255690833 300 16 7f8n9zLbu/musJIMK1d43g== 36958 NOERROR 0
;; Query time: 3 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Fri Oct 16 19:00:33 2009
;; XFR size: 6 records (messages 1)
2。为了立即看到传输过来的zone file,重启named服务,同时监控主DNS服务器的日志文件。
server1(主DNS)
1) 为了便于观察,情况日志文件;
[root@server2 ~]# > /var/log/messages
2) 监控日志文件,同时在server2(辅助DNS)做如下操作
[root@server1 ~]# tailf /var/log/messages  
---server2(辅助DNS)----
[root@server2 slaves]# pwd
/var/named/chroot/var/named/slaves
[root@server2 slaves]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]
[root@server2 slaves]# ll
total 8
-rw-r--r-- 1 named named 369 Oct 16 19:04 example.com.zone
---server1----
[root@server1 ~]# tailf /var/log/messages
Oct 16 19:13:50 localhost named[21565]: client 192.168.1.2#38895: view
localhost_resolver: transfer of 'example.com/IN': AXFR started: TSIG
server1-server2
Oct 16 19:13:50 localhost named[21565]: client 192.168.1.2#38895: view
localhost_resolver: transfer of 'example.com/IN': AXFR ended
四、后记
    实验成功。实验中还应注意的是/var/named/chroot/下的子目录etc/与var/的文件信息,即文件的所有者和所属组。文件的所属信息为root.named,目录的所属信息为named.named。若目录的所属信息不正确,会导致区域传输的文件不能在本地建立。实验不周全的地方还请读者帮忙指正,谢谢。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/104843/showart_2098264.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP