![什么是开放 DNS 解析器,以及如何防止 DNS 放大?](https://linux22.com/image/673518/%E4%BB%80%E4%B9%88%E6%98%AF%E5%BC%80%E6%94%BE%20DNS%20%E8%A7%A3%E6%9E%90%E5%99%A8%EF%BC%8C%E4%BB%A5%E5%8F%8A%E5%A6%82%E4%BD%95%E9%98%B2%E6%AD%A2%20DNS%20%E6%94%BE%E5%A4%A7%EF%BC%9F.png)
我想知道如果我将 ACL 访问限制为允许递归的名称服务器,可能发生的最糟糕的情况是有人在 ACL 中任何允许的主机上启动 DNS 放大?
例如:
ACL allow access to 11.111.111.11 and 22.222.22.222
22.222.22.222 理论上可以对 11.111.111.11 发起 DNS 放大攻击吗?
答案1
从 ACL 中删除攻击者的 IP 地址不会阻止放大攻击。由于放大攻击涉及 IP 欺骗,服务器永远不会看到攻击者的真实 IP 地址。相反,服务器只会看到受害者的 IP 地址。
但是,假设 ACL 机制得到合理实施,那么从 ACL 中删除受害者的 IP 地址将会停止放大攻击。
这意味着您无法通过这种方式保护您的合法用户。但是,如果您只有一组众所周知的合法用户,您可以确保您的 DNS 服务器不会被滥用来对第三方进行放大攻击。这也可能减少您的 DNS 服务器的负载,因为任何想要执行放大攻击的人都会通过向您的服务器发送数据包来浪费自己的带宽。
如果您完全控制每个合法客户端和 DNS 服务器之间的网络路径,那么就可以在欺骗数据包到达服务器之前将其过滤掉。
答案2
如果您设置 ACL 以允许访问 11.111.111.11 和 22.222.22.222,则意味着任何可以伪造这些来源(如您的服务器所见)的人都可以使用您的服务器攻击 11.111.111.11 或 22.222.22.222。该人可能可以使用世界上任何开放的 DNS 解析器来做同样的事情。
欺骗数据包(就您的服务器而言)意味着让您的服务器看到源地址为 11.111.111.11 或 22.222.22.222 的数据包,即使该服务器从未发送过该数据包。许多 ISP 设法在其网络边缘进行反欺骗,丢弃表明它们来自内部的外部数据包,并为其客户端进行反欺骗,以便他们的客户端根本无法欺骗 IP。如果您的 ISP 这样做,那么外部 IP 只能欺骗(并使用 DNS 放大来攻击)外部 IP。如果 DNS 解析器仅回复来自内部 IP 的查询,则没有问题。
因此,最佳做法是仅向您控制的 IP 提供 DNS 解析服务,并在网络级别应用反欺骗。
更多信息请参阅:
https://blog.cloudflare.com/deep-inside-a-dns-amplification-ddos-attack/
但不要犹豫,澄清你的问题(你的问题是什么,你是 ISP 还是公司或家庭用户......)
编辑因为我的后续评论太长:
我确实认为禁止 ANY 请求可能会降低滥用的可能性,因为您可能不是任何特定请求的对象。因此,如果攻击者正在使用 ANY 请求,阻止它们将阻止通过您发起的攻击,攻击者不会在意甚至不会注意到。但你应该要做的就是使用 ACL 限制发出请求的权限,仅包括您朋友的 IP,如上所述。这样您就不是开放解析器了。要么木马正在欺骗不属于您朋友的 IP,而您不会回复它,要么您的某个朋友会因为您的朋友被木马感染而受到攻击,但只要您没有数百万个朋友,那就没问题。
我预料到了你的问题:你的朋友有动态 IP。这个问题很难回答;如果你的朋友有令人信服的理由无法使用他们的 DHCP 提供的 DNS 服务器,或者 OpenDNS 或 Google 的 8.8.8.8 或全功能 VPN,我认为域名加密可能是解决方案。
当然,如果您的朋友被木马病毒感染,那么对其 DNS 安全的担心可能比对主机安全的担心更重要。