首页/网络/网络排障速查/开放解析器检查:递归 ACL 与滥用判断
DNS 与解析排查46 条

开放解析器检查:递归 ACL 与滥用判断

对外可递归的 DNS 会被用于放大攻击:检查递归 ACL 配置、用外部视角测试是否可递归;这是安全与故障双视角的排查项。

网络排障速查网络更新于 2026-10-13

开放解析器检查是什么

开放解析器指对任意来源都提供递归服务的 DNS 服务器。这类服务器会被用于 DNS 放大攻击,也会成为攻击者隐藏查询来源的跳板。检查分两手:配置层面核对 allow-recursion、allow-query、allow-query-cache 与 recursion 开关;验证层面必须从外部网络实际发起查询,因为只在内网测试无法发现对外开放。

基本信息

适用平台BIND 9、Unbound、PowerDNS 等递归解析器
核心配置allow-recursion、allow-query、allow-query-cache、recursion
验证方式从外部网络或第三方节点发起查询,看是否获得递归答案
常见背景应急响应的入口检查项之一

典型使用场景

  • 安全基线与等保核查:确认解析器是否对外提供递归
  • 被通报为放大攻击源:定位是哪台解析器开放了递归
  • 新上线 DNS 服务的验收:确认 ACL 已按设计生效
  • 多台解析器资产盘点:逐台核对配置一致性
  • 变更后复测:调整 ACL 后从外部重新验证

检查与加固

检查与加固
# 检查当前递归与 ACL 相关配置
grep -A3 -E 'allow-recursion|allow-query|recursion' /etc/bind/named.conf.options 2>/dev/null
# 加固示例(BIND):只允许内网网段递归
# options { recursion yes; allow-recursion { 10.0.0.0/8; 192.168.0.0/16; }; };
# 生效并复测
sudo rndc reload
# 从外部网络执行查询验证,例如:
# dig @<该服务器公网IP> example.com

配置项含义

配置项含义风险点
allow-recursion允许递归查询的来源配置为 any 即成为开放解析器
allow-query允许普通查询的来源过宽会暴露内部记录
allow-query-cache允许查询缓存的来源过宽会被利用做缓存探测
recursion是否提供递归服务对外应关闭或严格限制
只从内部网络测试无法发现『对外开放递归』:必须借助外部网络或第三方在线检测,才能得到与攻击者视角一致的结论。
开放解析器被利用时,你的服务器会成为攻击流量的一部分:除承担通报与封禁风险外,还会因异常流量导致自身解析服务质量下降。

加固后的复核清单

加固后的复核清单
# 1) 配置层面确认 ACL 已按设计收紧
grep -E 'allow-recursion|allow-query|recursion' /etc/bind/named.conf.options
# 2) 重载配置
sudo rndc reload
# 3) 从外部网络复测,确认递归已被拒绝
# dig @<公网IP> example.com
# 4) 核对查询日志中是否仍出现大量非本地来源
 sudo journalctl -u named --since '1 hour ago' | tail -20
加固动作要在变更窗口内做,并同时通知依赖该解析器的业务方:把 ACL 一次性收紧到最小范围,可能与某些跨网段调用方产生冲突。

易错点

  • 把『能递归』当功能完整性的指标:对公网开放递归是明确的安全缺陷
  • 改完 ACL 不验证:reload 后未从外部复测,问题依旧存在
  • 只在内网测试就下结论:无法发现对外暴露的递归
  • 忽略 allow-query-cache:缓存探测同样可被滥用
  • 多台解析器只加固其中一台:资产不一致时风险随另一台继续存在

数据来源与参考

  • BIND 9 ACL 文档
  • 开放解析器风险(US-CERT TA13-088A)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