DNS 安全性與私有名稱解析

本文說明如何利用私有 DNS 區域、Azure DNS 私有解析器及 DNS 安全控制來設計 Azure 網路的 DNS。 它涵蓋私有名稱解析模式、混合 DNS 轉發、私有端點 DNS 整合,以及 DNS 層威脅防護。

本文涵蓋的內容

DNS 是網路連接的基礎:每個連線都從一個名稱解析查詢開始。 在 Azure 中,DNS 設計決定了工作負載如何在虛擬網路中彼此發現、本地系統如何解析 Azure 託管名稱,以及私有端點如何透過其完全合格的網域名稱(FQDN)被存取。 除了解析之外,DNS 也是攻擊面。 DNS 隧道、外洩以及對惡意網域的查詢,都是需要 DNS 層安全控管的真實威脅。

本文針對三個 DNS 疑慮進行討論:

  • 私人姓名解決:虛擬機、容器與平台服務如何在 Azure 內解析名稱,而不暴露 DNS 查詢於公共網際網路。
  • 混合 DNS 轉發:本地網路如何解析 Azure 私有名稱,以及 Azure 工作負載如何解析本地名稱。
  • DNS 安全性: 如何阻擋惡意 DNS 查詢、防止 DNS 外洩,以及啟用基於 FQDN 的網路過濾功能。

誰需要這篇文章

如果你符合以下情況,請閱讀這篇文章:

  • 部署私有端點(如果適用於你的情況),並需要工作負載來正確解析 privatelink.* DNS 區域。
  • 運作混合環境,讓本地系統必須解析 Azure 私有名稱(或反之)。
  • 使用 Azure 防火牆,並在網路規則中使用以 FQDN 為基礎的篩選。
  • 想在解析層阻擋對已知惡意網域的 DNS 查詢。
  • 管理多VNet環境,集中式DNS解析簡化作業。
  • 規劃 DNS 架構以支援擁有共享服務的樞紐輻射拓撲。

隨即轉移重點:在移轉期間保留現有的 DNS 命名行為。 在本地 DNS 與 Azure 之間使用雙向轉發,設定條件轉發器以支援分割視界解決,並將 Azure 私有名稱放在 私用 DNS 區域,讓應用程式保持現有的 DNS 設定。

現代化焦點:在重新規劃工作負載平台時,集中管理名稱解析。 使用 Azure DNS Private Resolver 搭配轉發規則集進行混合解析,將 私用 DNS 區域與私人端點整合以提供 PaaS 服務,並啟用 Azure 防火牆 DNS 代理,讓基於 FQDN 的規則與 DNS 解析共用一條快取路徑。

跨雲焦點: 在工作負載遷移前,先規劃跨雲端的 DNS 切換。 使用 Azure DNS Private Resolver 進行跨雲名稱解析,使用 AWS Route 53 Resolver 或 Google Cloud DNS 設定條件轉發,並在切換前降低 TTL 值以降低快取過期風險。

Azure 服務與功能

下表說明 Azure 在 DNS 安全與私有名稱解析中所涉及的服務與功能。

服務 / 特色 Purpose 關鍵能力 何時使用
Azure DNS (public zones) 公有網域名稱的權威主機 全域任播網路、Azure RBAC 整合、Azure 資源的別名記錄 你擁有一個公有領域,想在 Azure 中以高可用性來托管 DNS 紀錄。
Azure 私人 DNS 區域 在不對外公開的情況下於虛擬網路內進行名稱解析 VNet 連結、虛擬機主機名稱自動註冊、私有連結區域主機 Azure 工作負載的內部名稱解析。 私有端點 DNS 整合所必需。
Azure DNS 私用解析器 Azure 與外部網路之間的 DNS 轉發 入站端點(本地端→ Azure解析)、出站端點(Azure →本地轉發)、轉發規則集 混合環境需要雙向 DNS 解析,卻不需要部署自訂 DNS 虛擬機。
Azure 防火牆 DNS proxy 集中式 DNS 攔截用於 FQDN 過濾 快取 DNS 回應、啟用基於 FQDN 的網路規則,並為 spoke VNet 提供單一 DNS 端點 您已部署 Azure 防火牆,且需要在網路規則中使用 FQDN 篩選。 這是穩定 FQDN 解析度所必需的。
DNS 安全政策 DNS 層的威脅防護 封鎖使用 Microsoft 威脅情報來源解析已知惡意網域 你要防止工作負載連接到命令與控制或惡意軟體散布的網域。

私人 DNS 區域概念

私用 DNS 區域提供連結虛擬網路的名稱解析,且不會將紀錄暴露給網際網路。 關鍵行為:

  • VNet 連結: 你可以將一個私有 DNS 區域連結到多個 VNet。 連結 VNet 中的所有資源都能解析該區域內的紀錄。
  • 自動登記:當 VNet 連結啟用時,Azure 會自動為部署在該 VNet 中的虛擬機器建立 A 紀錄。 Azure 在你解除配置或刪除虛擬機時會移除紀錄。 自動註冊只適用於虛擬機(主要網卡)。 VNet 只能自動註冊到一個私人 DNS 區域,但你可以將多個 VNet 連結到同一區域。
  • 私人端點 DNS:透過私有端點存取的 Azure 服務需要特定的 privatelink DNS 區域(例如 privatelink.blob.core.windows.net Azure Blob 儲存體)。 若沒有正確的區域,用戶端會解析公有 IP 而非私有端點位址。

