基于SDN环境下的DDoS异常攻击的检测与缓解--实验

这篇具有很好参考价值的文章主要介绍了基于SDN环境下的DDoS异常攻击的检测与缓解--实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

基于SDN环境下的DDoS异常攻击的检测与缓解–实验

开始实验前,搭建本地环境。需要用到的工具:

  • floodlight(SDN控制器的一种)
  • mininet(仿真网络拓扑环境)
  • Sflow-RT(流量监控设备)

简介:sFlow技术是一种以设备端口为基本单元的数据流随机采样的流量监控技术,不仅可以提供完整的第二层到第四层甚至全网范围内的实时流量信息,而且可以适应超大网络流量(如大于10Gbit/s)环境下的流量分析,让用户详细、实时地分析网络传输流的性能、趋势和存在的问题。sFlow监控工具由sFlow Agent和sFlow Collector两部分组成。Agent作为客户端,一般内嵌于网络转发设备(如交换机、路由器),通过获取本设备上的接口统计信息和数据信息,将信息封装成sFlow报文,当sFlow报文缓冲区满或是在sFlow报文缓存时间(缓存时间为1秒)超时后,sFlow Agent会将sFlow报文发送到指定的Collector。Collector作为远端服务器,负责对sFlow报文分析、汇总、生成流量报告。

还需要用到的平台编译器:java(JDK/JRE一定要是1.8版本),ant编译器 ,curl (是一个利用URL语法在命令行下工作的文件传输工具)

虚拟机:ubuntu20.04(这个版本不重要)

1.安装floodlight

1.1 安装相关依赖库

sudo apt-get install build-essential default-jdk ant python-dev openjfx
sudo apt-get install git

1.2 下载floodlight源

git clone git://github.com/floodlight/floodlight.git

1.3 安装JDK1.8(⚠️安装前要确保Java的JDK为1.8版本)

这里出现了问题,由于默认安装的是jdk11,但是使用jdk11运行floodlight会报错(当时在这里卡了很久),于是先卸载JDK11

sudo apt-get autoremove openjdk-11-jre-headless

重新下载了jdk8

sudo apt install openjdk-8-jre-headless

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

安装其他相关依赖:

sudo apt-get install ant python-dev build-essential maven openjfx

1.4、进入floodlight文件夹

cd ~/floodlight

1.5 针对后面无法访问localhost:8080网页问题的提前修改

git pull origin master
git submodule init
git submodule update

1.6 编译(在floodlight目录下)

ant

ant出现错误
错误是:程序包javax.xml.bind.annotation不存在

ant 显示程序包**不存在(可能会如下报错,这一步当时也是卡了很久)

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

由于jdk版本为jdk11导致,将jdk换为jdk8

sudo update-alternatives --config javac//切换jdk版本

依旧报错

echo $JAVA_HOME   //查看JAVAHOME

//如果没有内容

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64   //加入自己jdk8的地址

1.7 接着Build(在floodlight目录下)

ant

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

1.8 之后build 成功

java -jar target/floodlight.jar //运行floodlight控制器,该窗口请不要关闭

1.9 网页访问管理界面

浏览器内,打开网页http://localhost:8080/ui/index.html

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

2.安装sFlow-RT流量监控设备

2.1官网安装地址https://sflow-rt.com/download.php

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

2.2这里采用命令行的方式安装(安装前要求JDK1.8的环境)

wget https://inmon.com/products/sFlow-RT/sflow-rt.tar.gz(下载)
tar -xvzf sflow-rt.tar.gz(解压)
./sflow-rt/start.sh(启动)

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

安装路径注意选择桌面,系统根目录下会连接失败。路径很重要!

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

3.命令行安装curl工具

wget https://curl.haxx.se/download/curl-7.55.1.tar.gz(下载)

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

tar -xzvf curl-7.55.1.tar.gz(解压)

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

3)安装

cd curl-7.55.1
./configure
make
make install

4)使用 curl --version 检查是否更新成功

curl --version

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

4.构建拓扑

保持 Floodlight 运行的终端,再新开一个终端窗口,输入如下指令,构建我们所需的拓扑结构。

sudo mn --controller=remote,ip=127.0.0.1,port=6633 --topo=single,3

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

5.DDoS 攻击检测

启动sFlow-RT
保持Mininet 运行的终端,再新开一个终端窗口,输入如下指令,启动sFlow-RT。

cd sflow-rt
./start.sh

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

b ) 配置sFlow Agent
我们需要在虚拟交换机配置sFlow Agent,这样sFlow Collector 才能收集到流量信息进行分析和呈现。
c)部署sFlow Agent :

