第 5 章 使用加密 DNS 保护系统 DNS 流量
您可以启用加密的 DNS 来保护使用 DNS-over-TLS (DoT)协议的 DNS 通信。加密 DNS (eDNS)加密所有 DNS 流量端到端,且不回退到不安全的协议,并与零信任架构(ZTA)的原则一致。
RHEL 中 eDNS 的当前实现只使用 DoT 协议。在启用了 eDNS 的情况下安装 RHEL 有两种主要方法。您可以从本地介质执行交互式安装,也可以构建自定义可引导 ISO,以确保在安装过程中和安装后使用 enforce
策略配置 eDNS。另外,您可以将现有的 RHEL 安装转换为使用 eDNS。
重要
加密的 DNS 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
5.1. RHEL 中 eDNS 的组件概述 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
以下组件包含 RHEL 中的 eDNS 设置,并以分层方式交互:
- NetworkManager
-
NetworkManager 启用 eDNS,并强制根据配置的策略使用加密 DNS 协议。它被设置为使用
dnsconfd
作为其后端 DNS 解析器。 dnsconfd
-
dnsconfd
是一个本地 DNS 缓存配置守护进程。它简化了 DNS 缓存、分割 DNS 和 DNS over TLS (DoT)的设置。 unbound
-
unbound
是一种验证、递归和缓存 DNS 解析器。在 eDNS 设置中,它充当dnsconfd
的运行时缓存服务。unbound
使用 TLS 进行上游 DNS 查询,这对于加密到外部 DoT 服务器的 DNS 流量至关重要。unbound
还管理各种缓存来存储 DNS 响应,这可减少重复外部查询并提高性能。
5.1.1. EDNS 解析过程和核心交互 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
- 用于解析主机名的应用程序请求。
-
系统读取
/etc/resolv.conf
文件,并将查询发送到本地unbound
服务。 -
unbound
首先检查其内部缓存的响应。 -
如果没有找到请求记录,
unbound
通过使用 TLS 加密 DNS 查询,并将其发送到配置的上游 DoT 启用 DNS 服务器。 -
上游 DoT 服务器处理查询并将加密的 DNS 响应发回到
unbound
。 -
unbound
解密、验证和缓存响应。 -
最后,
unbound
将已解析的 DNS 响应发回到应用程序。