状态防火墙(英语: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回复也是允许的。

历史

缺点

  • 无法处理应用层协议

参考文献

参见

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.