防火墙策略管理小工具——网络安全

article/2025/11/5 21:58:55

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、防火墙配置文件
    • 1. 地址集合
    • 2. 服务集合
    • 3. 规则集合
  • 二、防火墙策略管理小工具的开发
    • 1. 主要功能
    • 2. 框架设计
      • 2.1 IP_Set对象
      • 2.2 Service对象
      • 2.3 Rule对象
      • 2.4 CfgReader对象
      • 2.5 规则格式化读取lua脚本
        • 2.5.1 读取源地址lua脚本
        • 2.5.2 服务集合
      • 2.6 rule_inclusion设计
      • 2.7 GUI设计
      • 2.8 SVG图浏览设计
  • 三、使用和示例
    • 1. 程序文件夹
    • 2. FirwallWin.exe
    • 浏览层次关系树图
  • 四、未来工作和程序下载
  • 总结


前言

数据中心的网络安全防护首先是防火墙的策略管理。随着数据中心的不断建设,防火墙安全策略不断增加,少则几百条,多则几千条到上万条,管理难度不断增加。各规则的源地址、目的地址存在着交集和包含关系。如果新增规则时对现有防火墙的关系缺乏清晰的了解,将导致防火墙的规则越来越紊乱,导致存在很大的业务安全和网络安全隐患。
目前对防火墙策略进行高效管理的工具不多,防火墙策略的梳理和管理十分不方便。因此,工作之余利用强大的Python语言开发了一款防火墙策略管理小工具,读入防火墙策略配置文件,提取地址集合、服务集合和规则集合,分析规则地址的包含关系,利用有向图工具绘制出规则包含关系层次树状图,从而为下一步的规则融合和检测提供一个清晰的视图!


一、防火墙配置文件

本人对网络技术接触时间不长,防火墙的基本操作和运维几乎不懂。目前通过对华为和华三两款防火墙的配置文件进行分析发现与安全规则相关的主要配置包括三部分:

1. 地址集合

格式如下:

#
ip address-set 地址1 type objectaddress 0 10.3.59.198 mask 32
#
ip address-set 地址2 type objectaddress 0 range 10.1.13.83 10.1.13.85address 1 10.1.13.88 mask 32

上述集合中包括了range和mask两种格式。

2. 服务集合

格式如下:

#
ip service-set TCP_8288 type objectservice 0 protocol tcp source-port 0 to 65535 destination-port 8288
#
ip service-set TCP_7002-65535 type objectservice 0 protocol tcp source-port 0 to 65535 destination-port 7002 to 65535
#
ip service-set TCP_2294/7100/7200/7300/7800/9230/9103 type objectservice 0 protocol tcp source-port 0 to 65535 destination-port 2294 7100 7200 7300 7800 9103 9230

上述集合中包含了单个端口和端口段两种格式。

3. 规则集合

格式如下:

 rule name rule32432423policy loggingsession loggingsource-address address-set 10.3.0.0/16destination-address address-set 地址集合1service TCP_49profile av AV_LOGprofile ips IPS_LOGaction permitrule name rule435323policy loggingsession loggingsource-address address-set 10.1.13.83/84/85/88source-address address-set 地址集合2destination-address address-set 10.3.98.27/32service TCP_9027profile av AV_LOGprofile ips IPS_LOGaction permit

在规则中定义了目的地址、源地址、服务和action。

二、防火墙策略管理小工具的开发

1. 主要功能

  • 配置文件读入:能够从不同厂家格式的配置文件中读取规则集。关键点是如何适应不同格式的配置文件。
  • 规则自身的融合:将规则源地址、目的地址和服务端口中连续部分融合成地址段和端口段。
  • 规则包含关系分析:分析各规则目的地址、源地址的包含关系(暂没包括端口关系),去掉闭合(即从一个规则到另一个规则存在两个以上的连接)的短连接,只保留最长连接(这点与传统图处理保留最短连接不同)。
  • 规则包含关系层次树的绘制(注意该树可能有多个根节点)。

2. 框架设计

2.1 IP_Set对象

  • 以起止地址来统一表示单个IP和IP地址段
  • 根据地址字符串分析出起止IP地址
  • 地址集合融合成地址段

2.2 Service对象

  • 包括源端口、目的端口和协议
  • 服务集合融合

2.3 Rule对象

  • 包括目的地址集合、源地址集合、服务集合、Enable、Permit
  • 规则自身融合

2.4 CfgReader对象

  • 读入地址集合:根据lua脚本中cfg的配置读取
  • 读入服务集合:根据lua脚本中cfg的配置读取
cfg = {}
cfg['ipset_header'] = 'object-group ip address'
cfg['ipset_name'] = 3     --name所在的字段位置
cfg['ipset_linestart'] = ' '   --行开始的标志字符
cfg['servset_header'] = 'object-group service'
cfg['servset_name'] = 2
cfg['servset_linestart'] = ' '
cfg['rule_header'] = ' rule '
cfg['rule_name'] = 4
cfg['rule_linestart'] = '  '

