防火牆系列第六篇深入封包過濾技術核心:內核實作模型、規則引擎運作邏輯、非對稱過濾策略與部署架構選擇。
封包過濾實作層級
- 作業系統核心模組 (高效能、低延遲)
- 商用防火牆產品 (硬體加速、ASIC/FPGA)
- 路由器廠商原生支援 (Cisco、3Com、Juniper、Fortinet 等)
- 軟體式過濾器 (如早期 KarlBridge、Linux iptables/nftables、BSD PF)
封包過濾與網路安全策略
策略必須明確定義:
- 受保護資源與服務類型
- 服務重要性等級
- 保護對象 (內部用戶 vs 外部威脅)
策略傾向:多數企業以「阻擋入侵」為主,而非「管制內部用戶」。良好策略應透明不干擾正常業務。
透明度考量
- 防火牆工作於應用層 (L7) 安全措施不應成阻礙
- 封包過濾工作於網路/傳輸層 (L3/L4),通常比應用層防火牆更透明
簡化封包過濾模型:雙介面架構
[外部網段] ←→ [封包過濾器] ←→ [內部網段]
(Internet) (雙網卡) (企業內網)
- 外部網段:連接 Internet、不信任區域
- 內部網段:連接企業主機與資源、信任區域
- 過濾器雙介面獨立套用規則 → 非對稱運作
非對稱過濾策略
針對「內部用戶主動連外部」與「外部主動連內部」套用不同規則集:
- 外部→內部:預設拒絕,僅開放必要服務 (Web、Mail、VPN)
- 內部→外部:依政策開放 (如全開、僅 HTTP/HTTPS、白名單)
封包過濾器核心運作流程 (6 步驟)
- 規則載入:過濾準則儲存為有序規則列表 (規則順序 = 執行順序)
- 封包到達:解析封包標頭 (IP、TCP/UDP 標頭),不檢查封包主體
- 規則比對:依儲存順序逐條比對
- 拒絕動作:任一規則匹配拒絕 → 立即丟棄,停止比對
- 允許動作:任一規則匹配允許 → 立即轉發,停止比對
- 預設拒絕:無規則匹配 → 預設丟棄
關鍵原則:Fail-Safe (預設拒絕)
- 設計網路安全時必須假設規則無法涵蓋所有情況
- 「未明確允許即拒絕」優於「未明確拒絕即允許」
- 新服務上線若未匹配現有規則,預設被阻擋 → 強迫審視風險後再放行
常見配置錯誤:規則順序錯誤
規則順序決定生效優先權。錯誤順序導致:合法服務被誤擋、或惡意流量被誤放。
# 錯誤範例:允許規則在拒絕規則之後
deny ip any any # 所有封包在這裡就被擋了
allow tcp any any eq 80 # 永遠不會生效
# 正確範例:具體允許在前,預設拒絕在後
allow tcp any any eq 80
allow tcp any any eq 443
deny ip any any
部署架構選擇:單一雙介面 vs 多介面路由器
| 架構 | 優點 | 缺點 |
| 單一雙介面路由器 | 管理簡單、成本低、單一控制點 | 單點故障、效能瓶頸 |
| 多介面路由器 | 分流處理、支援 DMZ、彈性分區 | 規則複雜度指數級上升、難維護、易配錯 |
建議:經濟許可下,單一雙介面為主,必要時擴展 DMZ 介面;避免過度複雜的多段過濾鏈。
封包過濾設計黃金法則
- 明確定義安全策略再寫規則
- 具體允許規則前置,預設拒絕規則置尾
- 僅檢查標頭 (L3/L4),不深度檢查內容
- 規則集定期審查、版本控管、變更管理
- 記錄拒絕事件 (含來源 IP、目的 Port、時間) 供稽核
- 上一篇文章: 防火牆技術深度解析 (七):代理服務原理、優缺點與部署實務
- 下一篇文章: 防火牆技術深度解析 (五):封包過濾基礎架構、封裝解析與三大判斷依據
Copyright ©
程式碼之家 All Rights Reserved