防火墙策略

article/2025/11/5 22:50:03

定义与原理:

防火墙的基本作用是保护特定网络免受“不信任”的网络的攻击,但是同时还必须允许两个网络之间可以 进行合法的通信。 安全策略是控制设备对流量转发以及对流量进行内容安全一体化检测的策略,作用就是对通过防火墙的 数据流进行检验,符合安全策略的合法数据流才能通过防火墙。

安全策略的内容

安全策略主要包含下列配置内容:

策略匹配条件:源安全域,目的安全域,源地址,目的地址,用户,服务,应 用,时间段。

策略动作:允许,禁止。

内容安全profile:(可选,策略动作为允许的时候执行)反病毒,入侵防御,URL过滤,文件过 滤,内容过滤,应用行为控制,邮件过滤。 

安全策略工作流程 :

 安全策略配置:


执行security-policy命令进入安全策略视图。
执行rule name rule-name命令创建一个安全策略并进入该策略视图。
action {permit | deny}配置安全策略执行动作。
source-zone {zone-name &<1-6> | any}指定源安全区域。
source-address {ipv4-address ipv4-mask-length}指定源地址。
destination-zone {zone-name &<1-6> | any}指定目的安全区域。
destination-address {ipv4-address ipv4-mask-length} 指定目的地址。
service {service-name &<1-6> | any} 指定服务类型。
application { any | app app-name &<1-6> | app-group app-group-name &<1-6> |
category category-name [ sub-category sub-category-name ] &<1-6 } 配置安全策略规则
的应用。
user {user-name &<1-6> | any} 配置用户信息。
profile { app-control | av | data-filter | file-block | ips | mail-filter | urlfilter } name 配置安全策略规则引用安全配置文件。[sysname]security-policy
[sysname-policy-security]rule name policy_sec
[sysname-policy-security-rule-policy_sec]source-address 1.1.1.1 24
[sysname-policy-security-rule-policy_sec]source-zone untrust
[sysname-policy-security-rule-policy_sec]destination-address geo-location
BeiJing
[sysname-policy-security-rule-policy_sec]service h323
[sysname-policy-security-rule-policy_sec]action permit
[sysname-policy-security-rule-policy_sec]profile av profile_av

防火墙的会话表

域间转发

“状态检测”机制以流量为单位来对报文进行检测和转发,即对一条流量的第一个报文进行包过滤规则检 查,并将判断结果作为该条流量的“状态”记录下来。对于该流量的后续报文都直接根据这个“状态”来判断 是转发还是丢弃,而不会再次检查报文的数据内容。这个“状态”就是我们平常所述的会话表项。这种机 制迅速提升了防火墙产品的检测速率和转发效率,已经成为目前主流的包过滤机制。

其中TCP协议的数据报文,一般情况下在三次握手阶段除了基于五元组外,还会计算及检查其它字段。 三次握手建立成功后,就通过会话表中的五元组对设备收到后续报文进行匹配检测,以确定是否允许此 报文通过。

 

查询和创建会话

 状态检测机制

状态检测机制开启状态下,只有首包通过设备才能建立会话表项,后续包直接匹配会话表项进行转 发。

状态检测机制关闭状态下,即使首包没有经过防火墙,后续包只要通过防火墙也可以生成会话表 项。

 

对于TCP报文

        开启状态检测机制时,首包(SYN报文)建立会话表项。对除SYN报文外的其他报文,如果没有对应会话表项(设备没有收到SYN报文或者会话表项已老化),则予以丢弃,也不会建立会 话表项。

        关闭状态检测机制时,任何格式的报文在没有对应会话表项的情况下,只要通过各项安全机制的检查,都可以为其建立会话表项。

对于UDP报文

        UDP是基于无连接的通信,任何UDP格式的报文在没有对应会话表项的情况下,只要通过各 项安全机制的检查,都可以为其建立会话表项。

对于ICMP报文

        开启状态检测机制时,没有对应会话的ICMP应答报文将被丢弃。

        关闭状态检测机制时,没有对应会话的应答报文以首包形式处理。

会话表项