2.5 规则格式化读取lua脚本

2.5.1 读取源地址lua脚本

line为行字符串内容,linsegs为line以空格分劈的字符数组,addrdic为地址集合字典。
返回true, ips则表示为地址集合对象。
返回false,ipstr则表示为标准格式的IP字符串

function read_srcips(line, linesegs, addrdic)if(string.find(line, "source%-ip") ~= nil) thenipstr = linesegs[3]status, ips = pcall(function(dic, key) return dic[key] end, addrdic, ipstr)if status thenreturn true, ipselseif string.match(ipstr, '%d+%.%d+%.%d+%.%d+') ~= nil thenreturn false, ipstrendendendreturn nil, nil
end

2.5.2 服务集合

line为行字符串内容,linsegs为line以空格分劈的字符数组,servdic为服务集合字典。
返回true, ips则表示为服务集合对象。
返回false,ipstr则表示为标准格式的服务字符串

function read_servs(line, linesegs, servdic)if(string.find(line, "service") ~= nil) thenservstr = linesegs[3]--print(pcall(function(dic, key) return dic[key] end, servdic, servstr))if pcall(function(dic, key) return dic[key] end, servdic, servstr) thenreturn true, servdic[servstr]else--print(servstr)--print(string.match(servstr, '%d+%-?%d*'))if string.match(servstr, '%d+%-?%d*') ~= nil thenreturn false, 'tcp:0-65535:'..servstrendendendreturn nil, nil
end

2.6 rule_inclusion设计

  • 分析规则源地址和目的地址是否存在包含关系,如果存在则添加到有向图中。
  • 清除有向图中所有的闭合,只保留最长连接。
  • 绘制层次关系树图

2.7 GUI设计

  • 采用比较简单的DearPyGui开发界面,设置处理的lua脚本
  • 导入配置文件,显示规则列表
  • 规则包含关系分析,将层次关系树图(svg格式)保存在GraphFig目录下

2.8 SVG图浏览设计

由于一般图片浏览不支持svg格式图片,写了一个displaysvg.html页面,通过js来浏览规则包含关系层次树。

三、使用和示例

1. 程序文件夹

在这里插入图片描述

2. FirwallWin.exe

运行程序,导入test.cfg,显示如下界面,并进行规则包含分析,等待分析结束!!
在这里插入图片描述

浏览层次关系树图

打开displaysvg.html,选择GraphFig下所有的文件,选择所有文件!就可以浏览了!个人觉得这两个图的规则的包含关系有点匪夷所思!
在这里插入图片描述
在这里插入图片描述

四、未来工作和程序下载

防火墙管理小工具下载:https://download.csdn.net/download/tkyjqh/14926685
未来的工作:

  • 防火墙高危端口规则分析
  • 防火墙规则优化分析

总结

本小工具开发时间短,估计还存在不少Bug,对不同厂家的配置文件也没有多试,如有不爽,请多包含。欢迎留言指正!!!!


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

相关文章

飞塔防火墙策略设置

上周公司要求对一些电脑进行上网限制,只允许部分软件上网。 一、添加地址:在“策略与对象”--“地址”--“新建” 二、输入IP地址:(最大陷阱,公司是使用无线上网,对飞塔而言,整个无线网是一个端…

防火墙策略配置

拓扑 任务一 c2 ping c1 ,c1 not ping c2 首先我们要做的就是配置接口、网关、子网掩码,使得c1与c2可以互ping 如上图,我们先开启两个客户机,为方便测试。 命令 syssysname FWdis ip int br 查看状态int g0/0/1ip add 192.168.…

防火墙的策略

1.防火墙支持哪些NAT技术,主要的应用场景是什么? 首先,NAT的分类: 在内外网之间,流量进出的两个方向,而NAT技术是包含源地址转换和目标地址转换这两类,在通常的情况下,源地址转换是…

HCIA-Security -- 防火墙安全策略

防火墙安全基本原理 安全区域安全策略状态检测和会话机制ASPF技术防火墙在网络安全中的应用场景 一、防火墙安全基本原理 防火墙不仅只是一个“入口的屏障”,而应该是多个网络的接入控制点。所有进出内网的数据流都应该首先经过防火墙,形成一个信息进出…

防火墙策略

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

kaggle数据集下载

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

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

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

ImageNet ISLVRC2012数据集下载和使用

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

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

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

kaggle数据集的下载

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

KITTI数据集下载链接

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

ImageNet数据集 下载

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

机器学习数据集下载

几个常用的数据集下载网站: 1. kaggle数据集 网址: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…

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

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

ScanNet数据集下载

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

kaggle数据集下载步骤

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

公开数据集下载地址

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

Java 18 正式发布

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

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

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

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

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