会话表
会话表是一个记录TCP、UDP、ICMP等协议连接状态,实现报文正常转发的重要环节,是防火墙进行转发的唯一依据。
防火墙采用了基于状态的报文控制机制:只对首包或者少量报文进行检测就确定一条连接状态,大量报文直接根据所述连接的状态进行控制,这种状态检测机制迅速提高了防火墙的检测和转发效率。
而会话表正是为了记录连接的状态而存在的。设备在转发TCP\UDP\ICMP等报文时都需要查询会话表来判断该报文所属的连接以及相应的处理措施。
由于大量会话的存在会对设备资源造成很大的消耗,当超过规格限制时还会导致新会话无法建立,业务不能正常运行。所以必须及时对无用的连接进行清理。当一条会话在长时间没有被任何报文匹配,则说明该条会话所对应的连接可能已经关闭了,这条会话也就没有存在的必要了。所以FW为各种协议设定了会话老化机制。当一条会话在老化时间内没有被任何报文匹配,则会被从会话表中删除。
查看会话表信息
简要信息
display firewall session table #显示简要会话表项
Current Total Sessions : NUM
TYPE VPN:SRCVPN --> DSTVPN SRCIP --> DSTIP
详细信息
display firewall session table verbose #显示简要会话表项
Current Total Sessions : NUM
TYPE VPN:SRCVPN --> DSTVPN ID: ID-NUMBER
Zone: SRCZONE--> DSTZONE Remote TTL: TOTALTIME Left: LEFTTIME
Interface: OUTINTERFACE Nexthop: IP-ADDRESS MAC: MACADDRESS
<-- packets:NUMBER bytes:BYTES --> packets:NUMBER bytes:BYTES
SRCIP --> DSTIP PolicyName: POLICYNAME
TCP State: TCP State
清除信息
reset firewallfirewall session table#清除系统当前会话表项
详细参数含义
TYPE:该会话的协议类型。
VPN:SRCVPN --> DSTVPN
该会话的源VPN实例名称和目的VPN实例名称。PN指的是PN Instance,用在虚拟系统中,没有开启虚拟系统,就只有物理墙,默认都是public--->public,指从物理墙到物理墙。
ID: ID-NUMBER
该会话的ID号。自动生成,唯一确定一条会话。
Zone: SRCZONE--> DSTZONE
该会话的源安全区域名称和目的安全区域名称。
Remote
双机热备场景下,Remote说明当前会话是备份会话,该会话是从对端设备备份过来的。
TTL: TOTALTIME
会话表项总的存活时间。在路由交换中用于防止环路。在防火墙中指的是老化时间。
Left: LEFTTIME
会话表项剩余的存活时间。
老化时间的作用?
控制会话表条目,如果会话表条目太多或者频繁重新建立,都会影响设备转发性能。可以将老化时间理解为导致因为会话表存在而使得安全检查动态更新的原因。
如何查看协议的老化时间?
display firewall session aging-time
tcp:1200s
udp:120s
icmp:20s
syn:5s
fin-rst:10s
dns:30s
http:1200s
https:600s
tcp和udp的老化时间为什么不同?
因为tcp靠谱,需要3次握手才能建立会话,udp不靠谱,不需要建立会话。
老化时间能否修改?
可以。最大修改到65535s,即大约18小时。
firewall session aging-time service-set icmp 20000
老化时间包括系统预定义老化时间和自定义老化时间。
自定义老化时间
ip service-set test type object
service protocol 100
freiwall session aging-time service-set test 2000
display firewall session aging-time type user-defined
什么情况下会老化?
1、Left超时(老化时间到了)
2、内容安全检测到有病毒,会话表直接老化,加入黑名单
3、TCP会话结束,会发送FIN报文,fw收到第一个FIN报文(first-fin),老化时间变成900s,收到第二个FIN报文(fin-rst),老化时间变成10s
TCP的三次握手
三次握手建立连接
a) 第一次握手:客户端发送syn包(seq=x)到服务器,并进入SYN_SENT状态,等待服务器确认
b) 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包,此时服务器进入SYN_RCVD(received)状态
c) 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入established(已建立的)状态,完成三次握手
传输数据过程
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP连接都将被一直保持下去
TCP四次挥手
四次挥手建立连接
a) 第一次挥手:client发送一个FIN,用来关闭client到server的数据传送,client进入FIN_WAIT_1状态
b) 第二次挥手:server收到FIN后,发送一个ACK给client,确认序列号为收到序列号+1,server进入CLOSE_WAIT
c) 第三次挥手:server发送一个FIN,用来关闭server到client的数据传送,server进入LAST_ACK状态
d) 第四次挥手:client收到FIN后,client进入TIME_WAIT状态,接着发送一个ACK给server,确认序列号为收到序列号+1,server进入CLOSED状态,完成四次挥手
会话表主要包括哪些信息
从两个方面答:
1.会话表中记录的信息很多,但一般是根据七个关键元素(源IP地址、源端口、目的IP地址、目的端口、协议号、应用、用户)来判断一个报文是否和一条会话表项匹配。这七个关键元素又被称为七元组
2.配置了虚拟系统,会结合七元组和***实例号一共八个元素来判断报文是否和会话表项匹配
3.剩余的元素 还包括源目虚拟墙、源目区域、生存周期、剩余时间、出接口、下一跳IP/MAC、报文方向/字节数统计、用户名和策略名
查看防火墙简要信息
根据条件筛选需要会话
五元组: 源目地址 源目端口 协议
注意: 华为防火墙可以记录穿越自己防火墙和到达防火墙的会话
查看会话表详细信息
详解会话表中的每一个字段
ftp:协议
***:没有虚拟系统的情况下,public到public 指根墙到根墙
ID:是唯一标识此次会话,当老化时间超时后,这个ID是会变化的
Zone 安全区域
TTL 生存时间
老化时间
系统一些知名协议的TTL数值总结:
总结时间(参考)
注意:TCP半开连接等待ACK老化时间默认是30-120S
可以对知名协议修改其老化时间 也可以自定义老化时间
检查
修改预定义的老化时间
会话表在什么情况下老化?
没有流量通过,老化时间到了
防火墙检测有病毒,会话表立刻老化且加入黑名单
TCP会话收到FIN/RST报文后的会话老化
TCP连接建立成功后
NGFW收到第一个FIN报文,将会话老化时间设置为900秒(默认时间)
收到第二个FIN/RST报文后,NGFW将会话老化时间设置为10秒(默认时间)
修改的老化时间不够FTP长时间下载 用户通过FTP下载大文件,需要间隔很长时间才会在控制通道继续发送控制报文。
数据库操作 用户需要查询数据库服务器上的数据,这些查询操作的时间间隔远大于TCP的会话老化时间。
在长连接功能中,可以通过ACL来指定流量,为这些特殊流量设定超长的老化时间。目前仅支持对TCP协议配置长连接
解决方案;
长会话:默认会话时间
可以修改
检查:
针对某一个应用,写高级ACL匹配
定义长会话配置
第一步:使用ACL匹配
第二步:调用
第三步:修改长会话时间
出接口 查路由表
NEXT-HOP
下一跳
a) 正常的下一跳
b) 127.0.0.1 防火墙自身的流量
MAC地址全0情况
MAC: 00-00-00-00-00-00
a) 当目的IP为防火墙上的接口地址时,下一跳IP为127.0.0.1,MAC为全0
b) 转发到虚拟墙里的报文,下一跳MAC为全0
c) ARP请求失败时,下一跳IP的MAC为全0
d) 非全0 查看ARP表
流量问题
a) 正向报文和反向报文
b) 排错使用,判定是否去往目标,以及能不能回到源地址
c) —> —< 为0 0
–> 与 ±>区别
a) ----正常,没有任何意义
b) ±> -----证明ASPF功能开启
ICMP协议为啥有端口
ICMP有端口?为什么防火墙会话表里面有?
a) 源端口—ICMP报文中的ID字段十六进制变成二进制再转化为十进制,对应值就是源端口
b) 目的端口—ICMP报文中的Type与Code字段做与运算,得出结果为目的端口
策略名称
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/6677.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~