sudo ovs-vsctl -- --id=@sflow create sflow agent=eth0 target=\"127.0.0.1:6343\" sampling=10 polling=20 -- -- set bridge s1 sflow=@sflow

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

输入ip link 指令可以查看,虚拟交换机端口与端口编号的映射

可以看到s1 交换机对应的编号是4,交换机连接host1的端口对应的编号是5,依次类推。

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

可以看到s1 交换机对应的编号是4,交换机连接host1的端口对应的编号是5,依次类推。

d)查看sFlow Agent 是否配置成功,我们可以通过其WebUI进行查看:
http://localhost:8008/html/index.html#status

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

e)安装flow-trend app(如图)

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

git clone https://github.com/sflow-rt/flow-trend(下载)

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

sflow-rt/get-app.sh sflow-rt flow-trend(运行)

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

安装完成后,关闭全部终端,重复上面的操作,可以看到下图

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

点击页面上的 【Apps】选项, 再点击【flow-trend】选项

localhost:8008/app/flow-trend/html/index.html

然后分别在KeysValueFilter列填入:ipsource,ipdestination,stack;bytes;留空 ,然后点击右面的【 Submit (√)】提交-------,之后,将自动转到图形化流量监控页面

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

e)然后切换到mininet 控制台窗口,使用如下指令,打开 Host1,和Host2的终端:

xterm h1 h2

然后在 Host1 上启动一个 http 服务

python3 -m http.server 80&

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

在 Host2 上 ping Host1

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

然后去观察流量, 可以看到,流量很正常,在 Host2 终端中可以按 Ctrl+c,停止ping。可以试试访问一下 Host1的HTTP服务。

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

2)DDoS攻击检测
接下来,我们进行DDoS 模拟攻击,在 mininet 终端中执行,h2 ping -f h1 ,-f 参数的意思就是 Ping Flood ,模拟 Flood Attack。

h2 ping –f h1

再去观察交换机流量

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

6.DDoS 攻击防御

打开一个系统终端,输入如下指令,调用Floodlight 的API 查询现有流表

sudo curl  http://127.0.0.1:8080/wm/staticflowpusher/list/00:00:00:00:00:00:01/json

返回为空
1)添加流表操作
然后我们添加一条静态流表,为了方便操作和查看,新建一个 ddos.json 的文件,将流表内容写入到这个文件,然后通过 API 进行提交,文件内容如下:

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

执行下列指令,下发流表Drop数据包:

curl -X POST -d @ddos.json http://127.0.0.1:8080/wm/staticflowpusher/json

返回“Entry pushed”,表示流表下发成功

2)观察流量
切换到 sFlow 这边查看流量:

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

发现流表下发之后,流量迅速下降,h1向h2泛洪的数据包迅速的被完全Drop掉了。

切换到 h2 的终端,访问 h1的web服务

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

同样无法访问了。这是因为我们下发的流表是把所有的数据包都Drop掉了。这并不是我们想要的效果。
3)删除流表
执行以下指令删除刚刚下发的流表:

	curl -X DELETE -d '{"name":"flow-mod-dropt"}' \
			http://127.0.0.1:8080/wm/staticflowpusher/json

再次观察流量:

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

攻击的数据包流表又恢复了。
4)DROP指定流量
改造需要下发的流表,让OpenFlowSwitch 只Drop掉 ICMP的流量,不影响正常的HTTP服务。修改内容如下:

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

添加了两个字段,eth_type: 指定以太网类型为ipv4,ip_proto:指定协议类型为ICMP。
再次下发流表:

curl -X POST -d @ddos.json http://127.0.0.1:8080/wm/staticflowpusher/json

此时再观察流量和访问 h1 的HTTP服务

基于SDN环境下的DDoS异常攻击的检测与缓解--实验

可以发现,流量下降到正常,但HTTP服务依然可以访问,没有受到影响。

7.总结

通过SDN技术,我们可以对网络流量进行实时监控,提取,分析,并能够及时的对流量进行调整比如QoS,负载均衡,DDoS流量过滤等。

–end–文章来源地址https://www.toymoban.com/news/detail-470403.html

