Appearance
防火墙的状态检测
状态检测
状态检测技术是网络防火墙上常见的一种检测技术。其基于连接状态表的检测机制提高了网络交互的安全性和效率。
状态检测的工作过程
状态检测主要是在数据交互过程中,根据交互数据报文的相关信息建立状态表项,并在后续的交互过程中,直接检查数据报文的五元组信息是否在状态表里,如果在的话,就直接转发,如果不在则丢弃。
状态表的建立过程不同的产品其实现的程度稍有不同。状态主要是针对基于TCP的应用,因为TCP存在一个三次握手建立连接的过程,当第一个带有SYN标志的报文经过防火墙上,防火墙会根据报文的五元组信息检查自己的规则集,如果规则允许该报文通过,则把该报文的五元组信息写入状态表并根据路由表转发该报文。然后防火墙会设置一个超时时间,并等待服务器端SYN/ACK标志位为一的报文过来,如果在超时时间内,防火墙收到了来自服务器的SYN/ACK标志位置一的数据报文,则状态表建立完成,如果在超时时间内未收到来自服务器的SYN/ACK报文,则状态表建立失败。
UDP、ICMP协议是无状态的,有些设备不针对UDP、ICMP协议建立状态表,有些状态检测的设备也可以针对UDP、ICMP协议的交互过程建立状态表,具体就不在此详细介绍了。
状态检测在实际环境下对网络和业务的影响
状态检测技术可以提高网络的安全性,但是在实际的环境中,状态检测的工作原理决定了其也可能对网络和应用造成一些影响。常见的有以下两种情况:
1,数据报文来回路径不一致
如果状态表建立过程中的数据报文来回路径不一致,防火墙上的连接状态表将无法正常的建立,从而导致客户端与服务器间无法正常建立连接。
2,非常规网络行为的应用
一般基于TCP的应用在真正业务数据交互之前,需要通过TCP的3次握手建立TCP连接,然而,在实际的工作环境下,可能有某些应用程序因开发规范不严谨或特殊的应用需要而存在类似SYN没有置位的连接请求,基于状态检测的防火墙在默认情况下,对这种不严谨的TCP连接视为非法连接并将连接阻断。从而影响这些业务应用的正常使用。


评论与留言
欢迎留言。你可以匿名留言,也可以自愿留下网名或邮箱;邮箱不会公开展示。
还没有留言,欢迎交流。