最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
DNS 服务器查询请求的频率限制和防御
时间:2026-07-27 07:35:59 编辑:袖梨 来源:一聚教程网
核心目标是防止DNS服务器被用作反射放大源,而非拦截所有恶意流量;需白名单放行可信源、iptables限速防高频探测、屏蔽ANY等高危查询类型,并在服务端禁用递归与启用速率控制。
限制 dns 服务器查询请求频率,核心目标不是“拦住所有坏流量”,而是让服务器不响应异常请求、不被用作反射放大源。重点在控制响应行为,而非识别攻击者。
白名单放行可信来源
公开暴露的 DNS 服务若对全网开放 UDP 53 端口,极易被伪造源 IP 滥用。应只允许明确可信的网段访问:
- 内网管理段(如 192.168.10.0/24)
- 运维跳板机或监控系统固定 IP
- 上游递归服务器地址(如有)
规则顺序很重要:先放行,再拒绝。示例命令:
iptables -A INPUT -p udp --dport 53 -s 192.168.10.0/24 -j ACCEPTiptables -A INPUT -p udp --dport 53 -j DROP
用 iptables 限速防高频探测
普通客户端极少每秒发起超过 5 次 DNS 查询;攻击脚本或反射工具则必然高频触发。可用 recent 或 hashlimit 模块实现轻量级限速:
-
recent 方式(适合简单统计):
iptables -A INPUT -p udp --dport 53 -m recent --set --name dnsquery --rsource
iptables -A INPUT -p udp --dport 53 -m recent --name dnsquery --rcheck --seconds 1 --hitcount 5 -j DROP -
hashlimit 方式(更稳定,推荐):
iptables -A INPUT -p udp --dport 53 -m hashlimit
--hashlimit-above 10/sec
--hashlimit-burst 2
--hashlimit-mode srcip
--hashlimit-name dns_limit -j DROP
屏蔽高危 DNS 查询类型
ANY、TXT、AXFR 这类响应体大、信息量高的查询,是 DNS 放大攻击的主力。仅靠限速不够,需直接丢弃:
- 用 u32 模块匹配 DNS 报文中的查询类型字段(如 ANY 对应 type=255)
- 典型命令(屏蔽 ANY 查询):
iptables -A INPUT -p udp --dport 53 -m u32 --u32 "28&0xFFFF=0xFF" -j DROP - 搭配日志可辅助分析:
-j LOG --log-prefix "DNS-ANY-BLOCK: "
服务端配合禁用递归与启用速率控制
防火墙规则是第一道防线,但 DNS 服务本身也需加固:
- BIND 9.11+ 可在 named.conf 中启用 rate-limit:
rate-limit { responses-per-second 10; window 10; log-only no; }; - 务必关闭递归查询(recursion no;),尤其对外提供服务时
- 禁用区域传输(allow-transfer { none; };),防止 AXFR 泄露
相关文章
- 三角洲行动仿星器控制室位于何处 07-28
- 三角洲行动压水堆服务器室在何处 07-28
- 三角洲行动铁路通道何处 07-28
- 三角洲行动托卡马克数据中心在哪 07-28
- 三角洲行动后处理厂机房何在 07-28
- 梦幻西游女魃墓69级装备搭配 07-28