本文由财富云计算提供,我们提供高防服务器、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 验证签名 → 篡改的(签名不对)= 拒绝开启方法(以主流云解析为例):
- 解析商后台开启 DNSSEC(阿里云 DNSPod/腾讯 DNSPod 都支持一键开)
- 注册商处添加 DS 记录(解析商会给)
- 验证:
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.log4.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安全配置要点:
- 只监听内网:
bind_host: 192.168.x.x,别监听 0.0.0.0——公网可达的 DNS 必被打 - 上游用加密 DNS:设置里配 DoH/DoT 上游(如 223.5.5.5/dns-query),防上游投毒
- 查询日志留存 + 定期审:隧道攻击的发现靠日志(第四节)
- 限速: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 与全栈防护方案咨询。更多教程见端口速查表。
延伸阅读
- 高防误区与避坑清单:25 个坑+下单前必问 14 问+到货验货流程
- 电商大促防攻击预案:T-14 到当天的分级响应与降级开关
- 源站真实 IP 隐藏完全指南:六大暴露面排查+NAT 型终极方案
- 日志分析找攻击源:Nginx 日志三维度分析法与证据固定
- 攻击应急响应手册:六阶段响应流程,从确认到复盘的照做清单
- iptables 抗 DDoS 配置模板:状态过滤+SYN 防护+防扫描+游戏服版
- OpenResty Lua 自研 WAF:动态限流+攻击特征检测+Redis 黑名单
- Nginx 进阶防护:连接层、请求层、行为层三层生产级配置

[...]netsh advfirewall firewall add rule name="GameRange" dir=in action=allow protocol=UDP localport=26901-26903完整的 Windows 环境准备(远程桌面连接、运行库安装、SteamCMD 用法、开机自启、8 个常见坑)见:《Windows 云服务器开服通用前置教程》→ htt[...]
2026-10-21 回复