分享方式:


教學課程:使用 Azure 入口網站建立包含 Web 應用程式防火牆的應用程式閘道

本教學課程說明如何使用 Azure 入口網站建立包含 Web 應用程式防火牆 (WAF) 的應用程式閘道。 WAF 會使用 OWASP 規則來保護您的應用程式。 這些規則包括防禦諸如 SQL 插入攻擊、跨網站指令碼攻擊,以及工作階段劫持等攻擊。 建立應用程式閘道之後,您要加以測試,確定它可正常運作。 您會使用 Azure 應用程式閘道,將接聽程式指派給連接埠、建立規則,以及將資源新增至後端集區,來將應用程式網路流量導向至特定資源。 為了簡單起見,本教學課程使用簡單的設定,包括公用前端 IP、在此應用程式閘道上裝載單一網站的基本接聽程式、用於後端集區的兩部 Linux 虛擬機器,以及基本的要求路由規則。

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

  • 建立已啟用 WAF 的應用程式閘道
  • 建立用來作為後端伺服器的虛擬機器
  • 建立儲存體帳戶並設定診斷
  • 測試應用程式閘道

Web 應用程式防火牆範例的圖表。

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱安裝 Azure PowerShell (部分機器翻譯)。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

必要條件

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

登入 Azure

登入 Azure 入口網站

建立應用程式閘道

  1. 在 Azure 入口網站的左側功能表上選取 [建立資源]。 [建立資源] 視窗隨即出現。

  2. 選取 [網络],然後在 [熱門 Azure 服務] 列表中選取 [應用程式閘道]。

[基本] 索引標籤

  1. 在 [基本] 索引標籤上,為下列應用程式閘道設定輸入這些值:

    • 資源群組:選取 myResourceGroupAG 作為資源群組。 如果資源群組不存在,請選取 [新建] 加以建立。

    • 應用程式閘道名稱:輸入 myAppGateway 作為應用程式閘道的名稱。

    • 階層:選取 [WAF V2]

    • WAF 原則:選取 [新建],輸入新原則的名稱,然後選取 [確定]。 這會建立具有受控核心規則集 (CRS) 的基本 WAF 原則。

      [建立新的應用程式閘道:基本] 索引標籤的螢幕快照。

  2. Azure 需要虛擬網路才能在您所建立的資源之間進行通訊。 您可以建立新的虛擬網路,或使用現有的虛擬網路。 在此範例中,您會在建立應用程式閘道的同時建立新的虛擬網路。 在不同的子網路中,建立應用程式閘道執行個體。 在此範例中,您會建立兩個子網:一個用於應用程式閘道,然後再為後端伺服器新增另一個子網。

    在 [設定虛擬網路] 底下,選取 [建立] 以建立新的虛擬網路。 在開啟的 [ 建立虛擬網络] 視窗中,輸入下列值來建立虛擬網路和子網:

    • 名稱:輸入 myVNet 以取得虛擬網路的名稱。

    • 地址空間 :接受 10.0.0.0/16 位址範圍。

    • 子網名稱(應用程式閘道 子網):[子網] 區域會顯示名為Default子網。 將此子網的名稱變更為 myAGSubnet,並將預設的 IPv4 位址範圍保留為 10.0.0.0/24
      應用程式閘道子網路只能包含應用程式閘道。 不允許任何其他資源。

      選取 [確定] 以關閉 [建立虛擬網路] 視窗並儲存虛擬網路設定。

      建立新的應用程式閘道:建立虛擬網路的螢幕快照。

  3. 在 [基本] 索引標籤上,接受其他設定的預設值,然後選取 [下一步:前端]

[前端] 索引標籤

  1. 在 [前端] 索引標籤上,確認 [前端 IP 位址類型] 已被設為 [公用]
    您可以根據自己的使用案例,將前端 IP 設定為公用或私人兩者。 在此範例中,您會選擇公用前端IP。

    注意

    針對應用程式閘道 v2 SKU,目前支援公用和私人兩者前端 IP 位址類型。 目前不支援私人前端 IP 設定。

  2. 針對 [公用 IP 位址] 選擇 [新增],然後針對公用 IP 位址名稱輸入 myAGPublicIPAddress,然後選取 [確定]

    建立新的應用程式閘道:前端的螢幕快照。

  3. 選取 [下一步:後端]

[後端] 索引標籤

