DNS 安全性和专用名称解析

本文介绍如何使用专用 DNS 区域、Azure DNS专用解析程序和 DNS 安全控制为Azure网络设计 DNS。 它涵盖专用名称解析模式、混合 DNS 转发、专用终结点 DNS 集成和 DNS 层威胁防护。

本文介绍的内容

DNS 是网络连接的基础:每个连接都以名称解析查询开头。 在 Azure 中,DNS 设计决定了工作负载如何跨虚拟网络相互发现,本地系统如何解析 Azure 中托管的名称,以及专用终结点如何通过其完全限定域名(FQDN)进行访问。 除了解析之外,DNS 也是攻击面。 DNS 隧道、数据外泄以及对恶意域的查询都构成了真实威胁,因此需要部署 DNS 层安全控制措施。

本文介绍了三个 DNS 问题:

  • 专用名称解析:虚拟机、容器和平台服务如何在Azure中解析名称,而不向公共 Internet 公开 DNS 查询。
  • 混合 DNS 转发:本地网络如何解析Azure专用名称,以及Azure工作负载如何解析本地名称。
  • DNS 安全性: 如何阻止恶意 DNS 查询、防止 DNS 外泄和启用基于 FQDN 的网络筛选。

谁需要本文

如果你符合以下情况,请阅读本文:

  • 部署专用终结点(如果适用于你的方案),并且需要工作负载才能正确解析 privatelink.* DNS 区域。
  • 管理混合环境,其中本地系统必须解析 Azure 专用名称,或反过来。
  • 使用 Azure 防火墙,并且需要在网络规则中使用基于 FQDN 的筛选功能。
  • 想要在解析层阻止对已知恶意域的 DNS 查询。
  • 管理集中式 DNS 解析简化操作的多 VNet 环境。
  • 为具有共享服务的中心辐射拓扑规划 DNS 体系结构。

直接转移焦点: 在迁移过程中保留现有的 DNS 命名行为。 在本地 DNS 与Azure之间使用双向转发,为拆分范围解析配置条件转发器,并在专用 DNS区域中托管Azure专用名称,以便应用程序保持其当前的 DNS 配置。

现代化重点: 在将工作负载重新迁移到新平台时,集中管理名称解析。 将Azure DNS专用解析程序与用于混合解析的转发规则集配合使用,将专用 DNS区域与 PaaS 服务的专用终结点集成,并启用Azure 防火墙 DNS 代理,以便基于 FQDN 的规则和 DNS 解析共享单个缓存路径。

跨云重点: 在工作负载迁移之前,规划跨云之间的 DNS 切换。 使用Azure DNS专用解析程序进行跨云名称解析,使用 AWS Route 53 解析程序或 Google Cloud DNS 配置条件转发,并在直接转换之前降低 TTL 值,以减少过时缓存风险。

Azure服务和功能

下表介绍了 DNS 安全和专用名称解析所涉及的Azure服务和功能。

服务/功能 Purpose 关键功能 何时使用
Azure DNS(公共区域) 公共域名的权威托管 全球任播网络,Azure RBAC 集成,Azure 资源的别名记录 你拥有一个公共域,并希望在具有高可用性的Azure中托管 DNS 记录。
Azure 专用 DNS 区域 虚拟网络内不对外公开的名称解析 VNet 链接、VM 主机名自动注册、专用链接区域托管 Azure 工作负载的内部名称解析。 专用终结点 DNS 集成所必需。
Azure DNS专用解析程序 Azure与外部网络之间的 DNS 转发 入站终结点(本地→ Azure解析)、出站终结点(Azure →本地转发)、转发规则集 需要双向 DNS 解析的混合环境,无需部署自定义 DNS VM。
Azure 防火墙 DNS 代理 用于 FQDN 过滤的集中式 DNS 拦截 缓存 DNS 响应,启用基于 FQDN 的网络规则,为辐射 VNet 提供单个 DNS 终结点 你部署了 Azure 防火墙,并且需要在网络规则中使用 FQDN 过滤。 实现一致的 FQDN 解析所必需。
DNS 安全策略 DNS 层的威胁防护 使用 Microsoft 威胁情报源阻止已知恶意域名解析 你想要防止工作负荷连接到命令和控制或恶意软件分发域。

