Skip to content

Azure Firewall Policy Rule 設計和執行邏輯

記錄一下,幫助一下曾經跟我一樣陷入以人類之軀對過 Azure Firewall Policy 規則的偉大戰士們

Azure Firewall Policy 典型範例: 以 Project 導向

關於 Firewall Policy

  1. 1 個 Azure Firewall 只能跟 1 個 Firewall Policy 進行關聯
  2. 可以用 Parent Policy 關聯多個 Child Policy,以做到繼承的效果

關於 Rule Collection Group

  1. 1 個 Firewall Policy 可以包含 3 ~ 90 個 Rule Collection Group
  2. 預設會有 3 個 Rule Collection Group: 100 DNAT Rule Collection Group, 200 Network Rule Collection Group, 300 Application Rule Collection Group 且不可刪除,但可以選擇不要用它
  3. 優先權號碼從 100 ~ 65000 皆可使用,但不可重複
  4. (建議) 以 Project 或特定的應用程式為最小單位,進行明確分類
  5. (建議) 不同專案跳號,以 100 為單位作為跳號基礎

關於 Rule Collecition

  1. 1 個 Rule Collection Group 可以包含 1 ~ N 個 Rule Collection,檔案上限為 2MB
  2. 每 1 個 Rule Collection 有 3 種類型選擇: DNAT Rule, Network Rule, Application Rule
  3. 每 1 個 Rule Collection 有 2 個動作 (Action) 選擇,Allow 或 Deny,無法同時選擇
  4. 優先權號碼從 100 ~ 65000 皆可使用,但不可重複
  5. 雖然不同 Rule Collection Group 不可以有相同的優先權號碼,但旗下的不同的 Rule Collection 可以有相同的優先權號碼
  6. 基於數字小的優先權高,數字大的優先權低,所以每一個分類需特別拆分 Deny 和 Allow 的 Rule Collection,並用優先權確保執行順序

關於 Rule

DNAT 就是 Port Forwarding 進來,這個沒什麼特殊可以討論的,想要知道使用方式的話可以參考 上班基本功: SSH 混搭 Azure Firewall

主要分為 Network Rules,經典的使用方式,只要是以 L4 協定為主的 TCP / UDP / ICMP 規則都可以採用,會有明確的協議和 Port 設定

其次為 Application Rules,主要針對 L7 協定的 HTTP / HTTPS 規則,會有明確的 URL 設定,支援 Wildcard 和改 Port 設定,也支援 TLS inspection

Azure Firewall Policy 執行邏輯

  1. 以 類別 (Type): DNAT Rules > Network Rules > Application Rules
  2. 以 繼承 (Hierarchy): Parent Policy > Child Policy
  3. 以 優先權 (Priority): 數字小的,優先權高,數字大的,優先權低

白話來說,無論 Parenet Policy 或 Child Policy,都會先執行 DNAT Rules 類別,依據優先權來決定執行順序,其次再來是 Network Rules 類別,依據優先權來決定執行順序,最後才是 Application Rules 類別,依據優先權來決定執行順序

1. 先比 DNAT Rules 順序

2. 再比 Network Rules 順序

3. 最後比 Application Rules 順序

4. 全部都沒中

預設拒絕 (Deny All) 的規則,會在最後執行,所以如果沒有任何一個規則符合,就會被拒絕

個人良心建議

1. 不要拿 Rule Collections 來參考邏輯排序

這頁其實完全沒有照排序參考,如果你第一眼看這個,保證會搞到昏掉,其次實際上執行順序也不是照這個排序,所以看這個沒什麼特殊路用

建議還是直接點旁邊的 DNAT Rules, Network Rules, Application Rules 來看比較清楚

2. 考考自己

這是官方文件 Rule processing using Firewall Policy,我相信你應該此時知道他到底在幹嘛了,如果還是不知道為什麼的話,請再重看一次文章

文後廢言

2024 年開年就歷經人生史上最慘感冒和流感,昏迷足足一週以上,加送 2 週重感冒,比 COVID 還慘

References

Comments