後端集區用於將要求路由傳送至可為要求提供服務的後端伺服器。 後端集區可以由 NIC、虛擬機擴展集、公用 IP、內部 IP、完整功能變數名稱 (FQDN) 和多租使用者後端組成,例如 Azure App 服務。 在此範例中,您會使用應用程式閘道建立空的後端集區,然後稍後將後端目標新增至後端集區。

  1. 在 [後端] 索引標籤上,選取 [新增後端集區]

  2. 在隨即開啟的 [新增後端集區] 視窗中,輸入下列值以建立空的後端集區:

    • 名稱:輸入 myBackendPool 作為後端集區的名稱。
    • 新增不含目標的後端集區:選取 [是] 以建立不含目標的後端集區。 您將會在建立應用程式閘道之後再新增後端目標。
  3. 在 [新增後端集區] 視窗中,選取 [新增] 以儲存後端集區設定,並返回 [後端] 索引標籤。

    建立新的應用程式閘道:後端的螢幕快照。

  4. 在 [後端] 索引標籤上,選取 [下一步:設定]

設定索引標籤

在 [設定] 索引標籤上,您會連線至您使用路由規則所建立的前端和後端集區。

  1. 選取 [路由規則] 欄中的 [新增路由規則]

  2. 在隨即開啟的 [新增路由規則] 視窗中,針對 [規則名稱] 輸入 myRoutingRule

  3. 針對 [優先順序],輸入優先順序號碼。

  4. 路由規則需要接聽程式。 在 [新增路由規則] 視窗內的 [接聽程式] 索引標籤上,針對接聽程式輸入下列值:

    • 接聽程式名稱:輸入 myListener 作為接聽程式的名稱。

    • 前端IP通訊協定:選取 [公用 IPv4 ] 以選擇您為前端建立的公用IP。

      接受 [接聽程式] 索引標籤上其他設定的預設值,然後選取 [後端目標] 索引標籤以設定其餘的路由規則。

    顯示 [建立新的應用程式閘道:接聽程式] 的螢幕快照。

  5. 在 [後端目標] 索引標籤上,針對 [後端目標] 選取 [myBackendPool]

  6. 針對 [後端設定],選取 [新增] 建立新的後端設定。 此設定會決定路由規則的行為。 在開啟的 [新增後端設定] 視窗中,在 [後端設定名稱] 中輸入 myBackendSetting。 接收視窗中其他設定的預設值,然後選取 [新增] 返回至 [新增路由規則] 視窗。

    顯示 [建立新的應用程式閘道]、[後端] 設定的螢幕快照。

  7. 在 [新增路由規則] 視窗上,選取 [新增] 以儲存路由規則,並返回 [設定] 索引標籤。

    顯示 [建立新的應用程式閘道:路由規則] 的螢幕快照。

  8. 選取 [下一步:標籤],然後選取 [下一步:檢閱 + 建立]

[檢閱 + 建立] 索引標籤

檢閱 [檢閱 + 建立] 索引標籤上的設定,然後選取 [建立] 以建立虛擬網路、公用 IP 位址和應用程式閘道。 Azure 可能需要幾分鐘的時間才能建立應用程式閘道。

請等候部署成功完成後,再繼續進行至下一節。

新增後端伺服器子網

  1. 開啟 myVNet 虛擬網路。
  2. 在 [設定] 下,選取 [子網路]。
  3. 選取 [+ 子網路]
  4. 在 [ 名稱] 中,輸入 myBackendSubnet
  5. 針對 [開始位址],輸入 10.0.1.0
  6. 選取 [新增] 以新增子網路。

新增後端目標

在此範例中,您會使用虛擬機器作為目標後端。 您可以使用現有的虛擬機器,或建立新的虛擬機器。 您會建立兩部虛擬機,讓 Azure 作為應用程式閘道的後端伺服器。

若要這麼做,您將會:

  1. 建立兩個新的 Linux VM (myVMmyVM2),作為後端伺服器使用。
  2. 在虛擬機器上安裝 NGINX,以確認成功建立應用程式閘道。
  3. 將後端伺服器新增至後端集區。

