DNS 灰名单和长重试间隔——标准做法?

DNS 灰名单和长重试间隔——标准做法?

我公司的 ISP 实施了 DNS“灰名单”技术(或者他们的配置有问题)——他们阻止了过去 60 秒内未尝试查询的 [解析器 IP,服务器 IP] 对之间的入站 DNS 查询。因此,如果第一次查询失败,只要距离上次尝试的时间不到 60 秒,后续查询就会成功。我认为这是为了隐藏主机以防扫描,前提是合法的解析器会重试查询。他们甚至可能阻止所有 UDP 数据包以对抗端口扫描,但我还没有找到测试此方法的方法。

事实证明,Cisco IronPort 设备的重试间隔通常超过 60 秒。(尝试每个辅助 DNS 服务器 15 秒,然后重试主 DNS 服务器 60 秒)我的公司无法接收来自大多数使用 IronPort 设备的组织的电子邮件。

我的感觉是,这些行为中至少有一种是错误的。所以我的问题是:

1) DNS 解析器的建议重试间隔是多少?您可以参考 RFC 或其他来源吗?或者这是事实上的行业标准?

2) DNS 或 UDP“灰名单”是标准做法吗?有参考资料吗?

编辑-一些额外的背景细节:

我公司的两台 DNS 服务器都受到影响,我们 ISP 的主名称服务器也是如此。他们的辅助名称服务器(实际上位于其网络之外)和任何受影响主机上游的名称服务器均不受影响。我们还有第二个 ISP,通过该路由传入的 DNS 查询不会被阻止。我们外部防火墙上的数据包跟踪显示,我们回答了收到的所有 DNS 查询 - 丢弃的查询不会传送到我们的网络。我提出这个问题的主要目的是要有一份标准文档来向我们的 ISP(或不太可能是思科)表明他们的行为有问题并且需要修复。

答案1

DNS 服务器分为几个不同的组:

  • 权威服务器
  • 公共检索器
  • 非公开递归器

在上述任何一种情况下,试图隐藏它们的存在都是没有意义的。权威 DNS 服务器必须公开可访问,才能完成最初设置的任务。如果您试图隐藏公共递归器的存在,那么它就毫无意义。如果您运行的递归器不应该是公开的,那么与其试图隐藏它,不如直接阻止来自未经授权的客户端 IP 的请求。

从你的问题来看,你询问的 DNS 服务器似乎对你的区域具有权威性。因此,我认为它是一个权威 DNS 服务器。

权威 DNS 服务器和公共递归器都会接收来自任意客户端 IP 地址的查询,这意味着它们可能被用于放大攻击。

不幸的是,DNS 协议无法有效防御此类攻击。您描述的行为可能是一种非常糟糕的防御此类攻击的尝试。

DNS 服务器可以通过一些方法来防范放大攻击,而且其影响不会像您描述的那么大。

  • 当没有发生攻击时,不要采取对策。相反,要寻找攻击可能引起的 ICMP 错误响应,并在检测到可能的攻击时采取对策。
  • 不要丢弃请求,而是发送没有答案部分的回复并设置截断位。这将导致任何正确的 DNS 客户端使用 TCP 重试。
  • 由于 TCP 具有更强的抗欺骗能力,因此可以发送回复而不必担心放大攻击。
  • 记住通过 TCP 成功查询的 IP 地址。以后可以允许这些 IP 地址通过 UDP 进行查询。

我在这里描述的并不是一些官方的最佳实践,但据我所知,这是目前使用 DNS 协议防止放大攻击的最佳方法。我不知道这种方法是否有实际实施。

相关内容