基于Ryu 防火墙的检测和解决异常入侵的流量

news2025/8/16 17:10:31

基于Ryu 防火墙的检测和解决异常入侵的流量

  • 基于Ryu 防火墙的检测和解决异常入侵的流量
    • 防火墙规则
    • 实验仿真环节:
      • 1.下载代码到本地
      • 2.安装相关依赖库
      • 3.设置openflow1.3
      • 4.启动控制器
        • 异常检测:
        • 异常解决:
        • 规则合并:
      • 防火墙规则树:
    • 结论

申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址 全文共计4577字,阅读大概需要3分钟
欢迎关注我的个人公众号:不懂开发的程序猿

基于Ryu 防火墙的检测和解决异常入侵的流量

防火墙规则

规则被定义为一组标准和当数据包匹配标准时要执行的操作。Ryu防火墙规则的标准包括:元素 VLAN、优先级、输入交换机端口、以太网源、以太网目标、以太网帧类型、IP 源、IP 目标、IPv6 源、IPv6 目标、IP 协议、源端口和目标端口。这些也是OpenFlow Switch Specification 中定义的匹配字段。

防火墙规则是定义网络流量的安全策略。任何错误的规则都会让不需要的流量通过或阻止所需的流量,从而危及系统安全。

两个规则之间的关系是它们匹配的一组数据包之间的关系。假设一个规则匹配A数据包,另一个匹配B数据包。如下几种形式:

在这里插入图片描述

(1)不相交:规则中至少有一个标准具有完全不相交的值

(2)完全匹配:规则中的每个条件都完全匹配

(3)包含匹配:一个规则和另一个规则至少有一个标准是彼此的子集,并且对于属性的其余部分,一个等于另一个

(4)相关:两个规则不相交且不包含彼此匹配

两个规则之间可能存在的异常

  • 1.阴影异常:一个规则被另一个规则阴影,如果另一个规则在策略中的规则之前,另一个可以匹配规则匹配的所有数据包并且它们有不同的动作
  • 2.相关性异常:两条规则有不同的动作,一个规则匹配一些匹配另一个的数据包,反之亦然
  • 3.冗余异常:冗余规则对相同的数据包执行与另一个规则相同的操作

Algorithm TreeInsert该算法解决异常如下:

  • 阴影异常:当规则完全匹配时,保留拒绝动作的那个。当规则包含匹配时,使用拒绝操作重新排序规则。
  • 相关异常:将规则分解为不相交的部分并将它们插入列表中。在相关规则的共同部分中,保留拒绝操作的部分。
  • 冗余异常:删除冗余规则。

实验仿真环节:

1.下载代码到本地

git clone https://github.com/ernie55ernie/Anomaly-Firewall-Rule-Detection-And-Resolution.git

在这里插入图片描述

2.安装相关依赖库

cd Anomaly-Firewall-Rule-Detection-And-Resolution/

pip install -r requirements.txt

在这里插入图片描述

3.设置openflow1.3

新开终端:

sudo ovs-vsctl set Bridge protocols=OpenFlow13

在这里插入图片描述

4.启动控制器

新开终端:

sudo ryu-manager rest_firewall.py

在这里插入图片描述

防火墙规则格式:

优先级<方向、源IP、源端口、目的IP、目的端口、动作>

<IN, TCP, 129.110.96.117, ANY, ANY, 80, REJECT>

<IN, TCP, 129.110.96.*, ANY, ANY, 80, ACCEPT>

<IN, TCP, ANY, ANY, 129.110.96.80, 80, ACCEPT>

<IN, TCP, 129.110.96.*, ANY, 129.110.96.80, 80, REJECT>

<OUT, TCP, 129.110.96.80, 22, ANY, ANY, REJECT>

<IN, TCP, 129.110.96.117, ANY, 129.110.96.80, 22, REJECT>

<IN, UDP, 129.110.96.117, ANY, 129.110.96.*, 22, REJECT>

<IN, UDP, 129.110.96.117, ANY, 129.110.96.80, 22, REJECT>

