Linux环境下的DNS安全保障本领[网络技术]
本文“Linux环境下的DNS安全保障本领[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
(1)限制名字服务器递归查询功效
关闭递归查询可以使名字服务器进入被动情势,它再向外部的DNS发送查询恳求时,只会答复自己受权域的查询恳求,而不会缓存任何外部的数据,所以不大概蒙受缓存中毒攻击,但是这样做也有负面的效果,降低了DNS的域名解析速度和效率.
以下语句仅答应172.168.10网段的主机举行递归查询:
allow-recusion {172.168.10.3/24; }
(2)限制区传送(zone transfer)
假如没有限制区传送,那么DNS服务器答应对任何人都举行区域传输,因此网络架构中的主机名、主机IP列表、路由器名和路由IP列表,乃至包含各主机所在的位置和硬件配置等情形都很简单被入侵者得到在DNS配置文件中通过设置来限制答应区传送的主机,从一定程度上能减轻信息泄露.但是,需求提醒用户注意的是:即便封闭整个区传送也不能从根本上办理问题,因为攻击者可以操纵DNS工具自动查询域名空间中的每一个IP地址,从而得知哪些IP地址还没有分配出去,操纵这些闲置的IP地址,攻击者可以通过IP拐骗假装成系统信任网络中的一台主机来恳求区传送.
以下语句仅答应IP地址为172.168.10.1和172.168.10.2的主机可以同DNS服务器举行区域传输:
acl list { 221.3.131.5; 221.3.131.6;
zone "test.com" { type master; file "test.com ";
allow-transfer { list; };
};
};
(3)限制查询(query)
假如任何人都可以对DNS服务器发出恳求,那么这是不能承受的.限制DNS服务器的服务范围很重要,可以把很多入侵者据之门外.改正BIND的配置文件:/etc/named.conf加入以下内容便可限制只有210.10.0.0/8和211.10.0.0/8网段的查询本地服务器的全部区信息,可以在options语句里利用以下的allow-query子句:
options {
allow-query { 210.10.0.0/8; 211.10.0.0/8;};
};
(4)别离DNS(split DNS)
采取split DNS(别离DNS)技术把DNS系统划分为内部和外部两部份,外部DNS系统位于大众服务区,负责正常对外解析工作;内部DNS系统则专门负责解析内部网络的主机,当内部要查询Internet上的域名时,就把查询任务转发到外部DNS服务器上,然后由外部DNS服务器完成查询任务.把DNS系统分成内外两个部份的好处在于Internet上别的用户只能看到外部DNS系统中的服务器,而看不见内部的服务器,并且只有内外DNS服务器之间才交换DNS查询信息,从而保证了系统的安全性.并且,采取这种技术可以有效地避免信息泄露.
在BIND 9中可以利用view语句举行配置别离DNS.view语句的语法为:
view view_name {
match-clients { address_match_list };
[ view_option; ...]
zone_statement; ...
};
此中:
◆match-clients:该子句非常重要,它用于指定谁能看到本view.可以在view语句中利用一些选项;
◆zone_statement:该子句指定在当前view中可见的区声明.假如在配置文件中利用了view语句,则全部的zone语句都必须在view中呈现.对同一个zone而言,配置内网的view应当置于外网的view之前.
下面是一个利用view语句的例子,它来自于BIND9的尺度阐明文档:
view "internal" { match-clients { our-nets; };
// 匹配内网客户的拜候
recursion yes;
// 对内网客户答应履行递归查询 zone "example.com" {
// 定义内网客户可见的区声明
type master; file "example.com.hosts.internal";
};
};
view "external" { match-clients { any; };
// 匹配 Internet 客户的拜候
recursion no;
// 对 Internet 客户不答应履行递归查询 zone "example.com" {
// 定义 Internet 客户可见的区声明 type master;
file "example.com.hosts.external"; };
};
接下来,需求在example.com.hosts.internal中成立内网客户可见的区文件,并在 example.com.hosts.external中成立Internet客户可见的区文件.该区文件的编写可以按照用户的实际情形,可以参看上面介绍的内容,此处不再赘述.
(5)躲藏BIND的版本信息
普通软件的漏洞微风险信息是和特定版本相关的,因此版本号是黑客举行攻击所需求汇集的最有代价的信息之一.黑客利用dig号令可以查询BIND的版本号,然后黑客就可以够通过版本号查询知道这个软件有那些漏洞,并追求呼应的工具来针对该漏洞举行攻击.因此,随便公开 BIND版本号是不明智的,具有很大的风险.其实,躲藏BIND版本号对比简单,只需求改正配置文件/etc/named.conf,在option部份增添version声明将BIND的版本号信息举行覆盖便可.利用下面的配置声明将BIND版本号覆盖,当有人恳求版本信息时,将无法得到有效的版本信息:
options {
version "Unkown"
};
(6)利用非root权限运行BIND
在Linux内核2.3.99今后的版本中,可以以-u选项以非root权限运行BIND.该号令表示以 nobody用户身份运行BIND,利用nobody身份运行可以降低缓冲区溢出攻击所带来的危险.号令以下:
#/usr/local/sbin/named –u nobody
(7)删除DNS上不必要的其他服务
删除DNS机械上不必要的其他服务.网络服务是造成系统安全的重要缘由,常见的DoS攻击、弱脚本攻击以及缓冲区溢出攻击都是由于系统存在网络服务所惹起的.在安装DNS运行所依靠的操作系统前,就应当肯定在系统中运行的服务的最小调集,成立一个DNS服务器系统就不该该安装Web、POP、gopher、NNTP News等服务.倡议不安装以下软件包:(1)X-Windows及相关的软件包;(2)多媒体利用软件包;(3)任何不需求的编译程序和脚本注释语言;(4)任何不用的文本编辑器;(5)不需求的客户程序;(6)不需求的其他网络服务.
(8)公道配置DNS的查询方法
DNS的查询方法有两种,递归查询和迭代查询.公道配置这两种查询方法,可以在实践中获得较好的效果.
此中,递归查询是最常见的查询方法,工作方法是:域名服务器将替换提出恳求的客户机(下级DNS服务器)举行域名查询,若域名服务器不能直接答复,则域名服务器会在域各树中的各分支的上下举行递归查询,终究将返回查询后果给客户机,在域名服务器查询期间,客户机将完好处于等候状况.
迭代查询又称重指引查询.其工作方法为:当服务器利用迭代查询时可以使其他服务器返回一个最佳的查询点提醒或主机地址,若此最佳的查询点中包含需求查询的主机地址,则返回主机地址信息,若此时服务器不可以直接查询到主机地址,则是按照提醒的指引顺次查询,直到服务器给出的提醒中包含所需求查询的主机地址为止,普通的,每次指引城市更接近根服务器(向上),查寻到根域名服务器后,则会再次按照提醒向下查找.
综合上面两点,我们可以看出来,递归查询就是客户机会等候最后后果的查询,而迭代查询是客户机等到的不一定是终究的后果,而大概是一个查询提醒.因而存在以下两个问题:
◆二级DNS向一级DNS发动递归查询,会对一级DNS造成性能压力,全部跨域查询都要经过一级DNS呼应给对应二级DNS;
◆二级DNS向一级DNS发动递归查询,再由一级向归属DNS发动递归的情势查询呼应会有一定延时;
因此,有很多流量很大的DNS服务器是禁止客户机利用递归查询,用这种方法来减轻服务器的流量.
(9)利用dnstop监控DNS流量
在保护DNS服务器时,用户常常但愿知道毕竟是哪些用户在利用DNS服务器,同时也但愿能对DNS状况查询做一个统计,以及时地知道DNS的工作情形和状况.在传统的方法下,用户普通利用的是tcpdump等开源工具来举行抓包并通过查看53端口的流量来查看DNS 数据包.由于tcpdump并没有针对DNS流量举行特别定制,因此利用起来大概不是非常便利.因此,用户可以利用专用于DNS的dnstop工具查询 DNS服务器状况.
dnstop是一种非常优异的开源软件,用户可以到网站http://dns.measurement- factory.com/tools/dnstop/src/上举行下载利用,目前该软件的最新版本为:dnstop-20090128.tar.gz.
由于该软件依靠tcpdump和pcap抓包库(libpcap)对网络上传输的数据包举行截获和过滤,所以用户需求确保系统安装呼应软件后才能正常安装和利用dnstop.普通情形下,这两种必须的库都已经在系统中预装好了,利用下面的号令安装dnstop便可:
(1)解紧缩源代码安装包
#tar vxfz ddnstop-20090128.tar.gz
(2)切换到解压目录,并利用configure 号令生成Makefile文件
#cd dnstop-20040309
#./configure
(3)利用make号令举行安装
#make
安装成功后,可以查看通过呼应的网络接口来监控 DNS网络流量,以下所示:
#./dnstop -s eth0
0 new queries, 6 total queries Tue Mar 26 19:35:23 2008
Sources count %
---------------- --------- ------
172.96.0.13 4 66.7
172.96.0.14 1 16.7
172.96.0.15 1 16.7
以上是“Linux环境下的DNS安全保障本领[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |