第 5 章 使用加密 DNS 保护系统 DNS 流量
您可以启用加密的 DNS 来保护使用 DNS-over-TLS (DoT)协议的 DNS 通信。加密的 DNS (eDNS)加密所有端到端 DNS 流量,且不会回退到不安全的协议,并与零信任架构(ZTA)的原则保持一致。
RHEL 中 eDNS 的当前实现只使用 DoT 协议。有两种主要方法来安装启用了 eDNS 的 RHEL 。您可以从本地介质执行交互式安装,或构建自定义可引导 ISO,以确保 eDNS 在安装过程中和安装后使用 enforce 策略进行了配置。另外,您可以将现有的 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对上游 DNS 查询使用 TLS ,这对于加密到外部 DoT 服务器的 DNS 流量至关重要。unbound还管理各种缓存来存储 DNS 响应,这减少了重复外部查询的需要,并提高了性能。
5.1.1. EDNS 解析过程和核心交互 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
- 解析主机名的应用程序请求。
-
系统读取
/etc/resolv.conf文件,并将查询发送给本地unbound服务。 -
unbound首先检查其内部缓存,来检查有效的,缓存的响应。 -
如果没有找到请求记录,
unbound会使用 TLS 加密 DNS 查询,并将其发送到配置好的上游启用了 DoT 的 DNS 服务器。 -
上游 DoT 服务器处理查询,并将加密的 DNS 响应发回给
unbound。 -
unbound解密、验证和缓存响应。 -
最后,
unbound将解析的 DNS 响应发回给应用程序。