我们都知道开放式解析器,这个问题是针对相反的情况。我有一个被锁定到某些 CIDR 的 DNS 服务器acl trusted {[..]
options {
[..]
allow-query {
// Accept queries from our "trusted" ACL. We will
// allow anyone to query our master zones below.
// This prevents us from becoming a free DNS server
// to the masses.
trusted;
};
这行得通。
但是,它不会阻止允许范围内的受感染主机发送欺骗性(最常见的类型为 ANY)请求。这些都已解决,响应仍会发送到“请求”它的欺骗 IP(通常是攻击者的目标)。
如何防止 DNS 服务器解析受信任范围之外请求的域?这甚至是绑定应该做的事情吗?
这不是您应该尝试在服务层解决的问题。
这些问题的根源在于您面前的网络拓扑设计。尝试从服务器本身解决这些问题是一场失败的战斗。
您可以采取多种方法。您可能希望将它们组合起来。
fail2ban
动态阻止请求网络。从您的问题来看,您似乎有许多计算机感染了僵尸网络软件。识别和清理这些系统很重要。这超出了这个问题的范围。如果您的路由器支持它,请考虑限制可以发起请求的 IP 地址。
问题中配置摘录中的注释是指您的服务器对某些区域做出权威回答。对于攻击者滥用权威服务器的情况,配置响应速率限制来缓解这种情况是有意义的。
然而,在攻击滥用启用递归的服务器的情况下,结合入口过滤锁定对您自己网络的递归访问是阻止这种情况的最佳方法。(正如@Andrew-B 所建议的那样。)
具体就 BIND 而言,了解不同的
allow-*
配置指令在您覆盖其中一个或多个指令时如何交互是很重要的(如果不理解,例如,覆盖allow-query
如何影响其他指令,如allow-recursion
.