共用方式為


使用 Azure 入口網站透過 Azure Firewall DNAT 過濾入站的網際網路流量

你可以設定 Azure 防火牆的目的地網路位址轉換(DNAT),將入站網路流量轉換並過濾到你的子網。 當您設定 DNAT 時,NAT 規則集合動作會設為 [DNAT]。 然後,NAT 規則集合中的每個規則都可用來將防火牆的公用或私人IP位址和埠轉譯為私人IP位址和埠。 DNAT 規則會隱含地新增對應的網路規則,以允許已轉譯的流量。 出於安全考量,請新增特定來源以允許 DNAT 存取網路,並避免使用萬用字組。 若要深入了解 Azure 防火牆規則處理邏輯,請參閱 Azure 防火牆規則處理邏輯

附註

本文使用傳統防火牆規則來管理防火牆。 慣用方法為使用防火牆原則。 若要使用防火牆原則完成此程式,請參閱 教學課程:使用 Azure 入口網站以 Azure 防火牆原則 DNAT 篩選輸入因特網流量

先決條件

如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶

建立資源群組

  1. 登入 Azure 入口網站
  2. 在 Azure 入口網站首頁上選取 [資源群組] ,然後選取 [建立]
  3. 在 [訂用帳戶] 中,選取您的訂用帳戶。
  4. 在 [資源群組] 中,輸入 [RG-DNAT-Test]
  5. 針對 [區域],選取區域。 您建立的所有其他資源都必須位於相同區域。
  6. 選取 [檢閱 + 建立]
  7. 選取 [建立]

設定網路環境

在本文中,您會建立兩個對等互連的 VNet:

  • VN-Hub - 防火牆位於此虛擬網路中。
  • VN-Spoke - 工作負載伺服器位於此虛擬網路中。

首先建立 Vnet,然後將其對等互連。

建立中樞虛擬網路

  1. 從 Azure 入口網站首頁,選取 [所有服務]
  2. 在 [網路] 底下,選取 [虛擬網路]
  3. 選取 [建立]
  4. [資源群組] 中,選取 [RG-DNAT-Test]
  5. 在 [名稱] 中,輸入 VN-Hub
  6. [區域] 中,選取您先前使用的相同區域。
  7. 選取 [下一步]
  8. 在 [安全性] 索引標籤上,選取 [下一步]
  9. 針對 [IPv4 位址空間],請接受預設的 10.0.0.0/16
  10. 在 [子網路] 下,選取 [預設]
  11. 針對 [子網路範本],選取 [Azure 防火牆]

防火牆位於此子網中,子網名稱 必須是 AzureFirewallSubnet。

附註

AzureFirewallSubnet 子網路的大小是 /26。 如需有關子網路大小的詳細資訊,請參閱 Azure 防火牆的常見問題集

  1. 選取 [儲存]
  2. 選取 [檢閱 + 建立]
  3. 選取 [建立]

建立輪輻虛擬網路

  1. 從 Azure 入口網站首頁,選取 [所有服務]
  2. 在 [網路] 底下,選取 [虛擬網路]
  3. 選取 [建立]
  4. [資源群組] 中,選取 [RG-DNAT-Test]
  5. 在 [名稱] 中,輸入 VN-Spoke
  6. [區域] 中,選取您先前使用的相同區域。
  7. 選取 [下一步]
  8. 在 [安全性] 索引標籤上,選取 [下一步]
  9. 針對 [IPv4 位址空間],編輯預設值並輸入 192.168.0.0/16
  10. 在 [子網路] 下,選取 [預設]
  11. 針對子網 名稱,輸入 SN-Workload
  12. 針對 [起始位址],輸入 192.168.1.0
  13. 針對 [子網路大小],選取 [/24]
  14. 選取 [儲存]
  15. 選取 [檢閱 + 建立]
  16. 選取 [建立]

將 VNet 對等互連

現在對等互連兩個 VNet。

  1. 選取 [VN-Hub] 虛擬網路。
  2. 在 [設定] 底下,選取 [對等互連]
  3. 選取 [新增]
  4. [此虛擬網路] 底下,針對 [對等互連連結名稱],輸入 Peer-HubSpoke
  5. [遠端虛擬網路] 底下,針對 [對等互連連結名稱],輸入 Peer-SpokeHub
  6. 針對虛擬網路選取 [VN-Spoke]
  7. 接受其他所有預設值,然後選取 [新增]

