🧭 一、什麼是防火牆規則?
OPNsense 的防火牆規則 (Firewall Rules) 是系統中最核心的安全控制機制。
它決定哪些網路封包可以通過、哪些必須被阻擋或拒絕。
防火牆規則運作於 封包過濾層 (Packet Filter),
在資料封包進出介面時檢查來源、目的、通訊協定、埠號等條件,
並根據設定的動作 (Action) 執行相應處理。
⚙️ 二、基本概念與規則動作
| 動作類型 | 說明 |
|---|---|
| Pass | 允許封包通過防火牆,繼續傳輸。 |
| Block | 封鎖封包,不回覆任何訊息(靜默丟棄)。 |
| Reject | 封鎖封包並回傳拒絕訊息(TCP RST 或 ICMP unreachable)。 |
💡 建議:
對外網 (WAN) 流量建議使用Block,以減少被探測的機會。
對內部 LAN 測試時可使用Reject,便於除錯。
🧩 三、防火牆規則處理順序
根據官方說明,OPNsense 的防火牆規則會依以下順序處理:
1️⃣ Floating Rules(浮動規則)
跨多介面的規則會最先處理。
常用於全域封鎖、QoS 或特定方向過濾。
2️⃣ Interface Group Rules(介面群組規則)
應用於群組內的所有介面,例如:LAN + VLAN10 + VLAN20。
3️⃣ Interface Rules(單一介面規則)
最後評估每個介面上的專屬規則(如 LAN、WAN、DMZ)。
⚡ 每條規則預設為「Quick 模式」:
一旦有規則被匹配,其後的規則將不再被評估。
🔧 四、防火牆規則的條件要素
| 條件 | 說明 |
|---|---|
| Direction | 流量方向:In / Out。多數情況使用「In」。 |
| Interface | 應用規則的網路介面,如 LAN、WAN。 |
| Protocol | 通訊協定(TCP、UDP、ICMP、或 any)。 |
| Source / Destination | 封包的來源與目的地址,可搭配 Aliases。 |
| Port(s) | 服務埠號(例如 80/443/22)。 |
| Schedule | 可設定時間排程(如上班時段放行)。 |
| Category / Description | 用於歸類與管理規則。 |
🧰 五、常見應用範例
✅ 1. 允許內部使用者上網
- 介面:LAN
- 來源:LAN subnet
- 目的:any
- 動作:Pass
→ 允許內部所有設備連出 Internet。
🔒 2. 阻擋外部連線進入內網
- 介面:WAN
- 來源:any
- 目的:內部伺服器 IP (例如 192.168.1.10:22)
- 動作:Block
→ 防止外部主機連入 SSH。
🕐 3. 限時開放特定服務
- 設定時間排程:Mon–Fri 09:00–18:00
- 動作:Pass
→ 僅允許工作時段通訊。
⚡ 六、進階技巧與注意事項
| 主題 | 建議 |
|---|---|
| 規則順序 | 由上而下匹配,符合即停止。 |
| NAT 與 Firewall 順序 | NAT 規則先於防火牆規則執行。若使用 Port Forward,記得同時建立對應放行規則。 |
| 浮動規則 (Floating Rules) | 可跨介面使用,並能設定方向與流量標記(如 QoS、限速)。 |
| 預設策略 | 最安全作法是「預設封鎖」,僅明確放行必要流量。 |
| 防呆機制 | 修改管理介面規則時,小心避免將自己鎖出系統。 |
✅ 七、總結
| 特性 | 說明 |
|---|---|
| 功能定位 | 封包過濾與流量控制核心機制 |
| 處理順序 | Floating → Group → Interface |
| 建議策略 | 預設封鎖、明確放行 |
| 實務應用 | 上網放行、防外入侵、限時規則、跨介面控制 |
💡 防火牆規則是 OPNsense 安全策略的基石。
合理設計規則順序與條件,可確保網路安全與穩定運作。