篩選仲裁
篩選仲裁是 Windows 篩選平台 (一) 內建的邏輯,可用來判斷在做出網路流量篩選決策時,篩選準則如何彼此互動。
篩選仲裁行為
下列行為描述篩選仲裁系統的特性:
- 可以檢查所有流量。 沒有流量可以略過指定層的篩選準則。
- 即使有較高的優先順序篩選允許流量,也可以透過 Veto 封鎖圖說文字篩選。
- 多個提供者可以檢查相同層的流量。 例如,防火牆後面接著入侵偵測系統 (IDS) 篩選器,或 IPsec 後面接著服務品質 (QoS) 篩選器,都可能會檢查相同層的流量。
篩選模型
每個篩選層會分成依優先順序排序的子層, (也稱為權數) 。 網路流量會周遊從最高優先順序到最低優先順序的子層。 子層是由開發人員使用一個可建立和管理的一個子層。
在每個子層內,篩選會依權數排序。 網路流量會指出比對從最高權數到最低權數的篩選準則。
篩選仲裁演算法會套用至圖層內的所有子層,並在評估所有子層之後做出最終篩選決策。 這會提供多個比對功能。
在子層內,會執行篩選仲裁,如下所示:
- 計算依加權排序的相符篩選清單,從最高到最低。
- 評估比對篩選,直到傳回「允許」或「封鎖」之前, (篩選也可以傳回「繼續」) 或直到清單耗盡為止。
- 略過其餘篩選,並從最後一個評估的篩選準則傳回動作。
在圖層內,會執行篩選仲裁,如下所示:
- 依最高優先順序到最低優先順序,在每個子層執行篩選仲裁。
- 評估所有子層,即使優先順序較高的子層已決定封鎖流量也一樣。
- 根據下一節所述的原則規則傳回產生的動作。
下圖說明範例子層組態。 外部方塊代表圖層。 內部方塊代表包含篩選的子層。 篩選準則中的萬用字元 (*) 表示所有流量都符合篩選準則。
要略過篩選的唯一方法是,如果較高的權數篩選準則允許或封鎖相同子層內的流量。 相反地,確保篩選一律會看到圖層內的所有流量的其中一種方式,就是新增包含符合所有流量的單一篩選準則的子層。
可設定的覆寫原則
以下所述的規則會控管一層內的仲裁決策。 篩選引擎會使用這些規則來決定哪一個子層動作會套用至網路流量。
基本原則如下所示。
- 動作會依從最高優先順序到最低優先順序的子層優先順序進行評估。
- 「Block」 會覆寫 「Permit」。
- 「區塊」是最終 (無法覆寫) 並停止評估。 封包會被捨棄。
基本原則不支援防火牆未覆寫例外狀況的案例。 這種案例的一般範例包括:
- 即使有協力廠商防火牆,也需要開啟遠端系統管理埠。
- 需要開啟埠才能運作 (的元件,例如 Universal 隨插即用 UPnP) 。 如果系統管理員已明確啟用元件,防火牆不應該以無訊息方式封鎖流量。
為了支援上述案例,篩選決策必須藉由管理動作覆寫許可權,更難以覆寫其他篩選決策。 此許可權會實作為FWPS_RIGHT_ACTION_WRITE旗標 , 並且會根據每個篩選準則設定。
評估演算法會維護目前的動作 (「允許」或「封鎖」) 以及 FWPS_RIGHT_ACTION_WRITE 旗標。 旗標可控制是否允許較低優先順序的子層覆寫動作。 藉由在 FWPS_CLASSIFY_OUT0 結構中設定或重設 FWPS_RIGHT_ACTION_WRITE 旗標,提供者會控管動作的覆寫方式。 如果已設定旗標,表示可以覆寫動作。 如果旗標不存在,則無法覆寫動作。
動作 | 已設定允許覆寫 (FWPS_RIGHT_ACTION_WRITE) | Description |
---|---|---|
允許 | Yes | 您可以在另一個子層封鎖流量。 這稱為軟式允許。 |
允許 | No | 流量只能由圖說 文字 Veto封鎖在另一個子層。 這稱為硬式允許。 |
區塊 | Yes | 您可以在另一個子層允許流量。 這稱為軟區塊。 |
區塊 | No | 無法在另一個子層允許流量。 這稱為硬式區塊。 |
您可以將結構中的 類型 成員 FWPM_ACTION0設定 為 FWP_ACTION_BLOCK 或 FWP_ACTION_PERMIT來設定篩選動作。 除了動作類型之外,篩選也會公開旗 標FWPM_FILTER_FLAG_CLEAR_ACTION_RIGHT。 如果清除此旗標,則動作類型為硬式,而且無法覆寫,除非 Veto 覆寫硬式允許,如稍後所述,否則它是可透過高優先順序動作覆寫的軟式。
下表列出篩選和圖說文字動作的預設行為。
動作 | 預設行為 |
---|---|
篩選允許 | 軟式允許 |
圖說文字允許 | 軟式允許 |
篩選區塊 | 硬式區塊 |
圖說文字區塊 | 軟塊 |
Veto是篩選準則在呼叫篩選之前重設FWPS_RIGHT_ACTION_WRITE旗標時所傳回的「封鎖」動作。 Veto會封鎖使用硬式允許的流量。
發出 Veto 時,表示組態發生衝突。 系統會採取下列動作來減輕衝突。
流量遭到封鎖。
會產生稽核事件。
會產生通知。
注意
已訂閱通知的所有實體都會收到通知。 這通常會包含防火牆 (,以偵測) 錯誤設定,或應用程式 (,以偵測其特定篩選是否已覆寫) 。
注意
覆寫「硬式允許」篩選準則時,不會 (UI) 具現化的必要使用者介面。 覆寫的通知會傳送給任何已註冊以接收它們的提供者,允許防火牆或建立「允許」篩選的應用程式顯示要求使用者動作的 UI。 這些覆寫事件的平臺 UI 通知沒有值,因為不想要以無訊息方式封鎖的防火牆 ISV 可以透過在一個不同位置註冊,或 (較不慣用的) 在呼叫輸出驅動程式中處理其所有邏輯。 認為提示使用者的 ISV 是一個好主意,想要擁有使用者體驗並建立自己的 UI。
上述風險降低行為可確保「禁止」篩選準則不會以無訊息方式覆寫「封鎖」篩選,並涵蓋防火牆不允許封鎖遠端系統管理埠的情況。 為了以無訊息方式覆寫「硬式允許」篩選準則,防火牆必須在其優先順序較高的子層內新增其篩選。
注意
由於沒有跨層仲裁,因此允許「硬式允許」的流量仍可能會在另一層遭到封鎖。 原則作者必須負責確保視需要允許每一層的流量。
要求開啟埠的使用者應用程式會將可覆寫的篩選準則新增至低優先順序子層。 防火牆可以訂閱篩選新增通知事件,並在使用者 (或原則) 驗證之後新增比對篩選。