建立虛擬機器

建立工作負載虛擬機器,並將它放在 SN-Workload 子網路中。

  1. 從 Azure 入口網站功能表選取 [建立資源]
  2. 熱門市集產品中,選擇 Ubuntu Server 22.04 LTS

基本概念

  1. 在 [訂用帳戶] 中,選取您的訂用帳戶。
  2. [資源群組] 中,選取 [RG-DNAT-Test]
  3. 針對 [虛擬機器名稱],輸入 Srv-Workload
  4. 針對 [區域],選取您先前使用的相同位置。
  5. 映像檔,選擇 Ubuntu Server 22.04 LTS - x64 Gen2
  6. 尺寸中,選擇Standard_B2s
  7. 對於驗證類型,請選取 SSH public key
  8. 請輸入使用者名稱 azureuser
  9. 對於 SSH 公鑰來源,請選擇 產生新金鑰對
  10. 對於 金鑰對名稱,請輸入 Srv-Workload_key
  11. 選取 [下一步:磁碟]

磁碟

  1. 選取 [下一步:網路功能]

網路功能

  1. 針對 [虛擬網路],選取 [VN-Spoke]
  2. 在 [子網路] 中,選取 [SN-Workload]
  3. 在 [公用 IP] 中,選取 [無]
  4. 針對 [公用輸入連接埠],選取 [無]
  5. 保留其他預設設定,然後選取 [下一步:管理]

管理

  1. 選取 [下一步:監視]

監視

  1. 針對 [開機診斷],選取 [停用]
  2. 選取 [檢閱 + 建立]

檢閱 + 建立

檢閱摘要,然後選取 [建立]。 此過程需要幾分鐘的時間才能完成。

  1. 「產生新金鑰對」 對話框中,選擇 下載私鑰並建立資源。 將金鑰檔案存為 Srv-Workload_key.pem

部署完成之後,請注意虛擬機的私人IP位址。 您稍後在設定防火牆時需要此IP位址。 選取虛擬機名稱,移至 [概 ],然後在 [ 網络] 底下記下私人IP位址。

附註

對於未獲指派公用 IP 位址或位於內部基本 Azure Load Balancer 後端集區中的 VM,Azure 會提供預設輸出存取 IP。 預設輸出存取 IP 機制能提供無法自行設定的輸出 IP 位址。

發生下列其中一個事件時,會停用預設輸出存取 IP:

  • 公用 IP 位址會指派給 VM。
  • 無論有沒有輸出規則,都會將 VM 放在標準負載平衡器的後端集區中。
  • Azure NAT 閘道資源會指派給 VM 的子網路。

您在彈性協調流程模式中使用虛擬機器擴展集建立的 VM 沒有預設輸出存取。

如需 Azure 中輸出連線的詳細資訊,請參閱 Azure 中的預設對外存取針對輸出連線,使用來源網路位址轉譯 (SNAT)

安裝 Web 伺服器

使用 Azure 入口網站的執行指令功能,在虛擬機器上安裝網頁伺服器。

  1. 在 Azure 入口網站中導航到 Srv-Workload 虛擬機。

  2. 操作中選擇 執行指令

  3. 選擇 RunShellScript

  4. 執行指令腳本 視窗中,貼上以下腳本:

    sudo apt-get update
    sudo apt-get install -y nginx
    echo "<h1>Azure Firewall DNAT Demo - $(hostname)</h1>" | sudo tee /var/www/html/index.html
    
  5. 選擇 執行

  6. 等劇本完成。 輸出結果應該會顯示 Nginx 成功安裝。

