教學:透過 Azure 入口網站部署並設定 Azure 防火牆與政策

控制傳出網路存取是整體網路安全性計畫的重要部分。 例如,你可能想限制網站的存取權限。 或者,限制可存取的輸出 IP 位址和連接埠。

你可以透過使用 Azure 防火牆和防火牆政策來控制來自 Azure 子網的外撥網路存取。 透過使用 Azure Firewall 和防火牆政策,您可以設定:

  • 應用程式規則,用以定義可從子網路存取的完整網域名稱 (FQDN)。
  • 網路規則,用以定義來源位址、通訊協定、目的地連接埠和目的地位址。

當您將網路流量路由傳送到防火牆作為子網路預設閘道時,網路流量必須遵守設定的防火牆規則。

在這個教學中,你會建立一個簡化的單一虛擬網路(VNet),包含兩個子網,方便部署。

  • AzureFirewallSubnet - 防火牆位於此子網路中。
  • Workload-SN - 工作負載伺服器位於此子網路中。 此子網路的網路流量會通過防火牆。

顯示防火牆網路基礎結構的圖表。

在生產部署時,使用 樞紐輻射模式,防火牆放在自己的 VNet 中。 工作負載伺服器位於相同區域中的對等互連 VNet,其中包含一個或多個子網路。

在本教學課程中,您會了解如何:

  • 設定測試網路環境
  • 部署防火牆與防火牆原則
  • 建立預設路由
  • 設定應用程式規則以允許存取 www.google.com
  • 設定允許存取外部 DNS 伺服器的網路規則
  • 設定 NAT 規則,允許對測試伺服器進行 HTTP 輸入存取
  • 測試防火牆

如果你願意,可以用 Azure PowerShell 完成這個程序。

先決條件

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

設定網路

首先,建立資源群組以包含部署防火牆所需的資源。 接著建立虛擬網路、子網路與測試伺服器。

建立資源群組

資源群組包含教學課程的所有資源。

  1. 登入 Azure 入口網站

  2. 在 Azure 入口網站選單中,選擇 資源群組 ,或從任一頁面搜尋並選擇 資源群組 ,然後選擇 建立。 輸入或選取下列值:

    設定
    訂用帳戶 選取 Azure 訂用帳戶。
    資源群組 輸入 Test-FW-RG
    區域 選取區域。 您建立的所有其他資源都必須在相同區域中。
  3. 選擇檢閱 + 建立>建立

建立 VNet

此 VNet 有兩個子網。

附註

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

  1. 在 Azure 入口網站選單或 從 Home 選單,選擇 建立資源,搜尋 虛擬網路,然後選擇 建立

  2. 輸入或選取下列值:

    設定
    訂用帳戶 選取 Azure 訂用帳戶。
    資源群組 選取 Test-FW-RG
    名稱 輸入 Test-FW-VN
    區域 選取您先前使用的相同位置。
  3. 再選 兩次「下一步 」即可進入 IP 位址 標籤。

  4. IPv4 位址空間,接受預設值 10.0.0.0/16

  5. 在 [子網路] 下,選取 [預設]。 在 編輯子網路 面板,將 子網目的 設為 Azure Firewall

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

  6. 對於 起始位址,輸入 10.0.1.0,然後選擇 儲存

  7. 選擇 新增子網路 並輸入以下數值,然後選擇 新增

    設定
    子網路名稱 Workload-SN
    起始位址 10.0.2.0/24
  8. 選擇檢閱 + 建立>建立

部署 Azure Bastion

部署 Azure Bastion Developer edition 以安全連接 Srv-Work 虛擬機進行測試。

  1. 在入口網站頂端的搜尋框中輸入 Bastion ,並從結果中選擇 堡壘 。 選擇 建立 並輸入以下數值:

    設定
    項目詳細數據
    訂用帳戶 選取 Azure 訂用帳戶。
    資源群組 選取 Test-FW-RG
    實例詳細數據
    名稱 進入Test-Bastion
    區域 選取您先前使用的相同位置。
    選擇 開發者
    虛擬網路 選擇測試-FW-VN。
    子網路 AzureBastionSubnet 會自動建立,位址空間為 10.0.0.0/26
  2. 選擇檢閱 + 建立>建立

    部署需要數分鐘的時間才能完成。

建立虛擬機器

