2022年6月21日更新

看到很多人喜欢这篇文章我还是很高兴的,今天本来打算将我当初的实验环境公布出来,但是当时是保存到了阿里云盘,阿里云盘不支持分享。

后来改成图片格式,又显示文件过大,4G就嫌大了。。。

于是我准备放到百度云里分享出来。 链接在最下方


作者:SwBack
技术交流Q群:768493664

开始是在合天做的这个实验,想要本地复现,搭建本地环境。需要用到

工具: floodlight, mininet (安装完整版),Sflow-RT

需要用到java,ant ,curl ,等等

ubuntu14.04(我自己用的就是这个版本)启动floodlight

back@back:~$ cd floodlight/
back@back:~/floodlight$ java -jar target/floodlight.jar

Floodlight 的WebUI端口是8080,我们可以用浏览器访问它

http://127.0.0.1/ui/index.html

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

back@back:~$ sudo mn --controller=remote,ip=127.0.0.1,port=6653 --topo=single,3

2.3 DDoS 攻击检测

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

back@back:~$ cd desktop/
back@back:~/desktop$ cd sflow-rt/sflow-rt/
back@back:~/desktop/sflow-rt/sflow-rt$ ./start.sh

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

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

通过如下指令可以查看已经配置的 sFlow Agent信息:

back@back:~$ sudo ovs-vsctl list sflow

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

可以看到s1 交换机对应的编号是4,交换机连接host1的端口对应的编号是5,依次类推。
查看sFlow Agent 是否配置成功,我们可以通过其WebUI进行查看:

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

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

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

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

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

mininet> xterm h1 h2

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

python -m SimpleHTTPServer 80&

在 Host2 上 ping Host1

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

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

h2 ping –f h1

再去观察交换机流量

2.4 DDoS 攻击防御

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

back@back:~$ curl -X GET \
> http://127.0.0.1:8080/wm/staticflowpusher/list/00:00:00:00:00:00:01/json

返回为空:

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

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

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

返回“Entry pushed”,表示流表下发成功,再次查询流表:

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

发现流表下发之后,流量迅速下降,h1向h2泛洪的数据包迅速的被完全Drop掉了。
切换到 h2 的终端,访问 h1的web服务

同样无法访问了。这是因为我们下发的流表是把所有的数据包都Drop掉了。这并不是我们想要的效果,等下我们再来解决这个问题。

3)删除流表
执行以下指令删除刚刚下发的流表:

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

再次观察流量:

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

"eth_type":"0x0800",
"ip_proto":"0x01",

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

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

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

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

3、总结

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


链接: https://pan.baidu.com/s/1erajtSshLVb2_wjBcM3pyw?pwd=back 提取码: back如果失效,请添加QQ群联系768493664

