diff options
| author | 姜萍 <[email protected]> | 2022-05-29 17:59:26 +0800 |
|---|---|---|
| committer | 姜萍 <[email protected]> | 2022-05-29 17:59:26 +0800 |
| commit | 9f0f12ed28357ae167cb9aab3a614da0f8cd4bab (patch) | |
| tree | 0eac2d3fbfc11e7639b9a0254a8c24d8a43bd8f2 /README.md | |
initmaster
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 43 |
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 |
