状态检测
状态检测防火墙出现是防火墙发展历史上里程碑的事件,而其所使用的状态检测和会话机制,目前已经成为防火墙产品的基本功能,也是防火墙实现安全防护的基础技术。
在状态检测防火墙出现之前,包过滤防火墙只根据设定好的静态规则来判断是否允许报文通过,它认为报文都是无状态的孤立个体,不关注报文产生的前因后果,这就要求包过滤防火墙必须针对每一个方向上的报文都配置一条规则,转发效率低下而且容易带来安全风险。
而状态检测防火墙的出现正好弥补了包过滤防火墙的这个缺陷。状态检测防火墙使用基于连接状态的检测机制,将通信双方之间交互的属于同一连接的所有报文都作为整个的数据流来对待。在状态检测防火墙看来,同一个数据流内的报文不再是孤立的个体,而是存在联系的。例如,为数据流的第一个报文建立会话,数据流内的后续报文就会直接匹配会话转发,不需要再进行规则的检查,提高了转发效率。
会话
interfaceGigabitEthernet0/0/1
ip address192.168.0.254 255.255.255.0
#
interfaceGigabitEthernet0/0/2
ip address172.16.0.254 255.255.255.0
firewall zone trust
set priority 85
add interfaceGigabitEthernet0/0/0
add interfaceGigabitEthernet0/0/1
policy interzone trust untrust outbound
policy 10
actionpermit
policy serviceservice-set http
policy serviceservice-set icmp
policy source192.168.0.1 0
policy destination172.16.0.1 0
displayfirewall session table
13:13:27 2017/06/29
Current Total Sessions : 1
http VPN:public --> public192.168.0.1:2052-->172.16.0.1:80
-
http 表示协议( 此处显示的是应用层协议)
-
192.168.0.1表示源地址
-
2052表示源端口
-
172.16.0.1表示目的地址
-
80表示目的端口
“-->”符号前面的是源,符号后面的是目的。
源地址、源端口,目的地址,目的端口和协议这5个元素是会话的重要信息,称之为“五元组"。只要这5个元素相同的报文即可认为属于同一条流,在防火墙通过这5个元素就可以唯一确定一条连接。
display firewall session tableverbose
13:22:55 2017/06/29
Current TotalSessions : 1
http VPN:public --> public
Zone:trust--> untrust TTL: 00:00:10 Left: 00:00:06
Interface:GigabitEthernet0/0/2 NextHop: 172.16.0.1 MAC: 54-89-98-18-71-4c
<--packets:4 bytes:471 -->packets:6bytes:400
192.168.0.1:2053-->172.16.0.1:80
- Zone:表示报文在安全区域之间流动的方向,trust-->untrust表示报文是从trust区域流向untrust区域
- TTL:表示该会话的老化时间,这个时间到期后,这条会话也将会被清除。
- Left:表示该会话剩余的生存时间。
- Interface:表示报文的出接口,报文从这人接口发出。
- NextHop:表示报文去往下一跳的IP地址。
- MAC:表示报文去往的下一跳的MAC地址。
- <--packets:4bytes:471:表示会话反向方向上的报文统计信息,即Web服务器向PC发往报文的个数和字节数。
- -->packets:6bytes:400:表示会话正向方向的报文统计信息,即PC向Web服务器发送的报文的个数和字节数。
调整http老化时间为600s
[FW]firewall session aging-time service-set http 600
长连接
网络中还有一种类型的业务,一条连接上的两个连续报文可能间隔时间很长,最具代表性的就是SQL数据库业务。用户查询SQL数据库服务器上的数据时,查询操作的时间间隔可能会远大于SQL数据库业务的会的老化时间。防火墙上该业务的会话老化之后,就会出现用户访问SQL数据库变慢或者无法继续查询的问题。
仅支持tcp协议类型。
acl number 3000
rule 5 permittcp source 192.168.0.1 0 destination 172.16.0.2 0destination-por
t eq sqlnet
#
firewall interzone trustuntrust
long-link 3000 outbound
关闭状态检测功能
undo firewall session link-state check