部署與設定 Azure 防火牆進階版
Azure 防火牆進階版是新一代防火牆,具有高度敏感性和受管制環境所需的功能。 其中包含下列功能:
- TLS 檢查 - 解密輸出流量、處理資料,然後加密資料並將其傳送至目的地。
- IDPS - 網路入侵偵測和防護系統 (IDPS) 可讓您監視網路活動是否有惡意活動、記錄此活動的相關資訊、進行報告,以及選擇性地嘗試予以封鎖。
- URL 篩選 - 擴充 Azure 防火牆的 FQDN 篩選功能,以考慮整個 URL。 例如,
www.contoso.com/a/c
而不是www.contoso.com
。 - Web 類別 - 可讓管理員可以允許或拒絕使用者對某些網站類別 (例如賭博網站、社交媒體網站等) 的存取。
如需詳細資訊,請參閱 Azure 防火牆進階版功能。
您將使用範本來部署具有中央 VNet (10.0.0.0/16) 及三個子網路的測試環境:
- 背景工作子網路 (10.0.10.0/24)
- Azure Bastion 子網路 (10.0.20.0/24)
- 防火牆子網路 (10.0.100.0/24)
重要
無論輸出資料使用量為何,每小時價格都是從部署 Bastion 的那一刻開始計費。 如需詳細資訊,請參閱價格和 SKU。 如果您要將 Bastion 部署為教學課程或測試的一部分,建議您在完成使用之後刪除此資源。
為了簡化,此測試環境中會使用單一中央 VNet。 基於生產目的,具有對等互連 VNet 的中樞和輪輻拓撲比較常見。
背景工作虛擬機器是透過防火牆傳送 HTTP/S 要求的用戶端。
必要條件
如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
部署基礎結構
此範本會針對使用 IDPS、TLS 檢查、URL 篩選和 Web 類別啟用的Azure 防火牆進階版部署完整的測試環境:
- 具有預先定義設定的新Azure 防火牆進階版和防火牆原則,可讓您輕鬆地驗證其核心功能 (IDPS、TLS 檢查、URL 篩選和 Web 類別)
- 部署所有相依性,包括金鑰保存庫和受控識別。 在生產環境中,這些資源可能已經建立,且在相同的範本中不需要。
- 產生自我簽署的根 CA,並將其部署在產生的金鑰保存庫上
- 產生衍生的中繼 CA,並將其部署在 Windows 測試虛擬機器 (WorkerVM) 上
- 系統也會部署 Bastion 主機 (BastionHost),且可用來連線至 Windows 測試機器 (WorkerVM)
測試防火牆
現在您可以測試 IDPS、TLS 檢查、Web 篩選和 Web 類別。
新增防火牆診斷設定
若要收集防火牆記錄,您必須新增診斷設定以收集防火牆記錄。
- 選取 [DemoFirewall] ,然後在 [監視] 底下,選取 [診斷設定]。
- 選取 [新增診斷設定]。
- 針對 [診斷設定名稱],輸入 fw-diag。
- 在 [記錄] 底下,選取 [AzureFirewallApplicationRule] 和 [AzureFirewallNetworkRule]。
- 在 [目的地詳細資料] 底下,選取 [傳送至 Log Analytics 工作區]。
- 選取 [儲存]。
IDPS 測試
若要測試 IDPS,您應該使用適當的伺服器憑證來部署自己的內部測試 Web 伺服器。 此測試包括將惡意流量傳送至 Web 伺服器,因此不建議對公用 Web 伺服器執行此動作。 如需 Azure 防火牆進階版憑證需求的詳細資訊,請參閱 Azure 防火牆進階版憑證。
您可以使用 curl
來控制各種 HTTP 標頭,並模擬惡意流量。
若要測試 HTTP 流量的 IDPS:
在 WorkerVM 虛擬機器上,開啟管理員命令提示字元視窗。
在命令提示字元中,輸入下列命令:
curl -A "HaxerMen" <your web server address>
您將會看到您的 Web 伺服器回應。
移至 Azure 入口網站上的防火牆網路規則記錄,以尋找類似下列訊息的警示:
{ “msg” : “TCP request from 10.0.100.5:16036 to 10.0.20.10:80. Action: Alert. Rule: 2032081. IDS: USER_AGENTS Suspicious User Agent (HaxerMen). Priority: 1. Classification: A Network Trojan was detected”}
注意
資料可能需要一些時間才會開始顯示在記錄中。 請等待至少幾分鐘的時間,讓記錄開始顯示資料。
新增簽章 2032081 的簽章規則:
- 選取 [DemoFirewallPolicy],然後在 [設定] 下選取 [IDPS]。
- 選取 [簽章規則] 索引標籤。
- 在 [簽章識別碼] 底下的開啟文字方塊中,輸入 2032081。
- 在 [模式] 下,選取 [拒絕]。
- 選取 [儲存]。
- 等待部署完成,然後再繼續進行。
在 WorkerVM 上,再次執行
curl
命令:curl -A "HaxerMen" <your web server address>
由於 HTTP 要求現在遭到防火牆封鎖,因此在連線逾時到期之後,您將會看到下列輸出:
read tcp 10.0.100.5:55734->10.0.20.10:80: read: connection reset by peer
移至 Azure 入口網站中的 [監視記錄],並尋找已封鎖要求的訊息。
若要測試 HTTP 流量的 IDPS
使用 HTTPS 而非 HTTP 以重複這些 cURL 測試。 例如:
curl --ssl-no-revoke -A "HaxerMen" <your web server address>
您應該會看到與 HTTP 測試相同的結果。
使用 URL 篩選的 TLS 檢查
使用下列步驟來測試 TLS 檢查與 URL 篩選。
編輯防火牆原則應用程式規則,並將名為
AllowURL
的新規則新增至AllowWeb
規則集合。 設定目標 URLwww.nytimes.com/section/world
、來源 IP 位址 *、目的地類型 URL、選取 [TLS 檢查] 和通訊協定 HTTP、HTTPS。當部署完成時,請在 WorkerVM 上開啟瀏覽器,然後移至
https://www.nytimes.com/section/world
並驗證 HTML 回應是否如預期般顯示在瀏覽器中。在 Azure 入口網站中,您可以在應用程式規則監視記錄中檢視整個 URL:
某些 HTML 頁面看起來可能不完整,這是因為參考了其他遭到拒絕的 URL。 若要解決此問題,您可以採取下列方法:
如果 HTML 頁面包含其他網域的連結,您可以將這些網域新增至新的應用程式規則,並允許存取這些 FQDN。
如果 HTML 頁面包含子 URL 的連結,您可以修改規則,並將星號新增至 URL。 例如:
targetURLs=www.nytimes.com/section/world*
或者,您可以將新的 URL 新增至規則。 例如:
www.nytimes.com/section/world, www.nytimes.com/section/world/*
Web 類別測試
讓我們建立應用程式規則,以允許存取運動網站。
從入口網站開啟您的資源群組,然後選取 [DemoFirewallPolicy]。
選取 [應用程式規則],然後選取 [新增規則集合]。
針對 [名稱],輸入 GeneralWeb、Priority 103,[規則集合群組] 選取 [DefaultApplicationRuleCollectionGroup]。
在 [名稱規則類型 AllowSports]、[來源*]、[通訊協定 HTTP]、[https] 底下,選取 [TLS 檢查]、[目的地類型] 選取 [Web 類別]、[目的地] 選取 [運動]。
選取 [新增]。
部署完成時,請移至 WorkerVM 然後開啟網頁瀏覽器並瀏覽至
https://www.nfl.com
。您應該會看到 NFL 網頁,而應用程式規則記錄檔會顯示 Web 類別:運動規則已符合且允許要求。