<IN, UDP, 129.110.96.117, ANY, 129.110.96.117, 22, ACCEPT>

<IN, UDP, 129.110.96.117, ANY, 129.110.96.117, 22, REJECT>

<OUT, UDP, ANY, ANY, ANY, ANY, REJECT>

运行示例代码:python anomaly_resolver.py

在这里插入图片描述

异常检测:

python main.py --path rules/example_rules_1 –detect

伪代码(r s代表了防火墙不同规则):

old rules list ← read rules from config file

new rules list ← empty list

for all r ∈ old rules list do

	Insert(r, new rules list)

	for all r ∈ new rules list **do**

		for all s ∈ new rules list after r **do**

        if r ⊂ s **then**

            if r.action = s.action **then**

                Remove r from new rules list

            break

在这里插入图片描述

异常解决:

python main.py --path rules/example_rules_1 –resolve

伪代码(r s代表了防火墙不同规则):

if new rules list is empty then

	insert r into new rules list

else

	inserted ← false

	for all s ∈ new rules list do

		if r and s are not disjoint then

			inserted ← Resolve(r, s)

			if inserted = true then

				break

		if inserted = false then

			Insert r into new rules list
<IN, TCP, 129.110.96.0/24, *, 129.110.96.81-255.255.255.255, 80, ALLOW>
<IN, TCP, 129.110.96.0/24, *, 0.0.0.0-129.110.96.79, 80, ALLOW>
<IN, TCP, 129.110.96.117, *, 0.0.0.0-129.110.96.79, 80, DENY>
<IN, TCP, 129.110.96.0-129.110.96.116, *, 129.110.96.80, 80, ALLOW>
<IN, TCP, 0.0.0.0-129.110.95.255, *, 129.110.96.80, 80, ALLOW>
<IN, TCP, 129.110.97.0-255.255.255.255, *, 129.110.96.80, 80, ALLOW>
<IN, TCP, 129.110.96.118-129.110.96.255, *, 129.110.96.80, 80, ALLOW>
<IN, TCP, 129.110.96.0/24, *, 129.110.96.80, 80, DENY>
<OUT, TCP, 129.110.96.80, 22, *, *, DENY>
<IN, TCP, 129.110.96.117, *, 129.110.96.80, 22, DENY>
<IN, UDP, 129.110.96.117, *, 129.110.96.0/24, 22, DENY>
<OUT, UDP, *, *, *, *, DENY>

在这里插入图片描述

规则合并:

python main.py --path rules/example_rules_2 –merge

伪代码(r s代表了防火墙不同规则):

1. if r = s then
2. if r.action 	= s.action then
3. set s.action to REJECT and report anomaly
4. else
5. report removal of r
6. return true
7. if r ⊂ s then
8. insert r before s into new rules list and report reordering
9. return true
10. if s ⊂ r then
11. return false
12. Remove s from new rules list
13. Find set of attributes a = {x|r.x 	= s.x}
14. for all ai ∈ a do
15. Split(r, s, ai)
16. if r.action 	= s.action then
17. s.action ← REJECT
18. Insert(s, new rules list)
19. return true
20. <IN, TCP, 202.80.169.29-63, 483, 129.110.96.64-127, 100-110, ACCEPT>
21. <IN, TCP, 202.80.169.29-63, 483, 129.110.96.64-127, 111-127, ACCEPT>
22. <IN, TCP, 202.80.169.29-63, 483, 129.110.96.128-164, 100-127, ACCEPT>
23. <IN, TCP, 202.80.169.29-63, 484, 129.110.96.64-99, 100-127, ACCEPT>
24. <IN, TCP, 202.80.169.29-63, 484, 129.110.96.100-164, 100-127, ACCEPT>
25. <IN, TCP, 202.80.169.64-110, 483-484, 129.110.96.64-164, 100-127, ACCEPT>

在这里插入图片描述

防火墙规则树:

在这里插入图片描述

结论

从防火墙策略规则中解决异常流量对于网络安全至关重要,因为异常可能会引入不必要且难以发现的安全漏洞。因此,本文提出了一个自动化的过程来检测和解决这种异常。

