【Flask开发实战】项目介绍-防火墙规则查询系统

一、前言

硬件防火墙为常备主用网络安全设备,主要通过网络访问控制方式实现安全防护。

不同厂家防火墙的网络访问控制功能均采用同样的模式操作:防火墙配置若干条防火墙规则,当IP包到来,防火墙根据包的五元组属性(协议、源地址、源端口、目的地址、目的端口)和到来及目的接口所属安全域按顺序对规则匹配(目的接口由路由决定),对IP包转发还是丢弃由首条命中的规则决定,一旦命中后,后续规则将不在匹配,如果没有命中,包默认丢弃。

大型IT网络环境中,可能采用了不同厂商防火墙支撑各类业务安全,不同墙之间互相也有关联。在网络安全日常维护中,如何审计全部防火墙网络策略是否安全合理,如何快速查找指定IP开放策略范围,如何统一纳管不同品牌防火墙统一查询规则,这些对于提升运维效率和安全防护水平尤其重要。

二、防火墙规则基础介绍

每条防火墙规则的核心要素包含:协议类型(TCP/UDP等)、源安全域、目的安全域、源地址(范围)、目的地址(范围)、端口(服务)、动作(允许/拒绝),这些要素参与匹配,其余要素为备注性质,但对理解规则也十分重要,包括:规则号(非匹配顺序,用于唯一性确定规则)、规则名称、描述。

早期的防火墙,规则以ACL文本形式配置,上述要素每样只能单选一条,但现代防火墙拓展了规则范围,安全域、地址和端口均能多选和为空。

协议类型:TCP、UDP、icmp等

安全域:文本字符串,可多条或为空。

地址:基本的单条地址录入有三种形式,包括单个地址host,网络掩码subnet、地址范围range。

服务:对于协议为TCP/UDP,单条服务包含源端口范围和目的端口范围,即开始结束共4个字段,每个取值都是0~65535。

三、项目开发需求

1、解析不同品牌防火墙配置文件,统一输出格式入库防火墙规则展示表(该表内容基本同防火墙Web界面显示的规则,一条规则一行),实现和防火墙界面相同水平的规则展示;内容包含:

序号:非防火墙规则文本内容,按读取顺序生成

协议类型:文本

规则号:文本

规则名称:文本

源安全域、目的安全域:文本可多个逗号隔开

源地址、目的地址:文本可多个逗号隔开,文本展示内容参考防火墙Web界面。

服务:文本可多个逗号隔开

动作:允许/拒绝

描述:文本

2、生成防火墙规则展开表(根据基础展示表笛卡尔展开生成,每条规则很多行,用于精确查询条件匹配),实现IP地址点对点的高级查询,并且可自定义地址组对象和端口组对象作为条件进行高级查询,包含内容:

序号:内容同规则展示表

协议类型:内容同规则展示表

规则号:内容同规则展示表

规则名称:内容同规则展示表

源安全域、目的安全域:内容同规则展示表

源地址、目的地址:每个包含4个字段,开始地址、结束地址、地址文本、地址组名称

服务:包含4个字段,开始源端口、结束源端口、开始目的端口、结束目的端口、服务组名称

动作:内容同规则展示表

描述:内容同规则展示表

 四、开发工作项

根据开发需求,梳理出需要进行的工作事项,包含了以下内容:

1、防火墙配置文本数据的解析、清洗、加工、处理、入库。(生成防火墙规则基础表数据和展开表数据,各类表数据入库保存。)

2、网络防火墙规则查询页面设计、需求功能开发实现。

3、功能测试验证,问题整改。

五、预期效果

登录页面

首页展示

防火墙规则查询页面(支持基本查询、高级查询) 

防火墙规则明细查询(展开后规则详情)

 

本次实现系统功能采用shel+python+flask+mysql的搭配实战整套开发过程。后续文章会展开一步一步来写具体实现过程。届时会给出部分测试数据,有兴趣的小伙伴也可动手一起玩一下~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/749515.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

突破编程_前端_JS编程实例(工具栏组件)

1 开发目标 工具栏组件旨在模拟常见的桌面软件工具栏,所以比较适用于 electron 的开发,该组件包含工具栏按钮、工具栏分割条和工具栏容器三个主要角色,并提供一系列接口和功能,以满足用户在不同场景下的需求: 点击工具…

【MatLab】之:Simulink安装

一、内容简介 本文介绍如何在 MatLab 中安装 Simulink 仿真工具包。 二、所需原材料 MatLab R2020b(教学使用) 三、安装步骤 1. 点击菜单中的“附加功能”,进入附加功能管理器: 2. 在左侧的“按类别筛选”下选择Using Simulin…

Linux网络编程: IP协议详解

一、TCP/IP五层模型 物理层(Physical Layer):物理层是最底层,负责传输比特流(bitstream)以及物理介质的传输方式。它定义了如何在物理媒介上传输原始的比特流,例如通过电缆、光纤或无线传输等。…

购票小程序有哪些功能

​通过小程序购买电子票,然后在使用时,出示电子票二维码,由商家进行验证/核销。通过小程序购票和核销,使得整个流程非常顺利,免去了线下购票的繁琐,而且还容易遗失。下面我们就来具体看一下小程序如何进行购…

Postman进行Websocket接口测试