基于SDN的DDoS攻击检测与防御相关推荐

  1. 基于SDN的DDoS攻击检测和防御方法

    本文主要阐述SDN环境下的DDoS攻击检测与主动防御研究.首先分层次的介绍了软件定义网络的架构特点及协议.然后介绍了DDoS攻击原理及对SDN架构网络的危害.接下来通过Floodlight.minin ...

  2. 基于机器学习的DDos攻击检测

    2基于机器学习的DDoS攻击检测方法 环境:pycharm+python3.4 2.1数据分析与特征工程 2.1.1数据来源 kaggle 2.1.2数据大小 训练集:80万条 测试集:30万条 2. ...

  3. 浅析防御僵尸网络基于应用层的DDOS攻击

    近期数据显示,针对应用层的DDOS攻击有加速的趋势.据预测,基于应用层的DDOS攻击每年以三倍的速度增长,Gartner预测DDOS攻击会占2013年所有的应用层攻击中的25%左右.研究指出,黑客现在 ...

  4. DDOS攻击检测和防护

    一. 当前DDOS的主要特点 DDOS攻击作为常见的高危害性安全威胁,一直是CIO们的心头大患.和一般的安全风险不同,现阶段的DDOS攻击呈现出了下面3个特点: 攻击门槛低.简单易操作导致攻击很活跃. ...

  5. 转载和积累系列 - 基于JavaScript的DDoS攻击

    基于JavaScript的DDoS攻击 DDoS,即Distributed Denial of Service,中文译为分布式拒绝服务攻击,是一种常见的网络攻击方式.它的基本思想就是像一台服务器发送大 ...

  6. ddos攻击怎么防?防御ddos的几种方法

    现在的互联网行业大多数企业基本上都依靠网络来获取流量和订单或者服务,但是却对网络的利弊知之甚少,特别是网站的较大威胁DDOS攻击,很多互联网企业基本都遭遇过DDOS攻击的勒索和恶性竞争,大部分企业网站 ...

  7. 华纳云:ddos攻击怎么防?防御ddos的几种方法

    现在的互联网行业大多数企业基本上都依靠网络来获取流量和订单或者服务,但是却对网络的利弊知之甚少,特别是网站的最大威胁DDOS攻击,很多互联网企业基本都遭遇过DDOS攻击的勒索和恶性竞争,大部分企业网站 ...

  8. 基于API调用管理的SDN应用层DDoS攻击防御机制

     摘要:软件定义网络(SDN,software defined network)针对北向接口安全研究少,加之缺乏严格的访问控制.身份认证及异常调用检测等机制,导致攻击者有机会开发恶意的应用程序,造成北 ...

  9. 小隐隐于野:基于TCP反射DDoS攻击分析

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯DDoS安全专家.腾讯云游戏安全专家 陈国 0x00 引言 近期,腾讯云防护了一次针对云上某游戏业务的混合DDoS攻击.攻击持续了 ...

最新文章

  1. 实心和空心哪个抗弯能力强_空心砖4大优缺点一次看 便宜耐用营造大自然原始风...
  2. api如何使用_使用插件扩展Qt自身
  3. leetcode算法第9题
  4. 关于 Session 的深入探讨
  5. python软件使用教程-python用什么软件编写
  6. Lazy Load, 延迟加载图片的 jQuery 插件
  7. golang 切片 接口_一日看尽golang高级语法之slice
  8. 双重检查锁模式导致空指针
  9. android 打电话
  10. 人生路上对我影响最大的三位老师
  11. mysql自连接_MySQL自连接
  12. OracleHelper
  13. Git(6)-- 记录每次更新到仓库图文版(git clone、status、add、diff、commit、rm、mv命令详解)
  14. 编辑网页document.body.contentEditable='true';
  15. 超算计算机需要显卡吗,NVIDIA:中国超算性能世界第一认了 但省电我最强
  16. 国二c语言是人工改卷还是机器改卷,雅思机考作文是机器批卷吗,雅思机考,阅读和听力是机器判卷,还是人工判卷?...
  17. linux查看mysql日志信息,Linux下查看mysql错误日志
  18. USB开发-USB从启动到运行
  19. matlab理论知识点,matlab基础知识点.doc
  20. 源码深度解析之 Spring IOC

热门文章

  1. 阿里资深架构师推荐:企业架构理论及其在国内金融业的实践综述
  2. 云计算行业发展呈上升趋势,技术成为重要驱动因素
  3. 炒鸡蛋的制作.简简单单炒鸡蛋,吃了都说好
  4. 当你觉得自己又丑又穷,一无是处时,别绝望,因为至少你的判断还是对的。
  5. 鸿蒙系统有哪些手机可以应用,鸿蒙系统手机有哪些
  6. Ubuntu18.04禁止conda自动激活base环境
  7. 用strcmp来打印输入三次密码哔哩练习
  8. python爬虫-爬取boss直聘的职位信息
  9. SwiftUI是什么,听听大牛们如何说
  10. w ndows7u1,旗舰版微软Windows7各个版本原版系统