–end–

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

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

相关文章

(一)EasyExcel的使用(读取数据到实体类即绑定实体类)

最近遇到了一个excel简单的导入导出的需求&#xff0c;因此就对easyexcel第三方插件的使用做一点总结&#xff0c;大家可以看一看&#xff0c;可能会对你有点帮助。 目录 前言&#xff1a; 1、引入easyexcel相关依赖 2、创建对应excel的实体类 3、导入excel&#xff0c;并…

mac照片肖像美容ON1 Portrait AI 2023

人像照片怎么美容编辑呢&#xff1f;使用 ON1 Portrait AI 2023只需点击一下即可完美修饰。它使用机器学习来查找照片中的每一张脸&#xff0c;并自动使它们看起来很棒。它分析每张脸&#xff0c;并为皮肤、眼睛和嘴巴添加适量的修饰&#xff0c;立即为您提供专业的效果。 软件…

目标检测算法——工业缺陷数据集汇总1(附下载链接)

>>>深度学习Tricks&#xff0c;第一时间送达<<< &#x1f680;近期&#xff0c;小海带在空闲之余&#xff0c;收集整理了一批自动驾驶开源数据集供大家参考。 整理不易&#xff0c;小伙伴们记得一键三连喔&#xff01;&#xff01;&#xff01;&#x1f91e…

计算机毕业设计:基于html制作大学生网上报到系统响应式模板项目源码

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

UNet - 预测数据predict(多个图像的分割)

目录 1. 介绍 2. predict 预测分割图片 3. 结果展示 4. 完整代码 1. 介绍 之前已经将unet的网络模块、dataset数据加载和train训练数据已经解决了&#xff0c;这次要将unet网络去分割图像&#xff0c;下面是之前的链接 unet 网络&#xff1a;UNet - unet网络 dataset 数…

chineseocr测试具体部署步骤(不用web界面)

源项目地址&#xff1a; https://github.com/chineseocr/chineseocr 由于chineseocr需要在web上展示检测结果&#xff0c;还需要安装web相关内容&#xff0c;我的硬件是nvidia agx orin只需要在本地查看检测结果&#xff0c;做如下操作 找到源码项目中的test.ipynb,改写成test.…

天津教育杂志天津教育杂志社天津教育编辑部2022年第30期目录

卷首语 构建精准资助模式 保障经济困难学生安心求学 本刊编辑部; 1 本刊视线_关注 中学生行为习惯养成教育的策略——基于福州第十五中学学生行为习惯养成教育的实践 贺玉亮;林瑶; 4-6 本刊视线_特殊教育《天津教育》投稿&#xff1a;cn7kantougao163.com 面向听障…

最高薪15k!“转行软件测试后,我想要的生活,就应该是这样!”

​最近的低温天气 切切实实让汇智妹感受到了冬天 上下班路上骑个自行车都冻手手 &#xff08;成都的“湿冷魔法伤害”真不是吹的&#xff09; 好不容易等来了周末 只想待在家里哪儿都不去 裹着毛毯安逸地休息两天 周一再继续撸起袖子加油干 ​ ​“公司通知周末要加班”…

jenkins 中pipeline相关语法学习

jenkins基础 Jenkins介绍 持续集成&#xff0c;就是通常所说的CI&#xff08;Continues Integration&#xff09;&#xff0c;可以说是现代软件技术开发的基础。 持续集成是一种软件开发实践&#xff0c;即团队开发成员经常集成他们的工作&#xff0c;通常每个成员至少集成一…

Docker踩坑,又涨知识了

背景 新上线一个批处理功能&#xff0c;基于Docker发布的。上线之后出现一个问题&#xff0c;Docker批处理生成的文件目录&#xff0c;别的应用程序无法访问。 之前也在使用Docker&#xff0c;但并未涉及到文件共享的问题&#xff0c;还真没留意到。经过一系列排查&#xff0…

第二章 模型评估与选择(上)