Postman进行Websocket接口测试 前言下载地址使用1、new一个一个WebSocket Request2、填写内容和需要请求头携带的参数3、表示成功 网页请求101表示握手成功 前言 有些较低版本postman不支持websocket接口测试,如果根据此文未找到创建websocket接口测试的目录&#…

面向对象(C# )

面向对象(C# ) 文章目录 面向对象(C# )ref 和 out传值调用和引用调用ref 和 out 的使用ref 和 out 的区别 结构体垃圾回收GC封装成员属性索引器静态成员静态类静态构造函数拓展方法运算符重载内部类和分布类 继承里氏替换继承中的…

Qt 鼠标滚轮示例

1.声明 void wheelEvent(QWheelEvent *event) override;2.实现&#xff08;方便复制、测试起见用静态变量&#xff09; #include <mutex> void MainWindow::wheelEvent(QWheelEvent *event) {static QLabel *label new QLabel("Zoom Level: 100%", this);st…

elementUi中表格超出一行省略,鼠标放入显示完整提示

一、想要的效果 二、代码&#xff0c;加入show-overflow-tooltip即可 <el-table-column min-width"220" prop"content" show-overflow-tooltip> </el-table-column>

PCB设计中的MARKER

今天在给板子布局的时候发现了一个这样的东西&#xff0c;名叫MARKER&#xff0c;查了一下这个东西分享一下&#xff1a; 目录 MARKER是什么样的&#xff1f; MARKER的用途&#xff1a; MARKER是必须的吗&#xff1f; MARKER是什么样的&#xff1f; 他在PCB中是这样的&…

web 课程

文章目录 格式图片超链接书签链接表格例子横跨束跨 格式 <br /> <br/> #换行图片 <img> 标签是用于在网页中嵌入图像的 HTML 标签&#xff0c;它有一些属性可以用来控制图像的加载、显示和交互。以下是对 <img> 标签常用属性的详细介绍&#xff1a;…

MySQL基础架构

文章目录 MySQL基础架构一、连接器 - 建立连接&#xff0c;权限认证二、查缓存 - 提高效率三、分析器 - 做什么四、优化器 - 怎么做五、执行器 - 执行语句六、存储引擎1、存储引擎的概述2、存储引擎的对比3、存储引擎的命令4、存储引擎的选择 MySQL基础架构 大体来说&#xff…

旅游管理系统 |基于springboot框架+ Mysql+Java+Tomcat的旅游管理系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 管理员功能登录前台功能效果图 系统功能设计 数据库E-R图设计 lunwen参考 摘要 研究…

Transformer面试题总结101道

在本文中&#xff0c;我们将回答一系列关于Transformer的问题&#xff0c;涵盖了从基础概念到高级应用的多个方面。无论您是准备面试、学习深度学习&#xff0c;还是对自然语言处理技术感兴趣&#xff0c;都希望本文能为您提供有益的启示和知识。 注&#xff0c;本文的面试题借…

idea中database的一些用法

1、查看表结构 方法1&#xff0c;右键&#xff0c;选这个 方法2 双击表后&#xff0c;看到数据&#xff0c;点DDL 方法3 写SQL时&#xff0c;把鼠标放在表名上&#xff0c;可以快速查看表结构 2、表生成对应的实体类 表中右键&#xff0c;选择这2个&#xff0c;选择生成的路…

FPGA和ASIC

前言 大家好&#xff0c;我是jiantaoyab&#xff0c;这是我所总结作为学习的笔记第16篇,在本篇文章给大家介绍FPGA和ASIC。 一个四核i7的CPU的晶体管中有20亿的晶体管&#xff0c;需要链接起20亿的晶体管可不是一件容易的事情&#xff0c;所以设计一个CPU需要用年来算&#x…

【代码随想录】【回溯算法】补day24:组合问题以及组合的优化

回溯算法&#xff1a;递归函数里面嵌套着for循环 给定两个整数 n 和 k&#xff0c;返回 1 … n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] 包含组合问题和组合问题的剪枝优化 class solution:def combine(se…

C# 第三方曲线库及其特点

在 C# 中&#xff0c;有几个第三方库可以用于绘制曲线图&#xff0c;每个库都有自己的特点和优势。以下是一些常见的 C# 第三方曲线库及其特点&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.LiveC…

力扣L10--- 3. 无重复字符的最长子串--2024年3月14日

1.题目 2.知识点 注1&#xff1a;containsKey 是 Java 中 HashMap 类的一个方法&#xff0c;用于检查哈希表中是否包含指定的键。 注2&#xff1a;在哈希表&#xff08;HashMap)中&#xff0c;每个键对应着唯一的值&#xff0c;因此键不能重复&#xff0c;但值可以重复。 (1)创…

Java后端面试经验分享,~纯分享

本文将从面试、工作、学习三个方面分享最近面试的一些心得以及以后发展的一些规划&#xff0c;仅供参考&#xff0c;哈哈&#xff0c;毕竟本人也很菜&#xff0c;因为菜才要多学习。一会儿也会分享两本Java面试题库&#xff08;题库是b站大学找的&#xff0c;一会儿我也会分享出…

SpringBoot整合Seata注册到Nacos服务

项目引入pom文件 <!-- SpringCloud Seata 组件--> <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-seata</artifactId><version>${alibaba.seata}</version><exclusions><exc…