专用 DNS 区域概念

专用 DNS区域为链接的虚拟网络提供名称解析,而不会向 Internet 公开记录。 关键行为:

  • VNet 链接: 可以将专用 DNS 区域链接到多个 VNet。 链接 VNet 中的所有资源都可以解析区域中的记录。
  • 自动注册:在 VNet 链接上启用后,Azure会自动为在该 VNet 中部署的虚拟机创建 A 记录。 Azure 在对 VM 执行解除分配或删除操作时,会删除相关记录。 自动注册仅适用于虚拟机(仅限主网络接口卡)。 VNet 只能自动注册到一个专用 DNS 区域,但可以将多个 VNet 链接到同一区域。
  • 专用终结点 DNS:Azure通过专用终结点访问的服务需要特定的专用链接 DNS 区域(例如, privatelink.blob.core.chinacloudapi.cn Azure Blob 存储)。 如果没有正确的区域,客户端将解析公共 IP 而不是专用终结点地址。

DNS 专用解析程序体系结构

Azure DNS专用解析程序取代了混合转发方案中自定义 DNS 虚拟机的需求。 下图显示了从本地环境经由 Azure DNS 专用解析器到专用终结点 IP 地址的混合 DNS 解析流程。

显示从本地环境经 Azure DNS 专用解析程序入站终结点到专用 DNS 区域和专用终结点 IP 地址的混合 DNS 解析流程的关系图。

解析程序使用两种终结点类型:

  • 入站终结点: 提供本地 DNS 服务器可以作为条件转发器定位的 IP 地址。 Azure DNS 会解析发送到此 IP 地址的查询请求(包括已链接的专用 DNS 区域)。 需要一个委派给 Microsoft.Network/dnsResolvers 的专用子网。
  • 出站终结点:允许Azure工作负荷将 DNS 查询转发到本地 DNS 服务器、其他云提供商或外部解析程序。 还需要专用子网。 附加到出站终结点的转发规则集定义要转发的域后缀以及要使用的 DNS 服务器的目标。

Important

每个入站和出站终结点都需要其自己的专用子网。 不能在这些子网中部署其他资源。 与转发规则集关联的 VNet 无需与解析器 VNet 对等互连。 规则集链接独立于 VNet 对等互连运行。

如何选择

使用以下决策树为环境选择正确的 DNS 组件。

决策树

  1. 是否使用专用终结点?

    • 是→使用相应的privatelink.*区域名称部署专用 DNS区域。 将区域链接到需要解析专用终结点地址的 VNet。
  2. 本地系统是否需要解析Azure专用名称?

    • 是→使用入站终结点部署 DNS 专用解析程序。 使用指向入站终结点 IP 的条件转发器配置本地 DNS 服务器。
  3. Azure工作负荷是否需要解析本地名称?

    • 是→使用出站终结点部署 DNS 专用解析程序。 为本地域后缀创建转发规则集(例如,corp.contoso.com)。
  4. 您是否部署了 Azure 防火墙,并且需要在网络规则中进行 FQDN 筛选?

    • 是→启用防火墙 DNS 代理。 将分支 VM 配置为使用防火墙专用 IP 作为其 DNS 服务器。
  5. 是否要阻止对已知恶意域的 DNS 查询?

    • 是→在目标 VNet 上启用具有Microsoft威胁情报源的 DNS 安全策略。

常见模式

图案 Components 用例
仅限专用终结点解析 专用 DNS 区域 + VNet 链接 通过专用终结点访问 PaaS 服务的纯云工作负载。 没有混合连接。
混合双向解析 专用 DNS 区域 + DNS 专用解析器(入站 + 出站) 本地解析 Azure 专用名称;Azure 解析本地 Active Directory 名称。
集中式枢纽 DNS 中心 VNet 中的 DNS 专用解析程序 + 转发链接到分支的规则集 中心辐射型拓扑,其中所有 DNS 解析路由通过中心进行集中式日志记录和控制。
经防火墙处理的 DNS Azure 防火墙 DNS 代理 + 专用 DNS 区域 使用防火墙进行 FQDN 筛选的环境。 防火墙拦截 DNS,从而为网络规则提供一致的 FQDN 到 IP 解析。
完整安全堆栈 上述所有选项以及 DNS 安全策略 需要混合解析、FQDN 筛选和 DNS 层威胁防护的企业环境。