DNS 私有解析器架構

Azure DNS Private Resolver 取代了混合轉發情境中自訂 DNS 虛擬機的需求。 下圖展示了從本地端經由 Azure DNS Private Resolver 到私人端點 IP 位址的混合 DNS 解析流程。

圖示顯示從本地端經由 Azure DNS Private Resolver 進站端點,到私人 DNS 區域及私人端點 IP 位址的混合 DNS 解析流程。

解析器使用兩種端點類型:

  • 入站端點: 提供一個 IP 位址,供本地 DNS 伺服器作為條件轉發器鎖定。 Azure DNS 會解決寄往該 IP 的查詢(包括連結的 私用 DNS 區域)。 需要一個委派給 Microsoft.Network/dnsResolvers 的專用子網路。
  • 出站端點:允許 Azure 工作負載將 DNS 查詢轉發至本地 DNS 伺服器、其他雲端服務提供者或外部解析器。 也需要專用子網路。 附加於出站端點的轉發規則集定義了要轉發哪些網域後綴以及使用哪些目標 DNS 伺服器。

Important

入站與出站端點各自需要專屬的子網。 你無法在這些子網路中部署其他資源。 連結至轉送規則集的 VNet 不需要與解析器 VNet 建立對等互連。 規則集連結可獨立運作,不受 VNet 對等互連影響。

如何選擇

請使用以下決策樹,為您的環境選擇合適的 DNS 元件。

決策樹

  1. 你有用私有端點嗎?

    • 是 → 使用適當的 privatelink.* 區域名稱部署私人 DNS 區域。 將區域連結至需要解析私人端點位址的 VNet。
  2. 本地系統需要解析 Azure 私有名稱嗎?

    • 是的,→部署 DNS 私有解析器並設置一個入站端點。 在本地設置 DNS 伺服器,並設置條件轉發器指向入站端點 IP。
  3. Azure 工作負載需要解析本地的名稱嗎?

    • 是 → 部署具有一個輸出端點的 DNS 私用解析器。 建立本地網域後綴的轉發規則集(例如, corp.contoso.com)。
  4. 你有部署 Azure 防火牆 並且需要在網路規則中加入 FQDN 過濾嗎?

    • 是的,→啟用防火牆的 DNS 代理。 設定 spoke 虛擬機使用防火牆的私有 IP 作為 DNS 伺服器。
  5. 你想封鎖對已知惡意網域的 DNS 查詢嗎?

    • 是 → 在目標 VNet 中啟用基於 Microsoft 威脅情報來源的 DNS 安全性原則。

常見模式

樣式 元件 應用案例
僅限私人端點解析 私用 DNS 區域 + VNet 連結 純雲端工作負載透過私有端點存取 PaaS 服務。 沒有混合式連線。
混合雙向解析 私用 DNS 區域 + DNS 私用解析程式(輸入 + 輸出) 內部部署解析 Azure 私人名稱;Azure 解析內部部署 Active Directory 名稱。
集中式集線器 DNS 位於 hub VNet 中的 DNS 私人解析器 + 連結至輪輻的轉送規則集 中心輻射式拓撲,所有 DNS 解析路徑皆經由中樞,以便進行集中式記錄與控制。
防火牆介導 DNS Azure 防火牆 DNS proxy + 私用 DNS zones 使用 Firewall 進行 FQDN 過濾的環境。 防火牆會攔截 DNS,讓網路規則中的 FQDN 到 IP 解析保持一致。
完整安全性堆疊 所有上述選項,加上 DNS 安全政策 企業環境需要混合解析、FQDN 過濾及 DNS 層威脅防護。

私有端點 DNS 區域範例

下表列出常見的 Azure 服務及其所需的 私用 DNS 區域名稱。

Azure 服務 私人 DNS 區域名稱
Azure Blob 儲存體 privatelink.blob.core.windows.net
Azure SQL Database privatelink.database.windows.net
Azure Key Vault privatelink.vaultcore.azure.net
Azure 檔案儲存體 privatelink.file.core.windows.net
Azure Container Registry privatelink.azurecr.io
Azure Cosmos DB (SQL API) privatelink.documents.azure.com

Note

欲了解所有 Azure 服務的完整 私用 DNS 區域名稱清單,請參見 Azure Private Endpoint DNS 配置

先決條件