到了这里,关于基于SDN环境下的DDoS异常攻击的检测与缓解--实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 物联网DDOS攻击,新基建下的物联网安全问题

    2016年10月21日,美国东海岸地区遭受大面积网络瘫痪,其原因为美国域名解析服务提供商Dyn公司当天受到强力的DDoS攻击所致,涉及到的网站包括twitter、paypal、github等,经过调查发现这是一起黑客通过控制多台物联网设备发起的DDOS网络攻击行为,通过分析确认攻击流量来源于

    2024年03月10日
    浏览(86)
  • DDoS缓解的基本工作原理和关键功能

    DDoS 缓解是指成功保护目标服务器或网络以抵御分布式拒绝服务 (DDoS) 攻击的过程,目标受害者可以使用专门设计的网络设备或基于云的保护服务缓解传入的威胁。   由于网络构成的基本逻辑,导致在线破坏者在拒绝服务的策略上占据优势,他们可以通过让您的业务离线几分

    2024年02月09日
    浏览(62)
  • 【深度学习】【机器学习】用神经网络进行入侵检测,NSL-KDD数据集,基于机器学习(深度学习)判断网络入侵,网络攻击,流量异常

    【深度学习】用神经网络进行入侵检测,NSL-KDD数据集,用网络连接特征判断是否是网络入侵。 NSL-KDD数据集,有dos,u2r,r21,probe等类型的攻击,和普通的正常的流量,即是有五个类别: 1、Normal:正常记录 2、DOS:拒绝服务攻击 3、PROBE:监视和其他探测活动 4、R2L:来自远程机器

    2024年04月25日
    浏览(46)
  • 论文阅读笔记:基于 Mininet 的 DDoS 攻击和防御研究与实现

    ​ ​qquad ​ 该论文主要研究及实现 SDN 中的 DDoS 攻击与防御,使用 Mininet+Ryu 控制器 搭建虚拟网络拓扑作为实验平台,模拟真实的 SDN 环境。该论文通过训练 决策树算法 模型作为 DDoS 攻击检测方法。利用 流表下发 的原理设计了 DDoS 攻击的缓解方法,编写了一款 Ryu 控制器,

    2024年02月01日
    浏览(66)
  • DDOS百科:什么是 DDoS 攻击及如何防护DDOS攻击

    一、什么是 DDoS 攻击? 当多台机器一起攻击一个目标,通过大量互联网流量淹没目标或其周围基础设施,从而破坏目标服务器、服务或网络的正常流量时,就会发生分布式拒绝服务(DDoS)攻击。 DDoS允许向目标发送指数级更多的请求,从而增加攻击能力。 它还增加了归因的难度

    2024年02月16日
    浏览(43)
  • Packet Tracer - 配置 IP ACL 来缓解攻击

    Packet Tracer - 配置 IP ACL 来缓解攻击 拓扑图 地址分配表 设备 接口 IP 地址 子网掩码 默认网关 交换机端口 R1 G0/1 192.168.1.1 255.255.255.0 不适用 S1 F0/5 S0/0/0 (DCE) 10.1.1.1 255.255.255.252 不适用 不适用 R2 S0/0/0 10.1.1.2 255.255.255.252 不适用 不适用 S0/0/1 (DCE) 10.2.2.2 255.255.255.252 不适用 不适用

    2024年02月07日
    浏览(34)
  • 什么是DDoS攻击?如何防范DDoS攻击?

    DDoS攻击是最常见、破坏力最强的网络攻击手段之一,对网络安全稳定造成了严重威胁,因此了解DDoS攻击的运行机制以及如何有效应对DDoS攻击十分有必要。本文中科三方针对DDoS攻击特点和防御手段做下介绍。 什么是DDoS攻击? DDoS全称Distributed Denial of Service,中文译作分布式拒

    2023年04月09日
    浏览(77)
  • 基于随机森林的网络攻击检测,基于粒子群改进随机森林的网络攻击检测,基于pso-rf的网络攻击检测

    背影 摘要 随机森林的基本定义 随机森林实现的步骤 粒子群算法原理 基于pso-rf的网络攻击检测 代码下载链接: 粒子群优化随机森林网络攻击识别,遗传粒子群算法优化卷积神经网络的网络攻击识别(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105

    2024年02月12日
    浏览(49)
  • 【网络安全】免费DDOS攻击测试工具_免费ddos平台攻击(1)

    它可以通过使用单个用户执行DOS攻击小型服务器,工具非常易于使用,即便你是一个初学者。这个工具执行DOS攻击通过发送UDP,TCP或HTTP请求到受害者服务器。你只需要知道服务器的IP地址或URL,其他的就交给这个工具吧。 下载: http://sourceforge.net/projects/loic/ 2、XOIC XOIC是另一个

    2024年04月26日
    浏览(44)
  • 【云计算网络安全】DDoS 攻击类型:什么是 ACK 洪水 DDoS 攻击

    TCP ACK 洪水攻击旨在通过发送大量 TCP ACK 数据包,使服务器过载。与其他 DDoS 攻击一样,ACK 洪水的目标是利用垃圾数据来减慢攻击目标的响应速度或导致其崩溃,进而使其无法提供正常服务给合法用户。目标服务器被迫处理每个接收到的 ACK 数据包,从而消耗大量计算资源,

    2024年02月08日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包