当前位置: 首页 > news >正文

防火墙技术(三):状态检测和会话机制

状态检测

当报文到达防火墙后,防火墙允许报文通过,同时还会针对报文访问的这个行为建立会话,会话中包含PC发出的报文信息如地址和端口等
当收到报文的回应报文时,防火墙会把回应报文的信息和会话中的信息进行比对,如果信息匹配,则直接允许回应报文通过
在这里插入图片描述

###会话

  1. 会话是通信双方建立的连接在防火墙上的具体体现,代表两者的连接状态
  2. 一条会话就表示通信双方的一个连接
  3. 防火墙上多条会话的集合就叫作会话表
  4. –>符号前面的是源,符号后面的是目的
    在这里插入图片描述
    会话的五元组:
  5. 源地址
  6. 源端口
  7. 目的地址
  8. 目的端口
  9. 协议
    对于一些没有端口信息的报文,比如ICMP协议,报文中不带端口信息,防火墙会把ICMP报文头中ID字段值作为ICMP会话的源端口,会以固定值2048作为ICMP会话的目的端口
    比如IPSec中的AH协议和ESP协议,也不带端口信息,防火墙会直接将这两个协议的会话中的源和目的端口都记录为0

查看会话信息

### 查看会话表
display firewall session table

###状态检测和会话机制补遗

### 会话详细信息
display firewall session table verbose
  1. Zone 表示报文在安全区域之间流动的方向,trust–> untrust表示报文是从Trust区域流向Untrust区域
  2. TTL 表示该条会话的老化时间,这个时间到期后,这条会话也将会被清除
  3. Left 表示该条会话剩余的生存时间
  4. Interface 表示报文的出接口,报文从这个接口发出
  5. NextHop 表示报文去往的下一跳的IP地址,本组网中是Web服务器的IP地址
  6. MAC 表示报文去往的下一跳的MAC地址,本组网中是Web服务器的MAC地址
  7. <–packets:4 bytes:465 表示会话反向方向上的报文统计信息,即Web服务器向PC发送报文的个数和字节数
  8. –>packets:7 bytes:455 表示会话正向方向上的报文统计信息,即PC向Web服务器发送报文的个数和字节数

会话是动态生成的,但不是永远存在的。如果长时间没有报文匹配,则说明通信双方已经断开了连接,不再需要该条会话了。此时,为了节约系统资源,防火墙会在一段时间后删除会话。该时间称为会话的老化时间,即TTL
老化时间的取值非常重要,某种业务的会话老化时间过长,就会一直占用系统资源,有可能导致其他业务的会话不能正常建立;会话老化时间过短,有可能导致该业务的连接被防火墙强行中断,影响业务运行。华为防火墙已经针对不同的协议设置了相应的会话默认老化时间
比如ICMP的会话老化时间是20s, DNS的会话老化时间是30s等

### 调整TTL老化时间
firewall session aging-time dns 10

网络中还有一种类型的业务,一条连接上的两个连续报文可能间隔时间很长,最具代表性的就是SQL数据库业务。用户查询SQL数据库服务器上的数据时,查询操作的时间间隔可能会远大于SQL数据库业务的会话老化时间,防火墙上该业务的会话老化之后,就会出现用户访问SQL数据库变慢或者无法继续查询的问题
如果只靠延长这些业务所属协议的会话老化时间来解决这个问题,会导致一些同样属于这个协议,但是其实并不需要这么长的老化时间的会话长时间不能得到老化,占用了系统资源,影响其他业务
为此,华为防火墙提供了“长连接”功能,通过ACL规则来识别报文,只有匹配ACL规则的特定报文的会话老化时间才会被延长。与单纯的通过调整协议的会话老化时间相比,长连接功能的控制粒度更加精确。默认情况下,应用了长连接功能的报文的会话老化时间是168h(相当长了吧!),当然这个时间也可以手动调整
备注:目前仅支持对TCP协议类型的报文配置长连接功能

### 长连接配置
acl 3000
rule permit tcp source 192.168.0.1 0 destination 172.16.0.2 0 destination-port eq sqlnet
quit
firewall zone interzone trust untrust
long-link 3000 outbound