在實施 DNS 安全與私有名稱解析之前,請確保具備:

  • 虛擬網路: 所有 DNS 功能皆可在虛擬網路內或跨網路運作。 請參閱 虛擬網路與子網 以獲得基礎指引。 (F1)
  • 混合情境下的網路連接: DNS Private Resolver 的入站端點需要從本地(ExpressRoute 或 VPN)到 resolver VNet 的網路可達性。
  • DNS私有解析器的專用子網路: 每個端點(入站與出站)都需要自己的子網,並委派給 Microsoft.Network/dnsResolvers。 每個端點子網路至少應規劃為 /28。
  • 已部署的私人端點(若使用 privatelink 區域):僅供 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 監視器 中監控 DNS 查詢模式,以偵測異常,例如過長的子網域標籤、對單一網域的高查詢量,或對最近註冊網域的查詢。

DNS 安全性原則

Microsoft Threat Intelligence 的 DNS 安全政策會在 VNet 層級阻止已知惡意網域的 DNS 解析。 當工作負載嘗試解析由 Microsoft 安全回應中心(MSRC)標記的網域時,該政策會在任何網路連線發生前阻止解析。 此控制獨立於 Azure 防火牆 運作,且不需更改個別工作負載設定。

主要特性:

  • 使用來自 MSRC 的 Microsoft 威脅情報資料。
  • 它在 DNS 解析層運作:阻擋查詢,而非流量。
  • 依 VNet 套用:在所有包含可存取網際網路的工作負載的 VNet 上啟用。
  • 與防火牆 FQDN 過濾不同:DNS 安全政策能全域封鎖惡意網域,無需部署防火牆。

防火牆 DNS 代理與 FQDN 過濾

Azure 防火牆 DNS Proxy 是以 FQDN 為基礎的網路規則篩選所需的必要功能。 若沒有 DNS 代理,客戶端虛擬機的 DNS 請求解析時間可能與防火牆解析度不同,導致 IP 與 FQDN 對應不一致及規則不匹配。

啟用 DNS 代理時:

  • 設定 spoke 虛擬機使用防火牆的私有 IP 作為 DNS 伺服器。
  • 防火牆代表用戶端解決查詢並快取結果(正快取最多 1 小時,負快取最多 30 分鐘)。
  • FQDN-to-IP 映射每15秒刷新一次。 防火牆會在 15 分鐘後移除過時的條目。
  • 應用規則(L7)使用伺服器名稱指示(SNI)進行 FQDN 匹配,且不需 DNS 代理。 網路規則(L4)要求 DNS 代理來進行 FQDN 解析。
  • 網路規則中的 FQDN 過濾僅支援精確的網域匹配。 網路規則中的 FQDN 不支援萬用字元模式。 使用應用程式規則來進行 FQDN 萬用字碼匹配。

Note

如果所有已設定的上游 DNS 伺服器都無法使用,Azure 防火牆 DNS 代理不會退回到其他解決器。 DNS 解析會失敗,直到至少一台上游伺服器恢復。 在上游配置中規劃 DNS 伺服器的冗餘。

注意事項

如果你啟用 DNS 代理,但沒有設定客戶端虛擬機將防火牆當作 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 區域,尤其是由 Private Endpoint 支援的服務。
  • 在遷移過程中,使用別名記錄或 CNAME 映射來保留應用程式的 DNS 行為,而非更改用戶端解析器的設定。

將 DNS 設計重點現代化

  • 使用 Azure DNS 私人解析器,並在各個輪輻虛擬網路之間共用轉送規則集,以將 DNS 解析集中在中樞中。
  • 將 私用 DNS 區域連結至各個由 Private Endpoint 支援的 PaaS 服務,讓已重新平台化的工作負載能自動解析 privatelink 名稱。
  • 啟用 Azure 防火牆 DNS 代理,讓基於 FQDN 的網路規則和工作負載 DNS 解析使用一致且快取的解析路徑。
  • 在採用基礎結構即程式碼的同時,使用自動註冊及私人 DNS 區域上的 Azure RBAC,以減少手動管理 DNS 記錄的需求。

跨雲 DNS 設計重點

  • 使用 Azure DNS Private Resolver 作為跨雲名稱解析的轉發控制點。
  • 為每個必須跨環境解析的私有命名空間,配置 Azure 私有 DNS、AWS Route 53 Resolver 與 Google Cloud DNS 之間的條件轉發。
  • 分階段規劃 DNS 切換:降低 TTL 值、驗證轉發路徑、變更 CNAME 或 A 紀錄,以及監控查詢延遲與快取行為。
  • 在連接平台支援的權威區域套用 DNSSEC,並記錄私有解析路徑無法驗證 DNSSEC 的地方。

瞭解更多資訊

下一步

Tip

自己探索? 回到 總覽導航 器,依能力尋找你的下一篇文章。

您的隨即轉移之旅的下一步:

控制外撥網路流量:集中所有透過 Azure 防火牆 的外撥通訊,並關閉預設的外撥存取權限。

接下來的現代化旅程:

設定生產監控:啟用 網路監看員 和 Network 效能監視器,從第一天起就準備好生產準備。

接下來的跨雲端旅程:

保護您的跨雲中繼路徑:在您的安全虛擬樞紐部署 Azure 防火牆,以檢查所有跨雲、分支及網際網路流量。