🧭 一、功能概述
在 OPNsense 中,防火牆排程 (Schedules) 可讓你設定「規則啟用與停用的時間表」。
它能與任何防火牆規則綁定,讓該規則只在特定時間內生效。
這項功能常用於:
- 限制特定用戶或網段的上網時間;
- 只允許在工作時間開放特定服務;
- 每晚自動封鎖某些連線;
- 在週末限制訪問內部系統。
簡單來說,它就是 防火牆規則的時間控制開關 (time-based rule control)。
⚙️ 二、原理與設定方式
防火牆規則在建立時可以指定一個「Schedule」。
當排程時間內,該規則會啟用;
時間一到,規則自動停用,不需人工介入。
OPNsense 的 Schedule 設定在:
Firewall → Settings → Schedules
點選「+Add」即可新增一個排程。
🧩 三、建立排程步驟
Step 1️⃣ 建立 Schedule
進入:
Firewall → Settings → Schedules → +Add
填寫以下項目:
| 欄位 | 說明 |
|---|---|
| Name | 排程名稱,例如「WorkHours」 |
| Description | 說明用途,例如「允許上班時間內上網」 |
| Time Range | 設定開始與結束時間,例如 08:00 ~ 18:00 |
| Days | 選擇星期幾生效,例如 Mon–Fri |
| Color | 顯示於介面時的標識顏色(方便辨識) |
✅ 小提示:一個 Schedule 可包含多個時間區段,例如:
- Mon–Fri 08:00–18:00
- Sat 09:00–12:00
Step 2️⃣ 在防火牆規則中套用 Schedule
建立完成後,前往:
Firewall → Rules → [選擇介面]
新增或編輯規則,在下方找到:
Advanced Options → Schedule
選擇剛建立的排程名稱,例如:
Schedule: WorkHours
套用後,該規則僅會在排程時間內生效。
Step 3️⃣ 驗證生效狀態
在排程外的時間,該規則會被自動忽略(顯示為灰色)。
若你使用 CLI 或 log,可觀察到:
- 該規則在非排程時段不會被匹配;
- 防火牆狀態表會自動清除過期的連線。
💡 四、應用範例
🧩 範例一:限制學生上網時間
Schedule Name: Student_Network
Days: Mon–Fri
Time: 07:00–22:00
套用至防火牆規則:
Action: Pass
Source: 192.168.50.0/24
Destination: any
Schedule: Student_Network
👉 學生僅能在早上 7 點至晚上 10 點上網。
其餘時間連線自動封鎖。
🧩 範例二:只允許工作時段遠端存取
Schedule Name: Office_VPN
Days: Mon–Fri
Time: 08:00–18:00
套用至 VPN 入口規則:
Interface: WAN
Protocol: TCP
Port: 1194
Action: Pass
Schedule: Office_VPN
👉 VPN 僅能在上班時段開啟,夜間自動關閉。
🧩 範例三:自動封鎖週末下載服務
Schedule Name: Block_P2P_Weekend
Days: Sat–Sun
Time: 00:00–23:59
規則設定:
Action: Block
Destination Port: 6881–6999
Schedule: Block_P2P_Weekend
👉 週末自動封鎖 BT、P2P 連線。
🧠 五、進階應用技巧
| 技巧 | 說明 |
|---|---|
| 多段時間控制 | 一個 Schedule 可定義多段時間,例如「午休不允許上網」。 |
| 與別名 (Aliases) 搭配 | 結合使用者群組或 IP 別名,更靈活控制特定群體。 |
| 監控與日誌 | Schedule 觸發時會自動記錄於防火牆 Log,可搭配 Insight 分析。 |
| 自動恢復連線 | 當 Schedule 結束時,舊的 TCP 連線會被清理,以免越界使用。 |
✅ 六、結論
Firewall Schedules 是 OPNsense 中簡潔但極具實用價值的功能。
透過時間條件控制防火牆規則,你可以:
- 動態限制上網時段;
- 自動開關對外服務;
- 減少手動干預與操作風險。
對學校、公司與共用網路環境而言,這是「最聰明的節制手段」。