如果我的问题太长,请见谅。
我有 4 个 PowerDNS 服务器,如下所示,其中包含示例 IP。ns1.example.com 1.1.1.1 ns2.example.com 2.2.2.2 rec1.example.com 3.3.3.3 rec2.example.com 4.4.4.4
在我的网络中,ns1 和 ns2 是具有一些区域和反向区域的权威服务器。rec1 和 rec2 是递归 DNS 服务器。我已将 rec1 和 rec2 配置为从 ns1 和 ns2 请求我自己的区域,并在 powerdns/recursor.conf 上使用“forward-zones”,这工作正常。我还配置了“forward-zones-recurse=.=8.8.8.8”以将所有其他查询发送到 google DNS,它也能正常工作。我的网络中有许多子网(客户端),它们在其计算机上使用 rec1 和 rec2 作为主 DNS 服务器。它们根据域向 rec1 和 rec2 请求任何域,rec1 和 rec2 向 ns1 和 ns2 或 google 请求该查询。到目前为止,我没有遇到任何问题,我的客户端可以成功查询任何地址。
我的问题是,我的 rec1&rec2 变成了互联网上的“open_resolver”,我的意思是互联网上的任何人都可以向这些服务器发送 DNS 查询,而且它们可以正常工作。我配置了“allow-from=我的子网“在 powerdns/recursor.conf 中,但它会导致一个问题,即互联网服务器(如 gmail 服务器)无法查找我的 reverse_zone。所以我的所有 PTR 记录在互联网上都不可用。如果我将“allow-from=”更改为 0.0.0.0/0,它们将变为所有 IP 和任何查询的 open_resolver
我想知道是否有解决方案可以解决这个问题,就像在 Bind9 中一样,我可以对 named.conf.option 中的每个区域使用“allow_query {trusted;}”。这样我就可以控制 Bind 服务器成为 open_resolver,并且只向互联网回答我自己的 reverse_zone,而不用回答其他问题。
如果有人能帮助我,我会很高兴。提前谢谢
答案1
除了您正在使用的 DNS 之外,最好将解析器 DNS 服务器限制在您的网络范围内,这将保护您免受大多数攻击。另一方面,最好将您的权威名称服务器向公众开放。我的建议是使用 Bind 作为您的权威 DNS 服务器,并使用 Unbound 作为您的解析器服务器。