使用sFlow-RT和mininet抓取数据包(通过ping模拟dos攻击)

闲来无趣,有学弟问我,能不能模拟dos攻击,我#¥%……&*(,然后想了想,搜了搜,还真可以模拟,通过ping模拟dos攻击。

更新源

先放张效果图

1566972953531

实验环境为ubuntu18.04,首先还是得配置aliyun的源,然后更新源,安装软件啥的

1
sudo vim /etc/apt/sources.list

然后删掉所有,把下面这段搞进去

1
2
3
4
5
6
7
8
9
10
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

然后更新下

1
2
sudo apt-get update
sudo apt-get upgrade

配置网卡信息

需要先配置虚拟网络,先查看下桥s1中两个网卡的信息

vm界面直接修改IP

1566869077506

修改下dhcpip起始段

1566869111153

然后回到ubuntu18.04虚拟机中操作

配置JDK环境

需要下载jdk(推荐用迅雷下载jdk的包)

这里使用的是jdk-8u131-linux-x64.tar.gz,放附件了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
sudo vi /etc/profile 

#装路径我放在/usr/local/jdk/jdk1.8.0_131
#接下来在/etc/profile的尾部添加下面的东东哈

JAVA_HOME=/usr/local/jdk1.8.0_131
PATH=$JAVA_HOME/bin:$PATH
LASSPATH=:.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

编译环境文件
sudo source /etc/profile

#接下来设置全局变量
sudo gedit ~/.bashrc

#接下来在~/.bashrc的尾部添加下面的东东哈
JAVA_HOME=/usr/local/jdk1.8.0_131
PATH=$JAVA_HOME/bin:$PATH
LASSPATH=:.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

编译环境文件
sudo source ~/.bashrc

开启三个root权限终端

第一个终端

然后再下载sflow-rt

下载链接(别用官方的,官方3.0版本的没有Agent界面,下面这个使用的是2.0的版本)

1
https://codeload.github.com/al13mi/sflow-rt/zip/master

分别依次进行如下操作(注意,三个终端都要先切换到root权限)(密码Asd123456

打开第一个终端

1
2
cd /home/ghjkl/sflow-rt
./start.sh

然后打开浏览器,访问http://127.0.0.1:8008/2.0版本的sFlow-RTAgent界面可以看到流量动态图)

1566984058185

如果是3.0的长这样,毛线都看不到

1566989175441

第二个终端

打开第二个终端

先下载

1
apt install mininet

然后运行

1
sudo mn

进入到mininet

1
mininet> h1 ping -f h2

第三个终端

再打开第三个终端

1
2
3
4
5
6
root@ubuntu:/home/ghjkl# ifconfig ens33 up
root@ubuntu:/home/ghjkl# ovs-vsctl add-port s1 ens33
root@ubuntu:/home/ghjkl# ifconfig s1 10.0.0.3 netmask 255.255.255.0
root@ubuntu:/home/ghjkl# route add default gw 10.0.0.1
root@ubuntu:/home/ghjkl# sudo ovs-vsctl -- --id=@sflow create sFlow agent=s1 target=\"10.0.0.128:6343\" header=128 sampling=64 polling=1 -- set bridge s1 sflow=@sflow
root@ubuntu:/home/ghjkl# sudo ovs-vsctl list sflow

上面的10.0.0.128是本虚拟机的ip

1566982111291

打开网页

http://127.0.0.1:8008/metric/10.0.0.3/11.ifinoctets/html

就会观察到流量波动

1566972815966

这个图有点问题,不知道为啥,之前拍好的快照是下面这样的

1566999429927

0%