DNS 域间传送

在之前已经讲过DNS server 安装配置,那么今天来讲一下DNS配置中可能存在的安全问题之一——DNS域间传送。

下面我们通过实验来说明一下DNS域间传送安全问题

step1.还是用我之前的搭建的DNS Server做实验
  • 启动DNS Server(Bind服务)
    1
    [root@localhost ~]# service named start
  • 首先我们不对配置文件做任何修改,nslookup测试一下

图片.png

可以看到默认域间策略是打开的,但有时候是关闭的,我的环境上测试是打开的。

step2.配置DNS域间传送
  • 一般DNS是公司重要的基础性业务,很多公司都会对dns进行主备配置,也可以叫做主从配置,也就是需要dns服务器之间需要数据同步,这个时候就要需要打开域间策略,如下图:

    1
    [root@localhost ~]# vim /etc/named.conf

    图片.png

  • 配置完后重启服务!!!

图片.png

  • 然后再来测试

图片.png

发现这样配置域间策略是错误的,很危险,原因就是上面配置的
allow-transfer { any; };这行配置打开DNS域间传输没有错,但是里面写的是any;这个就不对了,这样写任何人都可以同步到你的DNS Server数据。正确配置应该写备DNS服务器的地址。

  • 正确配置:我这就一个DNS Server ,就设置为只有本机可以访问的到了。如下图所示:

图片.png

地址改为127.0.0.1 ,localhost也行,别漏掉最后的分号。

  • 保存并退出,然后记得重启服务。
1
2
3
4
[root@localhost ~]# service named restart
停止 named: [确定]
启动 named: [确定]
[root@localhost ~]#
  • 然后再测试

图片.png

这次就发现Query refused拒绝查询。

扩展1:上面是使用nslookup工具来测试DNS域间传送漏洞,然后再介绍一个dig工具(Linux下)也可以用来测试,测试方法如下:
1
[root@localhost ~]# dg @192.168.3.112 axfr zzqa.com

图片.png

扩展2:上面写配置是在/etc/named.conf里面options部分配置,其实也可以在/etc/named.rfc1912.zones自定义的域里面配置,如下图所示:

图片.png

上面我说了安全配置有两个文件,选择任意一个即可,但是注意的是:/etc/named.rfc1912.zones要比/etc/named.conf优先级要大!!!

好了,DNS 域间传送就先讲到这,之后学习到新的东西在继续写。