建立工作負載虛擬機並將其置於 Workload-SN 子網。

  1. 在入口網站頂端的搜尋框中輸入 虛擬機,選擇 虛擬機,然後選擇 建立>虛擬機

  2. 為虛擬機器輸入或選取下列值:

    設定
    項目詳細數據
    訂用帳戶 選取 Azure 訂用帳戶。
    資源群組 選取 Test-FW-RG
    實例詳細數據
    虛擬機器名稱 輸入 Srv-Work
    區域 選取您先前使用的相同位置。
    可用性選項 選擇選項「不需要基礎結構備援」
    安全性類型 選取 [標準]。
    影像 Select Ubuntu Server 24.04 LTS -x64 Gen2
    大小 選取虛擬機器大小。
    系統管理員帳戶
    使用者名稱 輸入azureuser
    SSH 公開金鑰來源 選取 [產生新的金鑰組]
    金鑰組名稱 輸入Srv-Work_key
  3. 入站埠規則下,將 公共入站埠 設為

  4. 接受其他預設選項,並在 網路 標籤中確認已選擇 Test-FW-VN / 工作負載-SN且公共 IPNone

  5. 選擇檢閱 + 建立>建立。 當提示時,選擇 下載私鑰,建立資源 並儲存金鑰檔案。

  6. 部署完成後,記錄 Srv-Work 的私有 IP 位址以備後續使用。

安裝網頁伺服器

連接虛擬機並安裝網頁伺服器進行測試。

  1. Test-FW-RG 資源群組中,選擇 Srv-Work 虛擬機器。

  2. 選擇 Operations>Run 指令>RunShellScript,輸入以下指令,然後選擇 執行

    sudo apt-get update
    sudo apt-get install -y nginx
    echo "<html><body><h1>Azure Firewall DNAT Test</h1><p>If you can see this page, the DNAT rule is working correctly!</p></body></html>" | sudo tee /var/www/html/index.html
    
  3. 等劇本成功完成。

部署防火牆與原則

將防火牆部署到虛擬網路中。

  1. 在 Azure 入口網站選單或 從 Home 選單,選擇 建立資源,搜尋 防火牆,然後選擇 建立

  2. 建立防火牆時,請使用以下表格來設定防火牆:

    設定
    項目詳細數據
    訂用帳戶 選取 Azure 訂用帳戶。
    資源群組 選取 Test-FW-RG
    實例詳細數據
    名稱 輸入 Test-FW01
    區域 選取您先前使用的相同位置。
    防火牆 SKU 選取 [標準]。
    防火牆管理 選取 [使用防火牆原則管理此防火牆]
    防火牆原則 選取新增,然後輸入 fw-test-pol
    選取您先前使用的相同區域。 選取確定
    選擇虛擬網路 選取使用現有項目,然後選取 Test-FW-VN忽略關於原力隧道的警告。 該警告會在後續步驟中解決.
    公用 IP 位址 選取新增,然後在名稱輸入 fw-pip。 選取確定
  3. 清除啟用防火牆管理網卡的勾選框,接受其他預設值,然後選擇檢視 + 建立,然後建立

    這個流程需要幾分鐘才能部署。

  4. 部署結束後,前往 Test-FW-RG,選擇 Test-FW01 防火牆,並記錄私有與公網 IP 位址以供日後使用。

建立預設路由

Workload-SN 子網路,設定傳出預設路由以透過防火牆。

  1. 搜尋並選擇 路由表,選擇 建立,並輸入以下數值:

    設定
    項目詳細數據
    訂用帳戶 選取 Azure 訂用帳戶。
    資源群組 選取 Test-FW-RG
    實例詳細數據
    名稱 輸入 Firewall-route
    區域 選取您先前使用的相同位置。
  2. 選擇檢閱 + 建立>建立

在部署完成後,選取 [前往資源]

  1. 防火牆路由 選區,在 設定中選擇 子網>關聯

  2. 虛擬網路選擇 Test-FW-VN,子網路選擇 Workload-SN。 選取確定

  3. 選擇「新增>」,並輸入以下數值:

    設定
    路線名稱 fw-dg
    目的地類型 IP 位址
    目的地 IP 位址/CIDR 範圍前綴 0.0.0.0/0
    下一個躍點類型 虛擬設備
    下一個跳點位址 你之前提過的防火牆私有 IP 位址

    附註

    Azure 防火牆實際上是受管理的服務,但虛擬設備可在此情況下運作。

  4. 選取新增

設定應用程式規則

