狀態防火牆(英語:Stateful firewall),一種能夠提供狀態封包檢查stateful packet inspection,縮寫為SPI)或狀態檢視stateful inspection)功能的防火牆,能夠持續追蹤穿過這個防火牆的各種網絡連線(例如TCPUDP連線)的狀態。這種防火牆被設計來區分不同連線種類下的合法封包。只有符合主動連線的封包才能夠被允許穿過防火牆,其他的封包都會被拒絕。[需要解釋]

狀態封包檢查也被稱為動態封包過濾(Dynamic Packet Filtering)。[1]

原理 編輯

狀態防火牆監視網絡連接的「狀態」,比如TCP流、UDP數據和ICMP訊息可能被分為LISTEN, ESTABLISHED, 或者CLOSING狀態[2]。按照相應的安全策略,狀態防火牆在狀態表中為各TCP流或者UDP數據建立記錄。凡在表中的session,所有相關封包都被允許通過,不再檢測,因此比一般的檢測使用更少CPU

維持一個session的狀態取決於其傳輸層協定。比如TCP是面向連接的協定[3],其session是由三路握手的SYN訊息建立,由FIN訊息終止。[4]狀態防火牆由此可以知道何時從表中移除session,而不必等待逾時再移除。UDP是無連接的協定[3],它不會傳送特別的連接訊息,因此一個UDP的session只有等待逾時才會被移除,UDP打洞就利用了這一特性設立隧道。[5] ICMP訊息與TCP和UDP不同,它傳遞網絡本身的控制資訊,比如ping命令。[6]ICMP回覆一般會被允許。有時UDP通訊會使用ICMP來提供session的狀態資訊,因此和某UDP session有關的ICMP回覆也是允許的。

歷史 編輯

缺點 編輯

  • 無法處理應用層協定

參考文獻 編輯

  1. ^ Goralski, Walter, author. The illustrated network : how TCP/IP works in a modern network. ISBN 978-0-12-811027-0. OCLC 986540207. 
  2. ^ TCP connection status. IBM Knowledge Center. [2020-09-06]. (原始內容存檔於2020-11-11). 
  3. ^ 3.0 3.1 Mitchell, Bradley. TCP vs UDP. Lifewire. 2020-04-01 [2020-09-06]. (原始內容存檔於2021-10-04). 
  4. ^ TCP three-way handshake. Study-CCNA. [2020-09-06]. (原始內容存檔於2021-12-23). 
  5. ^ Automatic NAT Traversal for Auto VPN Tunneling between Cisco Meraki Peers. Meraki. [2020-09-06]. (原始內容存檔於2021-10-04). 
  6. ^ Mitchell, Bradley. Guide to Internet Control Message Protocol (ICMP). Lifewire. 2018-12-03 [2020-09-06]. (原始內容存檔於2020-11-25). 

參見 編輯