会话是状态检测防火墙的基础,每一个通过防火墙的数据流都会在防火墙上建立一个会话表项,以五元 组(源/目的IP地址、源/目的端口、协议号)为Key值,通过建立动态的会话表提供域间转发数据流更高 的安全性。 

<USG> display firewall session table verbose
Current total sessions: 1
icmp VPN: public --> public
Zone: trust --> untrust Slot: 8 CPU: 0 TTL: 00:00:20 Left: 00:00:19
Interface: GigabitEthernet6/0/0 Nexthop: 107.255.255.10
<--packets: 134 bytes: 8040 -->packets: 134 bytes: 8040 107.229.15.100:1280 -->
107.228.10.100:2048

会话表与状态检测

状态检测防火墙使用基于连接状态的检测机制,将通信双方之间交互的属于同一连接的所有报文都作为 整体的数据流来对待。当防火墙安全策略允许报文通过时,将会建立如下的会话表

[USG] display firewall session table verbose
Current total sessions: 1
http VPN:public --> public
Zone: local--> trust Remote TTL: 00:00:20 Left: 00:00:08
Output-interface: GigabitEthernet0/0/2 Nexthop: 10.1.1.1 MAC: 00-e0-4c-88-3a-32
<-- packets:0 bytes:0 --> packets:8 bytes:340
10.1.1.1:43981-->10.1.1.10:43981

传统包过滤防火墙中,为了使由内网PC主动访问外网资源的回应报文也顺利通过防火墙,还需要再 配置一条反向规则。当使用状态检测防火墙时,报文成功被防火墙转发后,设备会生成一个五元组的会话表。让我们来了解一下会话表中包含了哪些内容。

在一个完整的会话表中,如果使用了verbose参数,将会看到更完整的信息:

        Zone:表示报文在安全区域之间流动的方向,图中的信息表示报文是从Trust区域流向 Untrust区域。

        TTL:表示该条会话的老化时间,这个时间到期后,这条会话也将会被清除。Left:表示该条 会话剩余的生存时间。

        Output-interface:表示报文的出接口,报文从这个接口发出。

        Nexthop:表示报文去往的下一跳的IP地址,本网络拓扑中是Web服务器的IP地址。

        MAC:表示报文去往的下一跳的MAC地址,本网络拓扑中是Web服务器的MAC地址。

        <--packets:6 bytes:390:表示会话反方向上的报文统计信息,即Web服务器向PC发送报文的 个数和字节数。

         -->packets:8 bytes:340:表示会话正方向上的报文统计信息,即PC向Web服务器发送报文的 个数和字节数。

当遇到来回路径不一致的组网时,由于首包没有经过防火墙因而没有创建会话表,则回应的报文经过防 火墙时又找不到会话表,防火墙将丢弃后续报文导致通信中断。

[USG] display firewall session table verbose
Current total sessions: 1
http VPN:public --> public
Zone: local--> trust Remote TTL: 00:00:20 Left: 00:00:08
Output-interface: GigabitEthernet0/0/2 Nexthop: 10.1.1.1 MAC: 00-e0-4c-88-3a-32
<-- packets:0 bytes:0 --> packets:8 bytes:340
10.1.1.1:43981-->10.1.1.10:43981

        由于目前的TCP/IP网络主要进行的是逐包转发,事先并不协商实际的物理链路,所以有可能存在一 次通信过程中,部分报文由一个设备转发,另外一部分报文由另一设备转发的情况。例如上图所示 中由内网主动向外建立的连接不需要经过防火墙进行安全检测,但从外网流入内网的数据报文需要 防火墙进行安全检测,因此在同一数据通信中,出现了来回路径不一致的情况。在来回路径不一致 的组网中,设备可能不能接收到一条流量的来回所有报文。这种组网下,就必须关闭状态检测功 能,否则可能由于首包不通过设备,导致会话表不能正常建立。

        从上面的会话表来看,"<--"方向的统计信息为0,只有“<--”方向存在统计信息,这就说明只有外部网络到内部网络的报文经过了防火墙。由此我们得出结论,关闭状态检测功能后,防火墙收到独立 报文后也会建立会话,内外网之间的通信不会中断。在报文来回路径不一致的网络环境中,我们在 防火墙上关闭状态检测功能后,会话中的一个方向上的报文统计信息是0,此时双方的通信也是正 常的,这就是我们上面所说的特殊的网络环境。可见在实际的网络环境中,我们还是要具体情况具 体分析。

