DNS 设置
100%

DNS · 第 5 课

DNS 设置

了解如何选择、保护、验证和运维权威或递归 DNS 服务。

应根据角色和运维需求选择 DNS 软件,而不是寻找一个放之四海而皆准的“最佳服务器”。权威服务发布区域;递归服务通过解析和缓存回答客户端;转发解析器则把查询发送给另一个解析器。组合多种角色会改变攻击面。

选择角色与实现

  • BIND 可以提供权威和递归服务,并广泛支持各项标准。
  • Unbound 常被部署为执行验证的递归解析器。
  • dnsmasq 为规模较小且受控的网络提供轻量级转发、缓存和 DHCP 功能。
  • PowerDNS 分别提供权威产品与递归产品,并支持多种数据后端。

功能和软件包会发生变化,因此请查阅已安装版本的官方文档。只部署需要的角色,并禁用非预期的递归查询或区域服务。

哪种角色会为其服务的区域发布最终记录?

安装前设计

明确区域、客户端、查询量、更新机制、DNSSEC 需求、日志、监控、备份与恢复方案。权威区域需要冗余服务器和正确注册的委派。递归服务需要明确的客户端访问控制、缓存策略、上游或迭代查询连通性,以及防滥用措施。

绝不要向互联网开放不受限制的递归查询。开放解析器可能被用于反射攻击,并消耗本地资源。

为什么要将递归查询限制给获准客户端?

验证配置与区域数据

重新加载前,使用相应实现的语法检查工具和区域检查工具。对于 BIND,常见示例如下:

$ named-checkconf
$ named-checkzone example.com /etc/bind/zones/db.example.com

请使用适合该主机的权限和路径运行。解析器检查成功并不能证明委派、序列号传播、DNSSEC 信任链、防火墙连通性或回答正确,因此还要进行受控查询。

区域语法检查成功无法证明什么?

安全应用与测试

保留当前配置和恢复访问通道,完成验证,并在支持时采用重新加载而不是重启。关闭递归,直接查询每一台权威服务器,比较 SOA 序列号、NS 集合、正面记录、不存在的名称,以及 UDP 和 TCP 行为:

$ dig @192.0.2.53 example.com SOA +norecurse
$ dig @192.0.2.53 missing.example.com A +norecurse
$ dig @192.0.2.53 example.com SOA +norecurse +tcp

对于递归服务,应测试允许和拒绝的客户端网络、DNSSEC 验证、缓存行为,以及上游依赖失效时的表现。

为什么使用 +norecurse 查询权威服务器?

运维服务

监控查询失败、延迟、缓存行为、资源使用、区域传送、序列号一致性、DNSSEC 到期和委派健康状况。安全备份源配置和签名材料,同时验证全新实例能够加载区域并提供正确回答。及时修补仍受支持的版本,并限制控制接口、动态更新和区域传送访问权限。

权威 DNS 冗余测试应包括什么?

课程已完成

你已完成 DNS 设置

现在,你可以围绕明确的权威或递归角色设计 DNS 部署。

  • 先定义所需角色,再选择软件。

  • 限制递归查询和管理接口。

  • 重新加载前验证配置与区域。

  • 直接测试权威、否定回答、传输和客户端策略。

  • 监控冗余、DNSSEC、数据一致性和恢复能力。

保存学习进度

创建免费账户即可保存本课进度,并在任意设备上继续学习。

创建免费账户
下一节
返回 DNS