summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
author姜萍 <[email protected]>2022-05-29 17:59:26 +0800
committer姜萍 <[email protected]>2022-05-29 17:59:26 +0800
commit9f0f12ed28357ae167cb9aab3a614da0f8cd4bab (patch)
tree0eac2d3fbfc11e7639b9a0254a8c24d8a43bd8f2 /README.md
initmaster
Diffstat (limited to 'README.md')
-rw-r--r--README.md43
1 files changed, 43 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..c980552
--- /dev/null
+++ b/README.md
@@ -0,0 +1,43 @@
+
+# MSFlow:SDN流量防御和分流辅助器
+## 1.功能:
+ a)恶意软件流量识别,Cridex、Geodo、Htbot、Miuref、Neris、Nsis-ay、Shifu、Tinba、Virut、Zeus
+ b)正常应用流量识别,Facetime、Weibo、BitTorrent、FTP、Gmail、MySQL、Outlook、Skype、SMB、WordOfWarcraft
+ c)QoS
+ d)DDoS缓解
+
+## 2.代码说明
+# model/:分类器模型
+ model/datahelper/: 数据清洗
+ model/train/: 模型训练
+ model/packet_predict.py: 二分类器,正常流量和恶意流量区分
+ model/xxx.model: 二分类器模型训练保存结果
+ model/DBhelper.py: 二分类器所需的数据库存取操作
+ model/benign_packetpredict.py: 十分类器,十种正常应用流量识别
+
+# sdnData/: 界面启动目录
+# sflow-rt: sflow工具
+# ms_topo_4s.py: mininet拓扑构建脚本
+# send.py: 发包测试脚本
+# ryu_predict.py: ryu控制器app
+# product.py: 控制器和界面的交互接口
+
+## 3.运行说明
+ 注:环境中需要有ryu、mininet、mysql、python3、tensorflow、pandas等等,请按运行的错误提示自行补全安装。
+ 其中,tensorflow要求2.2版本以上,实验中用的2.3.0;django版本2.2(2版本和3版本不兼容);
+ 1)开启系统,进入sdnData/文件夹:python3 manage.py runserver 8081,打开浏览器访问127.0.0.1:8081查看界面是否开启;
+ 2)运行控制器:(假设已安装ryu),进入../ryu/ryu/app文件夹,将ryu_predict.py以及model/文件夹,放在该app/文件夹下;运行控制器:ryu-manager ryu_predict.py;
+ 3)运行sflow工具,进入sflow_rt/文件夹:sudo ./start.sh,在浏览器访问127.0.0.1:8008查看sflow服务端是否正常开启(具体的sflow配置可参考链接:https://blog.csdn.net/AsNeverBefore/article/details/79098971);
+ 4)好啦,这里我们可以用发包脚本发包来看一看程序运行的样子了:sudo python send.py(脚本内的待发送数据包可以自行修改,默认发送本文件夹下的test.pcap)
+
+ 6)常见问题:
+ (1)环境没有配置好,缺少东西
+ (2)自定义的类以及函数,在import过程中,不同的环境所需的路径不通,请按报错信息自行修改
+ (3)发包时出现数据包超过MTU值,通过命令修改mtu:ifconfig h1 mtu 9000
+ (4)使用sflow监听mininet中的流量,mininet中交换机端口本身没有IP,需要设置IP后才能作为监听端口,步骤如下
+ 启动minninet网络
+ sudo ifconfig ens33 0 up
+ sudo ovs-vsctl add-port s1 ens33
+ sudo ifconfig s1 10.0.1.10 netmask 255.255.254.0
+ sudo route add default gw 10.0.1.1
+ sudo ovs-vsctl -- --id=@sflow create sflow agent=s1 target=\"10.0.1.10\" header=128 sampling=10 polling=1 -- set bridge s1 sflow=@sflow