有状态分组过滤器原理及实现

时间:2022-07-06 05:08:04

摘要 分组过滤器一般指无状态分组过滤器,通过制定规则对每一个IP分组的单向传输过程独立进行控制,但实际应用中常常需要针对某个服务相关的一组IP分组的传输过程实施控制,这种控制过程一是双向的,完成服务过程中需要双向传输IP分组,二是相关的,同一传输方向,不同顺序的IP分组之间存在相关性,两个不同传输方向的IP分组之间存在相关性,有状态分组过滤器就是这样一种基于服务对IP分组的传输过程实施控制的机制。

关键词 分组过滤器 服务 有状态分组过滤器

但上述过滤规则中直接允许Web服务器发送的、源端口号为80的TCP报文沿着Web服务器至终端A方向传输,一是没有规定这种传输过程必须在由终端A发起建立与Web服务器之间的TCP连接后进行,二是由于需要用两端插口标识TCP连接,因此,上述过滤规则并没有明确指出只有属于由终端A发起建立与Web服务器之间的TCP连接的TCP报文才能沿着Web服务器至终端A方向传输,三是没有检测Web服务器传输给终端A的TCP报文是否是终端A发送的请求消息对应的响应消息。

2 HTTP服务涉及的数据交换过程

HTTP服务涉及的数据交换过程如图2所示,首先由终端A发起和Web服务器之间的TCP连接建立过程。建立TCP连接过程中,首先是由终端A发出的源IP地址=192.1.1.1,目的IP地址=192.1.2.7,目的端口号=80,且TCP首部中SYN=1、ACK=0 的建立TCP连接请求报文,其次是来自Web服务器的源IP地址=192.1.2.7,目的IP地址=192.1.1.1,源端口号=80,且TCP首部中SYN=1、ACK=1的同意建立TCP连接的响应报文,最后是由终端A发送的确认报文。随后是终端A发送的HTTP请求报文,和Web服务器发送的针对终端A发送的HTTP请求报文的HTTP响应报文,最后是TCP连接释放过程。

3 有状态分组过滤器工作原理

为了实现只允许图2所示的数据交换过程正常进行,禁止其他通信过程的访问控制,要求做到:①终端A至Web服务器传输方向上的过滤规则允许传输与完成由终端A发起访问Web服务器的操作有关的TCP报文。②初始状态下, Web服务器至终端A传输方向上的过滤规则拒绝一切IP分组传输。③只有当终端A至Web服务器传输方向上传输了与终端A发起访问Web服务器的操作有关的TCP报文后,Web服务器至终端A传输方向才允许传输作为对应响应消息的TCP报文。因此,终端A至Web服务器传输方向应该允许与终端A访问Web服务器相关的TCP报文正常转发,但Web服务器至终端A传输方向只允许传输Web服务器发送给终端A的响应消息。判别是否是响应消息的依据一是响应消息是属于终端A发起建立的与Web服务器之间的TCP连接的TCP报文,即TCP报文的源和目的IP地址、源和目的端口号等于标识该TCP连接的两端插口。二是响应消息和终端A发送给Web服务器的请求消息存在相关性,即如果终端A发送的是建立TCP连接请求报文,则响应消息是同意建立TCP连接的响应报文,如果终端A发送的是HTTP请求报文,则响应消息是HTTP响应报文。这就意味着终端A至Web服务器传输方向可以通过无状态分组过滤器实现允许与终端A访问Web服务器相关的TCP报文正常转发的访问控制,而Web服务器至终端A方向的过滤规则必须根据当前TCP连接状态和终端A刚发送给Web服务器的请求报文的内容动态设置,这就是有状态分组过滤器的本质含义。

上一篇:园林工程的施工管理探讨 下一篇:浅淡大跨度公路隧洞洞挖施工技术