参考文档:
https://www.acunetix.com/blog/articles/dns-zone-transfers-axfr/
使用 AXFR 协议的 DNS 区域传输是跨 DNS 服务器复制 DNS 记录的最简单机制。为避免在多个 DNS 服务器上编辑信息的需要,您可以在一台服务器上编辑信息并使用 AXFR 将信息复制到其他服务器。但是,如果您不保护您的服务器,恶意方可能会使用 AXFR 来获取有关您所有主机的信息。
AXFR 漏洞和预防
AXFR 不提供身份验证,因此任何客户端都可以向 DNS 服务器请求整个区域的副本。这意味着除非引入某种保护,否则攻击者可以获得域的所有主机的列表,这为他们提供了许多潜在的攻击媒介。
为了防止此漏洞发生,应将 DNS 服务器配置为仅允许来自受信任 IP 地址的区域传输。以下是如何在 BIND DNS 服务器中完成此操作的示例。
# /etc/named.conf acl trusted-nameservers { 192.168.0.10; //ns2 192.168.1.20; //ns3 };
zone zonetransfer.me { type master; file "zones/zonetransfer.me"; allow-transfer { trusted-nameservers; }; };
DNS 的工作原理
DNS(域名系统)就像一个互联网电话簿。它负责将人类可读的主机名解析为机器可读的 IP 地址。该系统包括提供信息的权威 DNS 服务器和临时存储该信息以供客户端查找的 DNS 缓存。典型的 DNS 查询非常简单:客户端提供一个人类可读的主机名,并作为响应接收一个 IP 地址。但是,系统假定查询客户端知道主机名。
DNS 服务器托管区域。DNS 区域是由 DNS 服务器提供服务的域名空间的一部分。例如,example.com及其所有子域可能是一个区域。但是,second.example.com也可能是一个单独的区域。
为什么需要 DNS 区域传输
DNS 是一项关键服务。如果某个区域的 DNS 服务器不工作并且缓存的信息已过期,则所有服务(Web、邮件等)都无法访问该域。因此,每个区域应该至少有两个 DNS 服务器。对于更多的关键区域,可能会有更多。
但是,区域可能很大并且可能需要频繁更改。如果您分别在每台服务器上手动编辑区域数据,则需要花费大量时间并且很可能会出错。这就是需要 DNS 区域传输的原因。
您可以使用不同的 DNS 区域传输机制,但最简单的一种是 AXFR(从技术上讲,AXFR 是指 DNS 区域传输期间使用的协议)。它是客户端发起的请求。因此,您可以编辑主 DNS 服务器上的信息,然后使用辅助 DNS 服务器上的 AXFR 下载整个区域