DNS的重要性不言而喻,有太多的服务都离不开DNS,有很多基于DNS的***,比如DNS欺骗之类的,***一旦获取了DNSzone文件,就可以获得服务器的很多信息。下面我们介绍一种基于TSIGDNS,可以保障主从DNS之间的复制安全性,并且可以保证***无法获得zone文件。

 

   TSIG可以保证zone文件在传输过程中没有被篡改,并且还能保证那些主机允许接受zone文件。

 

   先说一下我的环境,和刚才配置的环境一样,还是station1作为主DNSstation2作为辅助DNS

 

   1.创建TSIG

      station1上,运行

      dnssec-keygen -a HMAC-MD5 -b 128 -n HOST station1-station2

      -a 用于指定算法;

      -b用于指定算法的位数;

      -n指定name的类型

      后面的station1-station2就是TSIG的名字,当然,你也可以随便取。

效果如下


创建完之后,我们会发现目录下有两个文件,一个后缀是key,一个后缀是private

后者的内容里面的Key这一行就是我们需要的信息。

 

进入/var/named/chroot/etc目录下

rndc.key复制为xiaosu.key

文件内容修改如下:

key "station1-station2" {

        algorithm       hmac-md5;

        secret          "2Ex7xTFJOWBSQlPoiTZN5Q==";

};

也就是把第一行中的key后面修改为刚才创建的TSIG的名字,然后再把secret的内容修改为刚才Key那行的信息。

 

修改完之后,修改一下xiaosu.key保证named能加载这个文件,再修改一下xiaosu.key的权限保证安全。

   chown root.named  /var/named/chroot/etc/xiaosu.key

   chmod 640 /var/named/chroot/etc/xiaosu.key

 

修改主DNS服务器的配置文件,加载这个key文件,并只允许拥有这个key 文件的DNS才能传输zone文件。

   配置文件的开头加入

   include “/etc/xiaosu.key”;

   options部分加入

   allow-transfer { key station1-station2 ; }

 

截图如下:

 

重启服务

 

下面开始配置staiton2上的从服务器

 

   我们现测试一下现在是否能获取主DNS服务器上的zone文件,我们先删除掉slaves文件夹下的zone文件,重启服务器,看看是否能获得文件。

   效果如下图:

   首先我们要用SCP命令把这个key文件拷贝到station2上的相应目录,并且设置权限和属主,这个步骤就不截图了。

 

   DNS上要加载这个key文件,并且还要指定对于哪些服务器使用哪个key文件。

   开头添加:

   include “/etc/xiaosu.key”;

   server 192.168.0.1 {

   keys {  station1-station2 ; } ;

   };

   当然,还有非常重要的一个设置就是,在从DNS设置为任何机器都不允许传输,否则这一些都白费了,呵呵。

   也就所在options里面加入一行:

   allow-transfer { none ;} ;

   截图如下:

  

 

重启服务之后,会发现这两个 zone 文件都过来了。

 

这样,我们就能保证主从之间的复制是安全的了。。。。