服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-08-23 更新于 2026-08-23 简米科技 2,840 字 7 分钟阅读

关闭开放递归可降低反射放大风险吗?,关闭开放递归的作用是什么

导读关闭DNS开放递归是防御反射放大攻击最直接有效的措施,能显著降低服务器被利用的风险,是域名系统安全加固的第一步,开放递归让DNS服务器自动响应来自任意来源的解析请求,攻击者正是利用这一特性,通过伪造源IP地址向服务器发送大量查询,将响应流量“反射”到受害者目标,据统计,这类攻击的放大倍数可达数十倍甚至上百倍,严……

关闭DNS开放递归是防御反射放大攻击最直接有效的措施,能显著降低服务器被利用的风险,是域名系统安全加固的第一步。

开放递归让DNS服务器自动响应来自任意来源的解析请求,攻击者正是利用这一特性,通过伪造源IP地址向服务器发送大量查询,将响应流量“反射”到受害者目标,据统计,这类攻击的放大倍数可达数十倍甚至上百倍,严重影响网络稳定性,关闭开放递归等于切断了攻击者的“弹药库”,让服务器不再为恶意流量做“帮凶”。

DNS反射放大攻击怎么防御?关闭开放递归是首选

反射放大攻击的触发原理

攻击者向开放递归DNS服务器发送一个源IP被伪造为受害者的查询请求,服务器生成的响应数据包会发送给受害者,由于DNS响应通常比查询请求大得多,攻击者可以用较小的带宽产生巨大的攻击流量,业内专家指出,大多数反射放大攻击都依赖互联网上大量存在的开放递归DNS服务器,因此关闭递归是扼制此类攻击的“七寸”。

开放递归在攻击中的角色

  • 无条件响应:开放递归服务器不会验证请求来源的合法性,无论来自哪个IP,都返回完整的解析结果。
  • 放大系数高:某些DNS记录类型(如TXT、DNSSEC相关记录)的响应长度远大于查询,攻击者精挑细选查询类型,放大倍数可达50倍以上。
  • 难以追溯:由于源IP已伪造,被攻击者难以直接定位攻击源头,只能看到大量来自不同DNS服务器的流量。

关闭开放递归后,服务器仅响应授权域名的解析请求,或只对特定客户(如内部网络)提供递归服务,攻击者无法再将其作为“反射器”。

关闭开放递归可降低反射放大风险吗?,关闭开放递归的作用是什么

如何关闭DNS递归查询?各类服务器配置详解

判断当前服务器是否开放递归

在配置变更前,先确认服务器是否存在开放递归,以下操作可快速验证,使用任意一台能连上该服务器的设备执行:

dig @服务器IP www.example.com +short

如果返回正常解析结果,说明服务器允许递归查询,更严格的测试是使用非权威域名:

dig @服务器IP www.google.com +short

同样返回结果,则基本确定是开放递归。

针对不同DNS软件的关闭步骤

BIND(最大开源的DNS服务器软件)

编辑主配置文件(通常是/etc/named.conf),在options块中修改以下参数:

options {
    recursion no;
    allow-query-cache { none; };
    allow-recursion { none; };
};
  • recursion no; 关闭递归功能。
  • allow-query-cache { none; }; 禁止缓存查询,防止内部缓存被利用。
  • allow-recursion { none; }; 明确拒绝所有递归请求。

如果希望仅对内部网络开放递归,可将allow-recursion改为客户网段,如allow-recursion { 192.168.0.0/16; };

修改后执行rndc reload或重启named服务。

Windows Server DNS

在DNS管理器控制台,右键点击服务器名称,选择“属性”,在“高级”选项卡中,确保“禁用递归(也禁用转发器)”已勾选,如果服务器仅作为内部解析,可以关闭递归并配置转发器,将外部查询转发到权威DNS。

Unbound(轻量级递归服务器)

关闭开放递归可降低反射放大风险吗?,关闭开放递归的作用是什么

编辑unbound.conf,设置:

server:
    access-control: 127.0.0.0/8 allow
    access-control: 192.168.0.0/16 allow
    access-control: 0.0.0.0/0 refuse

只允许内网地址进行递归查询,拒绝所有外部请求,同时可以设置do-not-query-localhost: yes防止环路。

验证关闭结果

再次使用dig @服务器IP www.google.com,如果返回REFUSEDtimed out,表明递归已关闭,对于内部授权域名,应能正常解析,说明服务器仍能处理权威查询。

关闭开放递归后,注意这些影响和替代方案

对正常解析的影响

  • 内部客户端无法解析外部域名:如果服务器之前为内部网络提供递归解析,关闭递归后,内网设备将无法通过该服务器解析公网域名,此时需要引入转发器或配置内部DNS代理。
  • 授权解析不受影响:服务器上托管的权威区域的解析请求仍然正常,因为授权查询不依赖递归功能。

替代方案:使用转发器代替递归

行业共识认为,关闭递归后,通过配置转发器可以满足内网对外部域名的解析需求,同时不暴露递归服务,转发器将请求发送到指定的上游DNS(如8.8.8.8或114.114.114.114),由上游完成递归,本地服务器仅缓存结果。

BIND转发器配置示例

options {
    recursion no;
    forwarders {
        8.8.8.8;
        114.114.114.114;
    };
    forward only;
};

Windows Server:在DNS管理器“转发器”选项卡中添加上游DNS服务器地址,并勾选“如果没有到目标域的响应,则使用递归”但建议关闭递归,只依赖转发器。

关闭开放递归可降低反射放大风险吗?,关闭开放递归的作用是什么

风险控制:转发器也需选择可信的、支持DNSSEC验证的公共DNS,避免被中间人劫持。

长期维护与监控

  • 定期扫描外部IP,使用在线工具或自行搭建扫描脚本,检查DNS服务器是否仍存在开放递归。
  • 监控DNS响应流量,若发现异常大的出站流量,及时排查配置。
  • 将DNS服务器部署在防火墙后,仅允许必要端口(UDP 53、TCP 53)从特定源地址访问。

关闭开放递归降低反射放大风险常见问题

关闭开放递归后,我的网站访客还能正常解析吗?

如果您的网站域名使用该服务器作为权威DNS,不会受影响,开放递归针对的是非本域名的查询请求,关闭后服务器仍能正常响应自己托管的域名,如果您的服务器同时承担内部递归解析任务,需要配置转发器或改用其他递归服务器为内网服务。

如何判断我的DNS服务器是否被用于反射攻击?

检查服务器网络接口的出站流量,如果发现大量UDP流量涌向单一目标IP,且端口为53,很可能已被用作反射节点,此时应立即关闭递归,并清理缓存,还可以查看DNS日志,若出现大量来自不同源IP但查询相同域名的记录,也可能是攻击前兆。

关闭递归后还需要做哪些安全配置?

限制对DNS服务器的访问来源,仅允许授权网段发起查询;启用DNSSEC验证防止缓存投毒;定期更新DNS软件版本修补已知漏洞;配置响应速率限制,防止暴力查询耗尽资源,对于大型网络,建议部署独立的递归服务器与权威服务器,严格隔离角色。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