2.1 经验误差与过拟合 通常我们把分类错误的样本数占样本总数的比例为”错误率”&#xff0c;精度1-错误率。模型的实际预测输出与样本的真实输出之间的差异称为“误差”&#xff0c;模型在训练集上的误差称为“训练误差”或“经验误差”,在新样本上的误差称为“泛化误差” 当…

uni-app框架

目录 什么是uniapp 为什么学uniapp uni-app目录结构 uniapp开发规范 pages.json页面的基本配置 pages页面配置 pages对象的属性 globalStyle全局配置 配置基本tabbar tabbar的基本属性 condition启动模式配置 具体属性 组件的基本使用 text文本组件 view组件 …

【历史上的今天】11 月 18 日:DNS 发明者出生;按键式电话问世;比尔·盖茨开始编程

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2022 年 11 月 18 日&#xff0c;在 1928 年&#xff0c;华特迪士尼&#xff08;Walt Disney&#xff09;和他终身的助手阿维尔克合作创造了后来闻名世界的“米老鼠”的…

MySQL (8)

MySQL (8) 前言 &#xff1a; 知识点回顾 &#xff1a; 上文我们已经了解到了我们的事务 , 知道了事务是将诺干个独立的操作打包成一个整体 &#xff0c; 如 1 1 此时想将这个结果写到纸上 &#xff0c;那么 1 1 计算 可以看做一个操作&#xff0c; 将答案 2 写 到纸上 也是…

酪氨酸激酶、自噬等抗肿瘤抑制剂

TPCA-1 TPCA-1 是一种有效&#xff0c;选择性的 IKK-2 抑制剂&#xff0c;IC50 值为 17.9 nM。TPCA-1 也是 STAT3 磷酸化、DNA 结合以及反式激活的有效抑制剂。 表皮生长因子受体 (EGFR) 是治疗 EGFR 突变型非小细胞肺癌 (NSCLC) 的有效靶点。然而&#xff0c;一些 EGFR 突变表…

独家,阿里技术人限产的MySQL高级笔记及面试宝典,简直开挂

又逢“金九银十”&#xff0c;年轻的毕业生们满怀希望与忐忑&#xff0c;去寻找、竞争一个工作机会。已经在职的开发同学&#xff0c;也想通过社会招聘或者内推的时机争取到更好的待遇、更大的平台。 然而&#xff0c;面试人群众多&#xff0c;技术市场却相对冷淡&#xff0c;…

【Linux】深刻理解进程概念、进程状态、进程常用指令和系统调用

文章目录1、什么是进程?1.1 PCB的概念1.2 程序加载到内存2、初识进程2.1 进程相关的指令2.2 进程相关的系统调用3、进程状态3.1 运行、阻塞和挂起状态3.2 具体的Linux进程状态3.3 僵尸进程3.4 孤儿进程1、什么是进程? 从程序说起&#xff0c;我们写好的程序在经过编译链接最…

【cmake】cmake应用:安装和打包

【cmake】cmake应用&#xff1a;安装和打包 在本系列前序的文章中已经介绍了CMake很多内容&#xff0c;在CMake应用&#xff1a;CMakeLists.txt完全指南一文中简略介绍了安装和打包&#xff0c;本文会更加深入地介绍CMake的安装和打包功能。【cmake】cmake应用&#xff1a;安装…

分享500道我在“金九银十”收集的Java架构面试题

前段时间&#xff0c;字节跳动官方就发布消息称在武汉扩招至5000人&#xff0c;放出了2000个岗位名额。可见&#xff0c;互联网大厂岗位需求仍然奇缺。 在已经过去的“金九银十”&#xff0c;我有许多朋友就已经成功的跳槽&#xff0c;有的还在家等候下一步的面试通知。我托朋…

【计算机扫盲】计算机的基础操作你知多少?

计算机的高级操作 控制面板 ​ 控制面板&#xff08;control panel&#xff09;是Windows图形用户界面的一部分&#xff0c;可通过开始菜单访问。它允许用户查看并操作基本的系统设置&#xff0c;比如添加/删除软件&#xff0c;控制用户帐户&#xff0c;更改辅助功能选项。 …