会话在转发流程中的位置 

 

 

 

 


http://chatgpt.dhexx.cn/article/JoRZTIyW.shtml

相关文章

kaggle数据集下载

一、首先需要安装kaggle winR→cmd→pip install kaggle 问题&#xff1a;安装到哪来&#xff1f;都说在c盘。可是我找不到&#xff0c;可能因为之前担心c负荷更改路径了&#xff0c;再安装一下发现已经安装成功&#xff0c;且给出了安装路径。 二、注册 (1387条消息) 最新k…

ImageNet 数据集下载与处理(亲测 实用有效无坑版)

下载 通常下载方式有两种&#xff0c; 官网下载和第三方网站上传的资源下载。这里推荐第三方下载&#xff0c;因为官网可能会存在注册麻烦&#xff0c;网页卡顿的情况。 第三方下载方式如下&#xff1a; 里面包含几乎所有常用的ImageNet的数据集以及标注文件。 https://pan.ba…

ImageNet ISLVRC2012数据集下载和使用

最近要在imagenet数据集上做实验&#xff0c;以前只知道这个数据集很大&#xff0c;但是没用过&#xff0c;这次亲自下载然后按照训练集和验证集划分好了&#xff0c;记录一下。 主要参考了这个 https://zhuanlan.zhihu.com/p/370799616 目录 1. 数据集下载2. 数据集处理2.1 训…

coco2017数据集下载(百度网盘)

今天&#xff0c;想要下载coco2017的数据集&#xff0c;奈何官网下载速度太慢&#xff0c;下载过程可谓坎坷&#xff0c;为了让有需求的人少走弯路&#xff0c;这里提供我的百度云链接&#xff0c;大家可自行下载&#xff0c;文件中包括的内容如下&#xff1a; 百度云链接&…

kaggle数据集的下载

感谢阅读本文&#xff0c;喜欢请收藏点赞 准备工作1.安装kaggle库2.注册登录kaggle账户3.kaggle.json的下载与使用4.下载数据集 文件保存路径 准备工作 1.安装kaggle库 2.注册登录kaggle账户 点我跳转 &#xff08;没有帐户的有很多&#xff09; 3.kaggle.json的下载与使用 …

KITTI数据集下载链接

1、简介 KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办&#xff0c;是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。该数据集用于评测立体图像(stereo)&#xff0c;光流(optical flow)&#xff0c;视觉测距(visual odometry)&#xff0c;3D…

ImageNet数据集 下载

文章目录 1. ImageNet 说明2. ILSVRC2012 说明3. ImageNet下载方式4. ImageNet数据组织与使用 1. ImageNet 说明 ImageNet官网&#xff1a;http://image-net.org/ ImageNet 由斯坦福李飞飞教授带领创建&#xff0c;ImageNet 本身有2万多个的类别&#xff0c;超过 1400 万张图…

机器学习数据集下载

几个常用的数据集下载网站&#xff1a; 1. kaggle数据集 网址&#xff1a;Find Open Datasets and Machine Learning Projects | KaggleDownload Open Datasets on 1000s of Projects Share Projects on One Platform. Explore Popular Topics Like Government, Sports, Med…

深度学习常用数据集介绍与下载(附网盘链接)

摘要 这篇博文总结了博主收集的深度学习常用的数据集&#xff0c;包含常用的分类、目标检测及人脸识别任务&#xff0c;对每个数据集给出了简要介绍、官网下载网站以及公众号获取的关键字。因为有的数据集较大&#xff0c;官网的下载速度可能比较慢&#xff0c;为了方便大家管…

ScanNet数据集下载

文章目录 前言1.数据集介绍2.数据集获取3.导出数据集 前言 笔者CV小白选手获取ScanNet数据集是真的闹心&#xff0c;好在最后获取成功啦&#xff01;这里将这两天获取数据集的详细过程记录一下&#xff0c;希望能够帮助到更多人&#xff0c;一起学习进步&#xff01;(o(&#…