###状态检测和会话创建

防火墙上的状态检测功能将属于同一个连接的报文都视为一个整体数据流,用会话来表示这条连接

  1. 判断一个TCP连接的主要标志就是SYN报文,我们也把SYN报文称为TCP连接的首包。对于TCP协议,防火墙只有收到SYN报文并且配置的规则允许SYN报文通过才会建立会话,后续的TCP报文匹配会话直接转发。如果防火墙没有收到SYN报文,只收到了SYN+ACK或ACK等后续报文,是不会创建会话的,并且会将这些报文丢弃
  2. 内部网络访问外部网络的请求报文直接通过路由器到达外部网络,而外部网络的回应报文,先经过路由器转发到防火墙,由防火墙处理后再转发到路由器,最后由路由器发送到内部网络。也就是说,防火墙无法收到SYN报文,只收到了SYN+ACK报文。这种通信双方交互的报文不同时经过防火墙的情况,叫作报文来回路经不一致
### 查看防火墙丢包信息
display firewall statistic system discard### 查看会话详细信息
display firewall session table verbose### 取消关闭状态检测功能
undo firewall session link-state check

TCP报文来回不一致情况

在这里插入图片描述
在这里插入图片描述

###UDP

UDP不同于TCP,他没有连接状态协议,对于UDP,防火墙收到UDP报文后,无论状态检测功能是处于开启还是关闭,只要防火墙配置的规则允许UDP报文通过,防火墙就会就会建立会话

###ICMP

对于Ping报文,在开启状态检测功能时,防火墙只有收到Ping回显请求报文,并且防火墙上配置的规则允许Ping回显请求报文通过,才会建立会话
如果防火墙没有收到Ping回显请求报文,只收到了Ping回显应答报文,是不会创建会话的,并且会将Ping回显应答报文丢弃。在关闭状态检测功能时,防火墙收到Ping回显请求报文和Ping回显应答报文,都会创建会话

###UDP、TCP、ICMP协议创建会话情况

在这里插入图片描述

http://www.dtcms.com/a/359248.html

相关文章:

  • 接口自动化测试框架
  • python pyqt5开发DoIP上位机【自动化测试的逻辑是怎么实现的?】
  • 深度解析Fluss LockUtils类的并发艺术
  • 手写MyBatis第43弹:插件拦截原理与四大可拦截对象详解
  • Agent实战教程:LangGraph结构化输出详解,让智能体返回格式化数据
  • Keil5 MDK_541官网最新版下载、安装
  • offsetof宏的实现
  • 线程池项目代码细节2
  • 互联网医院系统源码解析:如何从零搭建高效的在线问诊平台
  • SNMPv3开发--EngineID安全访问机制
  • 腾讯云的运维笔记——从yum的安装与更新源开始
  • 深入理解 Linux 驱动中的 file_operations:从 C 语言函数指针到类比 C++ 虚函数表
  • centos7中MySQL 5.7.32 到 5.7.44 升级指南:基于官方二进制包的原地替换式升级
  • 有个需求:切换车队身份实现Fragment的Tab隐藏显示(车队不显示奖赏)
  • SNMPv3开发--简单使用
  • 【Linux基础】深入理解Linux环境下的BIOS机制
  • Python - 机器学习:从 “教电脑认东西” 到 “让机器自己学规律”
  • 项目管理和产品管理的区别
  • docker,mysql安装
  • vector的学习和模拟
  • 揭秘表格推理的“思维革命”:RoT模型介绍
  • 【机器学习基础】机器学习中的容量、欠拟合与过拟合:理论基础与实践指南
  • Vue生命周期、工程化开发和脚手架、组件化开发
  • 学习日志41 python
  • 打工人日报#20250830
  • 内网后渗透攻击--跨域攻击
  • 给某个conda环境安装CUDA 12.4版本 全局CUDA不变
  • Mybatis 动态sql
  • 【树形数据结构】李超线段树 (Li-Chao Tree)
  • 【深度学习新浪潮】有没有什么方法可以将照片变成线描稿,比如日式漫画的那种?