专用终结点 DNS 区域示例

下表列出了常见的Azure服务及其所需的专用 DNS区域名称。

Azure服务 私有 DNS 区域名称
Azure Blob 存储 privatelink.blob.core.chinacloudapi.cn
Azure SQL 数据库 privatelink.database.chinacloudapi.cn
Azure 密钥保管库 privatelink.vaultcore.chinacloudapi.cn
Azure 文件存储 privatelink.file.core.chinacloudapi.cn
Azure 容器注册表 privatelink.azurecr.io
Azure Cosmos DB (SQL API) privatelink.documents.azure.cn

注释

有关所有Azure服务专用 DNS区域名称的完整列表,请参阅Azure专用终结点 DNS 配置

先决条件

在实现 DNS 安全性和专用名称解析之前,请确保:

  • 虚拟网络: 所有 DNS 功能都在虚拟网络中或跨虚拟网络运行。 有关基础指南 ,请参阅虚拟网络和子网 。 (F1)
  • 混合方案的网络连接: DNS 专用解析程序入站终结点需要从本地(ExpressRoute 或 VPN)到解析程序 VNet 的网络可访问性。
  • DNS 专用解析程序的专用子网: 每个终结点(入站和出站)都需要其自己的子网委托给 Microsoft.Network/dnsResolvers。 为每个终端节点子网至少规划一个 /28 地址块。
  • 已部署专用终结点(如果使用专用链接区域):用于 privatelink.* 名称的专用 DNS 区域只有在存在专用终结点时才有价值。 有关部署指导,请参阅使用专用终结点进行专用 PaaS 访问。 (C5)
  • 已部署Azure 防火墙(如果使用 DNS 代理):DNS 代理功能需要现有的Azure 防火墙实例。 请参阅Azure 防火墙 和流量检查。 (S1)
  • 权限:用于管理专用 DNS 区域的 DNS 区域参与者角色。 DNS 专用解析程序部署的网络参与者。

安全注意事项

DNS 引入了需要专用控制的特定攻击途径。 以下部分介绍外泄风险、基于威胁情报的阻止、防火墙 DNS 代理行为和 DNSSEC 限制。

DNS 外泄风险

DNS 隧道对 DNS 查询中的数据进行编码,以通过其他不受限制的协议泄露信息。 由于大多数网络允许出站 DNS(UDP/TCP 53),因此攻击者使用 DNS 作为秘密通道。 通过以下方式缓解此风险:

  • 启用Azure 防火墙 DNS 代理并通过防火墙路由所有 DNS 流量。 防火墙记录所有 DNS 查询,使隧道可通过分析进行检测。
  • 应用 DNS 安全策略,阻止解析与已知数据外传工具和命令与控制基础设施相关的域名。
  • 在 Azure Monitor 中监控 DNS 查询模式,以发现异常,例如异常长的子域标签、针对单个域的查询量过高,或对近期注册域的查询。

DNS 安全策略

借助 Microsoft 威胁情报的 DNS 安全策略可在 VNet 级别阻止对已知恶意域名的 DNS 解析。 当工作负载尝试解析被 Microsoft 安全响应中心(MSRC)标记的域名时,策略会在任何网络连接发生之前阻止解析。 此控件独立于Azure 防火墙运行,不需要更改单个工作负荷配置。

主要特征:

  • 使用源自 MSRC 的 Microsoft 威胁情报源。
  • 在 DNS 解析层运行:阻止查询,而不是流量。
  • 按 VNet 应用:在包含访问 Internet 的工作负载的所有 VNet 上启用。
  • 与防火墙 FQDN 筛选不同:DNS 安全策略会全局阻止恶意域,而无需防火墙部署。

防火墙 DNS 代理和 FQDN 筛选

Azure 防火墙 网络规则中基于 FQDN 的筛选需要使用 DNS 代理。 如果没有 DNS 代理,来自客户端 VM 的 DNS 请求其解析时间可能与防火墙的解析时间不同,从而导致 IP 与 FQDN 的映射不一致,并造成规则不匹配。