部署防火牆

  1. 從入口網站首頁選取 [建立資源]

  2. 搜尋 [防火牆],然後選取 [防火牆]

  3. 選取 [建立]

  4. 在 [建立防火牆] 頁面上,使用下表來設定防火牆:

    設定
    訂用帳戶 <您的訂用帳戶>
    資源群組 選取 RG-DNAT-Test
    名稱 FW-DNAT-test
    區域 選取先前使用的相同位置
    防火牆 SKU Standard
    防火牆管理 使用防火牆規則 (傳統) 管理此防火牆
    選擇虛擬網路 使用現有的:VN-Hub
    公用 IP 位址 新增,名稱: fw-pip
  5. 接受其他預設值,然後選取 [檢閱 + 建立]

  6. 檢閱摘要,然後選取 [建立 ] 以部署防火牆。

    此過程需要幾分鐘的時間才能完成。

  7. 部署完成之後,請移至 RG-DNAT-Test 資源群組,然後選取 FW-DNAT-test 防火牆。

  8. 請注意防火牆的私人和公用 IP 位址。 您稍後會在建立預設路由和 NAT 規則時使用這些規則。

建立預設路由

針對 SN-Workload 子網,設定輸出預設路由以通過防火牆。

重要事項

您不需要在目的地子網中設置返回防火牆的明確路由。 Azure 防火牆是具狀態服務,並會自動處理封包和工作階段。 建立此路由會導致非對稱路由環境、中斷具狀態會話邏輯,並導致封包和連線中斷。

  1. 從 Azure 入口網站首頁,選取 [建立資源]

  2. 搜尋並選取 [路由表]

  3. 選取 [建立]

  4. 在 [訂用帳戶] 中,選取您的訂用帳戶。

  5. [資源群組] 中,選取 [RG-DNAT-Test]

  6. 針對 [區域],選取先前使用的相同區域。

  7. 在 [名稱] 中,輸入 RT-FWroute

  8. 選取 [檢閱 + 建立]

  9. 選取 [建立]

  10. 選取 [前往資源]

  11. 選取 [子網路],然後選取 [建立關聯]

  12. 針對 [虛擬網路],選取 [VN-Spoke]

  13. 在 [子網路] 中,選取 [SN-Workload]

  14. 選取 [確定]

  15. 選取 [路由],然後選取 [確定]

  16. 在 [路由名稱] 中,鍵入 FW-DG

  17. 針對 [目的地類型],選取 [IP 位址]

  18. 在 [目的地 IP 位址/CIDR 範圍] 中,輸入 [0.0.0.0/0]

  19. 在 [下一個躍點類型] 中,選取 [虛擬設備]

    Azure 防火牆是受控服務,但選取虛擬設備會在此情況下運作。

  20. 針對 [下一個躍點位址],輸入您先前記下的防火牆私人 IP 位址。

  21. 選取 [新增]

設定 DNAT 規則

此規則允許來自網際網路的 HTTP 入站流量透過防火牆抵達網頁伺服器。

  1. 開啟 RG-DNAT-Test 資源群組,然後選取 FW-DNAT-test 防火牆。
  2. [FW-DNAT-test] 頁面的 [設定] 底下,選取 [規則 (傳統)]
  3. 選取 [NAT 規則集合] 索引標籤。
  4. 選取 [新增 NAT 規則集合]
  5. 對於「名稱」,輸入 web-access
  6. 在 [優先順序] 中,鍵入 200
  7. 規則中,為 名稱輸入 http-dnat
  8. 在 [通訊協定] 中,選取 [TCP]
  9. 針對 [來源類型],選取 [IP 位址]
  10. 對於 來源,輸入 * 允許任何來源的流量。
  11. 對於 目的地位址,請輸入防火牆的公共 IP 位址。
  12. 對於目的地連接埠,請輸入 80
  13. 已轉譯的位址,輸入 Srv-Workload 私人 IP 位址。
  14. 轉送埠輸入80
  15. 選取 [新增]

測試防火牆

  1. 打開網頁瀏覽器,並導航到防火牆的公共 IP 位址:

    http://<firewall-public-ip>
    

    你應該會看到網頁顯示「Azure Firewall DNAT Demo - Srv-Workload」。

  2. 此程序確認 DNAT 規則成功將防火牆公共 IP 位址的 HTTP 流量轉換為網頁伺服器的私人 IP 位址。

清除資源

您可以保留防火牆資源供下一個教學課程使用,若不再需要,則可刪除 RG-DNAT-Test 資源群組以刪除所有防火牆相關資源。

後續步驟

接下來,您可以監視 Azure 防火牆記錄。

教學課程:監視 Azure 防火牆記錄