建立虛擬機器

  1. 在 Azure 入口網站中,選取 [建立資源]。 [建立資源] 視窗隨即出現。

  2. 在 [虛擬機器] 底下,選取 [建立]

  3. 在 [基本] 索引標籤中,為下列虛擬機器設定輸入這些值:

    • 資源群組:選取 [myResourceGroupAG] 作為資源群組名稱。
    • 虛擬機器名稱:輸入 myVM 作為虛擬機器的名稱。
    • 映像:Ubuntu Server 20.04 LTS - Gen2。
    • 驗證類型:密碼
    • 使用者名稱:輸入管理員使用者名稱。
    • 密碼:輸入管理員的密碼。
    • 公用輸入連接埠:選取 [無]
  4. 接受其他預設值,然後選取 [下一步:磁碟]

  5. 接受 [磁碟] 索引標籤的預設值,然後選取 [下一步:網路]

  6. 在 [網路] 索引標籤上,確認已選取 [myVNet] 作為[虛擬網路],且 [子網路] 設為 [myBackendSubnet]

  7. 在 [公用 IP] 中,選取 [無]

  8. 接受其他預設值,然後選取 [下一步:管理]

  9. 選取 [下一步:監視],將 [開機診斷] 設定為 [停用]。 接受其他預設值,然後選取 [檢閱 + 建立]

  10. 在 [檢閱 + 建立] 索引標籤上檢閱設定,並更正任何驗證錯誤,然後選取 [建立]

  11. 請等候虛擬機器建立完成,再繼續操作。

安裝 NGINX 進行測試

在此範例中,您在虛擬機器上安裝 NGINX,只為了驗證 Azure 已成功建立應用程式閘道。

  1. 開啟 Bash Cloud Shell。 若要這樣做,請從 Azure 入口網站的頂端導覽列中選取 [Cloud Shell] 圖示,然後從下拉式清單中選取 [Bash]

    顯示Bash Cloud Shell的螢幕快照。

  2. 確定已為您的訂用帳戶設定Bash工作階段:

    az account set --subscription "<your subscription name>"

  3. 執行下列命令以在虛擬機器上安裝 NGINX:

     az vm extension set \
     --publisher Microsoft.Azure.Extensions \
     --version 2.0 \
     --name CustomScript \
     --resource-group myResourceGroupAG \
     --vm-name myVM \
     --settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"], "commandToExecute": "./install_nginx.sh" }'
    
  4. 使用您先前完成的步驟,建立第二個虛擬機器並安裝 NGINX。 將 myVM2 用於虛擬機名稱和 --vm-name Cmdlet 的設定。

將後端伺服器新增至後端集區

  1. 選取 [所有資源],然後選取 [myAppGateway]

  2. 從左側功能表中中選取 [後端集區]

  3. 選取 [myBackendPool]

  4. 在 [目標類型] 下方,從下拉式清單中選取 [虛擬機器]

  5. 在 [目標] 下,從下拉式清單中選取 myVM 的相關聯網路介面。

  6. 針對 myVM2 重複。

    新增後端伺服器

  7. 選取 [儲存]。

  8. 等候部署完成,再繼續進行下一個步驟。

測試應用程式閘道

雖然不需要 NGINX 即可建立應用程式閘道,但您仍會加以安裝,以確認 Azure 是否已成功建立應用程式閘道。 使用 Web 服務來測試應用程式閘道:

  1. 在 [概觀] 頁面上尋找應用程式閘道的公用 IP 位址。 [概觀] 頁面上 應用程式閘道 公用IP位址的螢幕快照。

    或者,您可以選取 [所有資源],並在搜尋方塊中輸入 myAGPublicIPAddress,然後在搜尋結果中加以選取。 Azure 會在 [概觀] 頁面上顯示公用 IP 位址。

  2. 將公用 IP 位址複製並貼到您瀏覽器的網址列。

  3. 檢查回應。 有效的回應會確認應用程式閘道已成功建立,並可與後端順利連線。

    測試應用程式閘道的螢幕快照。

清除資源

當您不再需要先前為應用程式閘道建立的資源時,請移除資源群組。 藉由移除資源群組,您也可以移除應用程式閘道及其所有相關資源。

若要移除資源群組:

  1. 在 Azure 入口網站的左側功能表上,選取 [資源群組]
  2. 在 [資源群組] 頁面上,在清單中搜尋 myResourceGroupAG 並加以選取。
  3. 在 [資源群組] 頁面上,選取 [刪除資源群組]
  4. 針對 [輸入資源群組名稱] 輸入 myResourceGroupAG,然後選取 [刪除]

下一步