启用 DNS 代理时:

  • 将分支 VM 配置为使用防火墙专用 IP 作为其 DNS 服务器。
  • 防火墙代表客户端解析查询并缓存结果(正缓存最多 1 小时,负缓存最多 30 分钟)。
  • FQDN -to-IP 映射每 15 秒刷新一次。 防火墙在 15 分钟后删除过时的条目。
  • 应用程序规则 (L7) 使用服务器名称指示 (SNI) 进行 FQDN 匹配,并且不需要 DNS 代理。 网络规则 (L4) 需要 DNS 代理进行 FQDN 解析。
  • 网络规则中的 FQDN 筛选仅支持精确域名匹配。 网络规则中的 FQDN 不支持通配符模式。 使用应用程序规则来匹配通配符 FQDN。

注释

如果所有配置的上游 DNS 服务器都不可用,Azure 防火墙 DNS 代理不会回退到备用解析程序。 DNS 解析在至少一个上游服务器恢复之前失败。 在上游配置中规划 DNS 服务器冗余。

注意

如果启用 DNS 代理,但未将客户端 VM 配置为使用防火墙作为其 DNS 服务器,则基于 FQDN 的网络规则将无法正常运行。 客户端和防火墙可能会解析同一 FQDN 的不同 IP,从而导致意外流量下降。

DNSSEC 限制

Azure DNS目前不支持专用区域的 DNSSEC 验证。 Azure DNS中托管的公共区域支持对权威响应进行 DNSSEC 签名,但Azure虚拟网络中的递归解析不会执行 DNSSEC 验证。 如果安全要求要求要求 DNSSEC 验证,请使用支持验证或实现应用程序层验证的自定义 DNS 解析程序进行评估。

设计注意事项

直接迁移 DNS 设计重点

  • 配置本地 DNS 服务器与Azure DNS专用解析程序之间的双向 DNS 转发。
  • 使用条件转发器,使针对 Azure 托管名称的本地查询在 Azure 中解析,而针对本地名称的 Azure 查询则通过您现有的 DNS 基础结构解析。
  • 为已迁移的工作负荷所使用的每个 Azure 服务创建专用 DNS 区域,尤其是由专用终结点提供支持的服务。
  • 使用别名记录或 CNAME 映射(而不是更改客户端解析程序设置)在迁移过程中保留应用程序 DNS 行为。

实现 DNS 设计现代化的重点

  • 使用 Azure DNS 私有解析程序,并结合在各辐射虚拟网络之间共享的转发规则集,在中心网络中集中进行 DNS 解析。
  • 为每个由专用终结点提供支持的 PaaS 服务关联专用 DNS 区域,以便经过平台迁移的工作负载能够自动解析 privatelink 名称。
  • 启用Azure 防火墙 DNS 代理,以便基于 FQDN 的网络规则和工作负荷 DNS 解析使用一致的缓存解析路径。
  • 在采用基础设施即代码 (IaC) 的过程中,使用专用 DNS 区域中的自动注册和 Azure RBAC 来减少手动管理 DNS 记录的工作。

跨云 DNS 设计焦点

  • 使用Azure DNS专用解析程序作为跨云名称解析的转发控制点。
  • 为必须跨环境解析的每个专用命名空间配置Azure专用 DNS、AWS Route 53 解析程序与 Google Cloud DNS 之间的条件转发。
  • 分阶段规划 DNS 直接转换:降低 TTL 值、验证转发路径、更改 CNAME 或 A 记录,以及监视查询延迟和缓存行为。
  • 在已连接平台支持 DNSSEC 的情况下,对权威 DNS 区域启用 DNSSEC,并记录哪些专用解析路径不会验证 DNSSEC。

Learn more

后续步骤

Tip

自行探索? 返回到 概述导航器 ,按功能查找下一篇文章。

接下来是直接迁移过程中的下一步:

控制出站 Internet 流量:通过Azure 防火墙集中所有出站通信,并关闭默认出站访问。

现代化之旅的下一步:

设置生产环境监视:从第一天起启用 网络观察程序 和网络性能监视器,为生产环境做好准备。

跨云之旅的下一步:

保护跨云传输路径:在安全虚拟中心部署Azure 防火墙,以检查所有跨云、分支和 Internet 绑定的流量。