kaggle数据集下载步骤

原文链接&#xff1a;https://blog.csdn.net/lxw234lxw/article/details/102968754 本文以APTOS 2019 Blindness Detection竞赛数据库为例&#xff0c;详解下载步骤。 目录 一、安装kaggle库 二、注册kaggle账号 三、找到需要下载的数据集&#xff0c;并接受规则。 四、下载jso…

公开数据集下载地址

这里写目录标题 一、目标检测&#xff0c;分割数据集1.COCO 数据集COCO2014COCO2017 2.PASCAL VOC数据集voc2007数据集&#xff1a;voc 2012数据集&#xff1a; 二、自动驾驶数据集1. BDD100K 数据集2.Nuscenes 一、目标检测&#xff0c;分割数据集 1.COCO 数据集 COCO是一个…

Java 18 正式发布

Oracle 正式推出Java 18&#xff0c;这是世界排名第一的编程语言和开发平台的最新版本。Java 18 (Oracle JDK 18) 提供了数以千计的性能、稳定性和安全性改进&#xff0c;包括对平台的九项增强&#xff0c;这将进一步提高开发人员的工作效率。 最新的 Java 开发工具包 (JDK) 提…

10种受欢迎的前后端相关开发工具

该篇博客翻译自Best Developer Tools for 2021。 1 GitKraken Git Client 连接Git服务器的GUI客户端&#xff0c;支持Windows、 Mac和Linux操作系统。如果你在使用Git时没有使用GitKraken&#xff0c;每天都会感到麻烦。从此刻起&#xff0c;GitKraken直观的UI帮你执行简单或复…

盘点——iOS应用开发常用工具

针对 iOS 平台的应用开发工作,通常都需要借助 IDE、 SDK 等开发工具以提升开发效率。iOS 平台的应用开发生态环境,正随着更多优秀开发者的加入,而变得越来越完善。那么,对于 iOS 应用开发者来说,该如何选出合适的 IDE 或 SDK 工具呢? 不论是 iOS 应用开发公司,还是个人…

Java语言入门概述

一、Java语言入门 一&#xff09;Java语言概述 1、计算机的发展&#xff0c;软件开发介绍 概述&#xff1a; 软件&#xff1a;即一系列按照特定的顺序组织的计算机数据和指令的集合、软件分为系统软件和应用软件。 系统软件&#xff1a;系统软件就是指控制和协调计算机及外…

Java 后端开发必读的 6 本书!

以下内容来自公众号逆锋起笔&#xff0c;关注每日干货及时送达 如果你是一个小白&#xff0c;你打算自学JAVA&#xff0c;你如果想找到一份月薪1万的JAVA开发工程师的工作。那么很简单&#xff0c;你只需要花1个月的时间&#xff0c;学完我推荐的这6本书&#xff0c;再结合一些…

Ant、 Maven 、 Gradle—Java构建工具比较

根据相关报告&#xff0c;大多数Java开发人员使用Maven作为他们的主要构建工具&#xff0c;在67%的受访者中。排名第二和第三的分别是20%的Gradle和11%的Ant。 这三个构建工具一直排在Java开发人员的前三个构建工具中。在本文中&#xff0c;我们比较了Maven、Gradle和Ant&#…

利用JConsole工具监控java程序内存和JVM

项目部署成功后时间过不多久内存就撑爆了&#xff0c;所以需要检测工具来监控项目内存情况。 项目内存爆满 docker容器直接挂掉。启动命令上也加上了内存溢出生成dump日志。 -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath/logs/dump.log 解决问题思路大致有两种 &#x…

python的主流开发工具排名,最常用的python开发工具

有哪些值得推荐的 Python 开发工具? 第一款&#xff1a;最强终端 Upterm它是一个全平台的终端&#xff0c;可以说是终端里的IDE&#xff0c;有着强大的自动补全功能&#xff0c;之前的名字叫做&#xff1a;BlackWindow。 有人跟他说这个名字不利于社区推广&#xff0c;改名叫…