你可以設定 Azure 防火牆的目的地網路位址轉換(DNAT),將入站網路流量轉換並過濾到你的子網。 當您設定 DNAT 時,NAT 規則集合動作會設為 [DNAT]。 然後,NAT 規則集合中的每個規則都可用來將防火牆的公用或私人IP位址和埠轉譯為私人IP位址和埠。 DNAT 規則會隱含地新增對應的網路規則,以允許已轉譯的流量。 出於安全考量,請新增特定來源以允許 DNAT 存取網路,並避免使用萬用字組。 若要深入了解 Azure 防火牆規則處理邏輯,請參閱 Azure 防火牆規則處理邏輯。
附註
本文使用傳統防火牆規則來管理防火牆。 慣用方法為使用防火牆原則。 若要使用防火牆原則完成此程式,請參閱 教學課程:使用 Azure 入口網站以 Azure 防火牆原則 DNAT 篩選輸入因特網流量。
先決條件
如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
建立資源群組
- 登入 Azure 入口網站。
- 在 Azure 入口網站首頁上選取 [資源群組] ,然後選取 [建立] 。
- 在 [訂用帳戶] 中,選取您的訂用帳戶。
- 在 [資源群組] 中,輸入 [RG-DNAT-Test] 。
- 針對 [區域],選取區域。 您建立的所有其他資源都必須位於相同區域。
- 選取 [檢閱 + 建立]。
- 選取 [建立]。
設定網路環境
在本文中,您會建立兩個對等互連的 VNet:
- VN-Hub - 防火牆位於此虛擬網路中。
- VN-Spoke - 工作負載伺服器位於此虛擬網路中。
首先建立 Vnet,然後將其對等互連。
建立中樞虛擬網路
- 從 Azure 入口網站首頁,選取 [所有服務]。
- 在 [網路] 底下,選取 [虛擬網路]。
- 選取 [建立]。
- 在 [資源群組] 中,選取 [RG-DNAT-Test]。
- 在 [名稱] 中,輸入 VN-Hub。
- 在 [區域] 中,選取您先前使用的相同區域。
- 選取 [下一步] 。
- 在 [安全性] 索引標籤上,選取 [下一步]。
- 針對 [IPv4 位址空間],請接受預設的 10.0.0.0/16。
- 在 [子網路] 下,選取 [預設]。
- 針對 [子網路範本],選取 [Azure 防火牆]。
防火牆位於此子網中,子網名稱 必須是 AzureFirewallSubnet。
附註
AzureFirewallSubnet 子網路的大小是 /26。 如需有關子網路大小的詳細資訊,請參閱 Azure 防火牆的常見問題集。
- 選取 [儲存]。
- 選取 [檢閱 + 建立]。
- 選取 [建立]。
建立輪輻虛擬網路
- 從 Azure 入口網站首頁,選取 [所有服務]。
- 在 [網路] 底下,選取 [虛擬網路]。
- 選取 [建立]。
- 在 [資源群組] 中,選取 [RG-DNAT-Test]。
- 在 [名稱] 中,輸入 VN-Spoke。
- 在 [區域] 中,選取您先前使用的相同區域。
- 選取 [下一步] 。
- 在 [安全性] 索引標籤上,選取 [下一步]。
- 針對 [IPv4 位址空間],編輯預設值並輸入 192.168.0.0/16。
- 在 [子網路] 下,選取 [預設]。
- 針對子網 名稱,輸入 SN-Workload。
- 針對 [起始位址],輸入 192.168.1.0。
- 針對 [子網路大小],選取 [/24]。
- 選取 [儲存]。
- 選取 [檢閱 + 建立]。
- 選取 [建立]。
將 VNet 對等互連
現在對等互連兩個 VNet。
- 選取 [VN-Hub] 虛擬網路。
- 在 [設定] 底下,選取 [對等互連]。
- 選取 [新增]。
- 在 [此虛擬網路] 底下,針對 [對等互連連結名稱],輸入 Peer-HubSpoke。
- 在 [遠端虛擬網路] 底下,針對 [對等互連連結名稱],輸入 Peer-SpokeHub。
- 針對虛擬網路選取 [VN-Spoke]。
- 接受其他所有預設值,然後選取 [新增]。
建立虛擬機器
建立工作負載虛擬機器,並將它放在 SN-Workload 子網路中。
- 從 Azure 入口網站功能表選取 [建立資源]。
- 在 熱門市集產品中,選擇 Ubuntu Server 22.04 LTS。
基本概念
- 在 [訂用帳戶] 中,選取您的訂用帳戶。
- 在 [資源群組] 中,選取 [RG-DNAT-Test]。
- 針對 [虛擬機器名稱],輸入 Srv-Workload。
- 針對 [區域],選取您先前使用的相同位置。
- 映像檔,選擇 Ubuntu Server 22.04 LTS - x64 Gen2。
- 在尺寸中,選擇Standard_B2s。
- 對於驗證類型,請選取 SSH public key。
- 請輸入使用者名稱 azureuser。
- 對於 SSH 公鑰來源,請選擇 產生新金鑰對。
- 對於 金鑰對名稱,請輸入 Srv-Workload_key。
- 選取 [下一步:磁碟]。
磁碟
- 選取 [下一步:網路功能]。
網路功能
- 針對 [虛擬網路],選取 [VN-Spoke]。
- 在 [子網路] 中,選取 [SN-Workload]。
- 在 [公用 IP] 中,選取 [無]。
- 針對 [公用輸入連接埠],選取 [無]。
- 保留其他預設設定,然後選取 [下一步:管理]。
管理
- 選取 [下一步:監視]。
監視
- 針對 [開機診斷],選取 [停用]。
- 選取 [檢閱 + 建立]。
檢閱 + 建立
檢閱摘要,然後選取 [建立]。 此過程需要幾分鐘的時間才能完成。
- 在 「產生新金鑰對」 對話框中,選擇 下載私鑰並建立資源。 將金鑰檔案存為 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 入口網站的執行指令功能,在虛擬機器上安裝網頁伺服器。
在 Azure 入口網站中導航到 Srv-Workload 虛擬機。
在 操作中選擇 執行指令。
選擇 RunShellScript。
在 執行指令腳本 視窗中,貼上以下腳本:
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選擇 執行。
等劇本完成。 輸出結果應該會顯示 Nginx 成功安裝。
部署防火牆
從入口網站首頁選取 [建立資源]。
搜尋 [防火牆],然後選取 [防火牆]。
選取 [建立]。
在 [建立防火牆] 頁面上,使用下表來設定防火牆:
設定 值 訂用帳戶 <您的訂用帳戶> 資源群組 選取 RG-DNAT-Test 名稱 FW-DNAT-test 區域 選取先前使用的相同位置 防火牆 SKU Standard 防火牆管理 使用防火牆規則 (傳統) 管理此防火牆 選擇虛擬網路 使用現有的:VN-Hub 公用 IP 位址 新增,名稱: fw-pip 接受其他預設值,然後選取 [檢閱 + 建立]。
檢閱摘要,然後選取 [建立 ] 以部署防火牆。
此過程需要幾分鐘的時間才能完成。
部署完成之後,請移至 RG-DNAT-Test 資源群組,然後選取 FW-DNAT-test 防火牆。
請注意防火牆的私人和公用 IP 位址。 您稍後會在建立預設路由和 NAT 規則時使用這些規則。
建立預設路由
針對 SN-Workload 子網,設定輸出預設路由以通過防火牆。
重要事項
您不需要在目的地子網中設置返回防火牆的明確路由。 Azure 防火牆是具狀態服務,並會自動處理封包和工作階段。 建立此路由會導致非對稱路由環境、中斷具狀態會話邏輯,並導致封包和連線中斷。
從 Azure 入口網站首頁,選取 [建立資源]。
搜尋並選取 [路由表]。
選取 [建立]。
在 [訂用帳戶] 中,選取您的訂用帳戶。
在 [資源群組] 中,選取 [RG-DNAT-Test]。
針對 [區域],選取先前使用的相同區域。
在 [名稱] 中,輸入 RT-FWroute。
選取 [檢閱 + 建立]。
選取 [建立]。
選取 [前往資源]。
選取 [子網路],然後選取 [建立關聯]。
針對 [虛擬網路],選取 [VN-Spoke]。
在 [子網路] 中,選取 [SN-Workload]。
選取 [確定]。
選取 [路由],然後選取 [確定]。
在 [路由名稱] 中,鍵入 FW-DG。
針對 [目的地類型],選取 [IP 位址]。
在 [目的地 IP 位址/CIDR 範圍] 中,輸入 [0.0.0.0/0] 。
在 [下一個躍點類型] 中,選取 [虛擬設備]。
Azure 防火牆是受控服務,但選取虛擬設備會在此情況下運作。
針對 [下一個躍點位址],輸入您先前記下的防火牆私人 IP 位址。
選取 [新增]。
設定 DNAT 規則
此規則允許來自網際網路的 HTTP 入站流量透過防火牆抵達網頁伺服器。
- 開啟 RG-DNAT-Test 資源群組,然後選取 FW-DNAT-test 防火牆。
- 在 [FW-DNAT-test] 頁面的 [設定] 底下,選取 [規則 (傳統)]。
- 選取 [NAT 規則集合] 索引標籤。
- 選取 [新增 NAT 規則集合]。
- 對於「名稱」,輸入 web-access。
- 在 [優先順序] 中,鍵入 200。
- 在 規則中,為 名稱輸入 http-dnat。
- 在 [通訊協定] 中,選取 [TCP]。
- 針對 [來源類型],選取 [IP 位址]。
- 對於 來源,輸入 * 允許任何來源的流量。
- 對於 目的地位址,請輸入防火牆的公共 IP 位址。
- 對於目的地連接埠,請輸入 80。
- 在已轉譯的位址,輸入 Srv-Workload 私人 IP 位址。
- 在轉送埠輸入80。
- 選取 [新增]。
測試防火牆
打開網頁瀏覽器,並導航到防火牆的公共 IP 位址:
http://<firewall-public-ip>你應該會看到網頁顯示「Azure Firewall DNAT Demo - Srv-Workload」。
此程序確認 DNAT 規則成功將防火牆公共 IP 位址的 HTTP 流量轉換為網頁伺服器的私人 IP 位址。
清除資源
您可以保留防火牆資源供下一個教學課程使用,若不再需要,則可刪除 RG-DNAT-Test 資源群組以刪除所有防火牆相關資源。
後續步驟
接下來,您可以監視 Azure 防火牆記錄。