安全人员几十年来也建议人们限制对他们的DNS服务器的DNS查询只使用UDP端口53岁。现实情况是,DNS查询也可以使用TCP端口53如果不接受UDP端口53。现在法案同样即将部署的域名系统安全扩展和IPv6的最终加入我们需要允许防火墙TCP和UDP端口53数据包。
攻击者可以使用DNS的侦察技术。公共信息包含目标的服务器是有价值的攻击者,帮助他们集中攻击。攻击者可以使用各种技术来检索通过查询DNS信息。然而,黑客经常试图执行一个区转移从权威的DNS服务器获取更多信息。您可以使用命令来挖掘收集信息从一个服务器为一个特定的区域文件。
挖example.org - t AXFR @192.168.11.24
区转移发生TCP端口53为了防止我们的DNS服务器泄露重要信息攻击者,TCP端口53通常阻塞。如果组织的防火墙保护权威域名服务器允许TCP端口53数据包和DNS服务器被配置为允许区转移到任何人,那么这个挖命令将会成功。然而,大多数组织配置DNS服务器阻止区域转移意想不到的DNS服务器。这个可以结合区内配置文件使用任何一种形式的允许转让命令如下所示。
允许转让{“没有”;};允许转让{address_match_list};允许转让{192.168.11.11;};
此外,大多数组织还通过防火墙阻止TCP端口53和他们的DNS服务器和因特网。这是双重保护,以防意外DNS服务器允许转让。
配置您的DNS服务器只允许带转移合法DNS服务器一直是并将继续是一个最佳实践。然而,否认TCP端口53的实践,从DNS服务器开始引起一些问题。有两个很好的理由,我们要允许TCP和UDP端口53连接DNS服务器。法案同样一个是域名系统安全扩展,第二个是IPv6。
DNSSEC创造了更大的DNS的反应
我爱阅读IP日报读过它自1998年第一期。
在最近一期的IP日报》有一篇文章,我的一个朋友,斯蒂芬Lagerholm,Secure64和德州IPv6特遣部队名为“当法案同样实现域名系统安全扩展业务挑战”。本文介绍的许多警告组织法案同样遇到部署移动域名系统安全扩展。
法案同样提到的一个关键问题是,域名系统安全扩展导致DNS回复可以大于512字节。DNSSEC(在RFC 4033中定义的,RFC 4034和RFC 4035)要求能够传递更大的DNS信息中包含额外的关键信息,查询响应。TCP端口53可用于DNS反应大于512字节的情况。然而,使用UDP消息比使用TCP大型DNS信息是由于TCP连接可以消耗计算资源为每个连接。DNS服务器得到众多每秒连接和使用TCP可以添加过多的开销。为了解决这个问题,IETFRFC 2671“DNS (EDNS0)扩展机制”定义了一个方法来扩展UDP缓冲区大小4096字节法案同样允许域名系统安全扩展和更大的查询响应。你绑定上启用EDNS0 9配置可以使用以下绑定操作语句
edns-udp-size 4096;
法案同样意识到域名系统安全扩展增加了由于两年前漏洞的披露和最近的新闻来实现它。许多组织已经计划法案同样他们的域名系统安全扩展部署。DNSSEC越来越广泛部署,现在关键顶级域(tld)被签署。TLD现在已经签署了。互联网的签署2个月前在维吉尼亚州的一个仪式。VeriSign表示他们希望到2011年法案同样支持域名系统安全扩展。康卡斯特创造了一个DNSSEC信息中心网站,可以帮助你保持最新的法案同样最新域名系统安全扩展状态。
法案同样世界转换到域名系统安全扩展,您的组织不一定是自己为自己的权威的DNS服务器使用它。然而,你的名字服务器可能法案同样要求域名系统安全扩展信息,尽管它不是法案同样提供域名系统安全扩展配置记录。您可能遇到的问题如果你的解析器开始法案同样遇到域名系统安全扩展信息,只能接收512字节或更小的UDP数据包。如果你的防火墙阻止TCP端口53 DNS信息或UDP端口使用EDNS0 53消息,那么你可能会遇到的问题,即使你没有法案同样部署域名系统安全扩展自己。
IPv6 DNS查找可能大于512字节
我们都知道,IPv6地址是四倍IPv4地址。标准的记录查询响应容易适合512个字节UDP的限制和标准AAAA-record查询响应。标准AAAA-record查询响应大约是100字节。然而,可想而知,cname,胶记录,和其他数据,可能会伴随一个DNS响应超过UDP 512字节的限制。因此,允许TCP端口53或启用IPv6 EDNS0也是要求通信。这也是如此,如果你正在做的事情为IPv6 DNS查询姓名和地址使用IPv4协议与DNS服务器进行通信。
使用IPv6的一个优点是,绝大多数的系统将使用aggregatable全球单播地址。因此,没有任何法案同样需要NAT。域名系统安全扩展没有兼容NAT所以IPv6法案同样提供了一个机会来使用域名系统安全扩展,因为它旨在被使用。最初开发的过渡机制之一是网络地址转换协议转换(NAT-PT) (RFC 2766)。这种技术提供了一个基本的方法翻译IPv4和IPv6 IPv4只主机和主机站点之间的数据包。然而,有许多原因NAT-PT弃用(RFC 4966)在2007年的夏天。其中一个理由反对NAT-PT法案同样的事实打破了使用域名系统安全扩展。
防火墙
如果一个UDP端口53响应大于512字节,那么它可能会被截断或DNS落回使用TCP。然而,如果TCP在防火墙阻止然后查找可以完全失败。防火墙也可以使用EDNS0阻止你。因此,你应该配置防火墙允许TCP和UDP端口53和从您的DNS服务器以及允许防火墙通过大EDNS0包。完成这个改变你需要修改防火墙的配置参数启用EDNS0。
思科发布一个很好的指南DNS的最佳实践包括如何确保您的DNS服务器配置以及法案同样允许域名系统安全扩展通信。
如果你有一个思科PIX防火墙(6.3和更早),您可能需要将该命令添加到您的配置。
4096年修正协议dns最大长度
这个命令将增加防火墙的DNS信息长度限制,允许EDNS0消息转发。
如果你有一个新的软件版本上运行您的照片或ASA然后交通政策命令是这样的。
策略图类型检查dns preset_dns_map参数dns-guard id-randomization最大消息长度4096 id-mismatch数10时间2行动日志退出比赛header-flag RD下降策略图global_policy类inspection_default检查dns preset_dns_map服务策略global_policy全球
为了增加响应长度你需要输入这些命令:
策略图global_policy类inspection_default检查dns最大长度4096
使用以下命令查看设置:
显示服务策略检查dns
Juniper ScreenOS还允许使用以下命令DNS消息大小的增加。
di服务dns udp_message_limit 512 - 4096
如果防火墙没有可见的设置来启用EDNS0那么你可能想检查一下防火墙制造商是否可以支持这种设置。如果你担心家里的路由器/防火墙可能如何法案同样的域名系统安全扩展你可以查看测试结果从Nominet和核心竞争力。
测试
一旦你允许TCP和UDP端口EDNS0-capable 53和相信你的系统,那么你必须测试它是按预期工作。有几种方法,您可以使用它来测试您的配置和验证,如果您的系统有能力处理更大的DNS数据包。域名系统业务分析和研究中心(OARC)提供工具测试你的回复大小限制。
它们提供了一个验证解析器。您可以使用挖掘工具来测试您的配置。
挖+ nodnssec + norec +忽略ns。@L.ROOT-SERVERS.NETdig +dnssec +norec +ignore ns . @L.ROOT-SERVERS.NET dig +dnssec +norec +vc any . @L.ROOT-SERVERS.NET
您还可以使用挖来测试OARC DNS服务器。
挖@208.67.222.222 +短rs.dns-oarc.net txt挖@158.43.128.1 +短rs.dns-oarc.net txt
成熟的NCC还提供了一个测试方法您的DNS查询回复大小。成熟也提供一个Java回复尺寸测试实用程序,您可能会发现有用的。
当你测试DNS最好有一个协议分析仪运行,这样您就可以检查查询和响应。如果您使用的是Wireshark然后你可以设置一个显示过滤器捕获流量只看DNS数据包。这个过滤器将会看起来像这样。
tcp。53端口= = | | udp。端口= = 53
你还需要检查DNS服务器在互联网上可以获得更大的TCP服务器DNS的回应。最终,法案同样您的DNS服务器将使用域名系统安全扩展,你想让这些DNS解析器在其他组织法案同样可以得到你所有的域名系统安全扩展信息。因此,您必须测试UDP和TCP端口53两个方向的交通。
其他问题
如果你允许TCP和UDP端口53个遍历你的DNS服务器,仍然没有任何运气,你可能有一个问题与您的DNS实现。可想而知,你的DNS供应商错误地解释了IETF rfc DNS和不支持TCP通信。有一个IETF草案称为“DNS运输通过TCP -实现需求”澄清,“DNS解析器和递归服务器必须支持UDP,应该支持TCP”。如果是这种情况,那么你应该培养你的供应商,然后可能考虑切换到新版本的绑定,djdbns,或Secure64。
祝你好运法案同样部署域名系统安全扩展和IPv6在使用DNS在UDP和TCP端口与EDNS0 53。
斯科特