此應用規則允許對 www.google.com 的外發存取。

  1. 開啟 Test-FW-RG 資源群組,並選取 fw-test-pol 防火牆原則。

  2. 設定>規則中,選擇「應用程式規則>」,新增規則集合

  3. 輸入下列值:

    設定
    名稱 App-Coll01
    Priority 200
    規則集合動作 允許
    規則
    名稱 允許Google
    來源類型 IP 位址
    來源 10.0.2.0/24
    協定:埠 http,https
    目的地類型 FQDN
    目的地 www.google.com
  4. 選取新增

Azure 防火牆包含內建的規則集合,適用於依預設允許的基礎結構 FQDN。 這些 FQDN 是平台專用的,不能用於其他用途。 如需詳細資訊,請參閱基礎結構 FQDN

請等待應用程式規則部署完成後再繼續。

設定網路規則

此網路規則允許透過 53 埠(DNS)出站存取兩個 IP 位址。

  1. 選擇網路規則>,新增規則集合

  2. 輸入下列值:

    設定
    名稱 Net-Coll01
    Priority 200
    規則集合動作 允許
    規則集合群組 DefaultNetworkRuleCollectionGroup
    規則
    名稱 允許DNS系統
    來源類型 IP 位址
    來源 10.0.2.0/24
    通訊協定 UDP
    目的地連接埠 53
    目的地類型 IP 位址
    目的地 209.244.0.3,209.244.0.4 (由 CenturyLink 營運的公共 DNS 伺服器)
  3. 選取新增

請等網路規則部署完成後再繼續。

設定 DNAT 規則

此規則透過防火牆連接到 Srv-Work 虛擬機上的網頁伺服器。

  1. 選擇 DNAT 規則>新增規則集合

  2. 輸入下列值:

    設定
    名稱 HTTP
    Priority 200
    規則集合群組 DefaultDnatRuleCollectionGroup
    規則
    名稱 HTTP-NAT
    來源類型 IP 位址
    來源 *
    通訊協定 TCP
    目的地連接埠 80
    目的地 防火牆的公共 IP 位址
    已轉譯的類型 IP 位址
    已轉譯位址 Srv-Work 私人 IP 位址
    已轉譯連接埠 80
  3. 選取新增

變更 Srv-Work 網路介面的主要與次要 DNS 位址

為了在本教學課程中進行測試,請設定伺服器的主要與次要 DNS 位址。 這個設定並非一般 Azure 防火牆的要求。

  1. Test-FW-RG 資源群組中,選擇 Srv-Work 虛擬機的網路介面。
  2. 設定中,選擇 DNS 伺服器>自訂
  3. 輸入 209.244.0.3209.244.0.4 作為 DNS 伺服器,然後選擇 儲存
  4. 重新啟動 Srv-Work 虛擬機器。

測試防火牆

現在請測試防火牆,以確認其運作符合預期。

測試 DNAT 規則

  1. 在你本機電腦的網頁瀏覽器中,輸入 http://<firewall-public-ip-address>
  2. 你可以看到自訂網頁: Azure Firewall DNAT 測試。 這證明了 DNAT 規則確實有效。

測試應用程式與網路規則

使用 Azure Bastion 安全連接 Srv-Work 虛擬機並測試防火牆規則。

  1. Test-FW-RG 資源群組中,選擇 Srv-Work 虛擬機,然後選擇透過 Bastion 連接>

  2. 在堡壘頁面,輸入或選擇以下數值:

    設定
    驗證類型 本地檔案選擇 SSH 私鑰
    使用者名稱 輸入azureuser
    本地檔案 選擇 瀏覽 ,並選擇你在虛擬機建立時下載的 Srv-Work_key.pem 檔案。
  3. 選擇 連線

    一個新的瀏覽器分頁會開啟,並以 SSH 會話連接到 Srv-Work 虛擬機器。

  4. 在 SSH 會話中,輸入以下指令以測試 Google 存取權限:

    curl -I https://www.google.com
    

    你會看到成功的 HTTP 回應(200 OK),表示應用程式規則允許存取 Google。

  5. 現在測試 Microsoft 的存取權限,應該會被封鎖。 輸入:

    curl -I https://www.microsoft.com
    

    指令約 60 秒後逾時或失敗,表示防火牆正在阻擋存取。

現在你已經確認防火牆規則是有效的:

  • 你可以透過 DNAT 規則存取網頁伺服器。
  • 您可以瀏覽到允許的 FQDN,但無法瀏覽到其他任何 FQDN。
  • 你可以使用已設定的外部 DNS 伺服器來解析 DNS 名稱。

清除資源

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

後續步驟