通过,netstat 查看网络连接数,如果一个ip地址对服务器建立很多连接数,(比如一分钟产生了100个连接),就认为是发生了DDoS攻击。
1、环境准备
# yum install httpd -y 安装Apache
# systemctl start httpd 启动httpd
# echo "ddos apache" > /var/www/html/index.html # 创建Apache网站默认首页
# vim ddos-test.sh 写入以下内容
#!/bin/bash
netstat -ntu|awk '{print $5}' | cut -d: -f1| sort| uniq -c | sort -n
netstat -ntu |:截取外网IP地址和端口,并通过管道把命令执行结果传递给下一个命令处理
awk '{print $5}' |:截取外网的IP地址,并通过管道把命令执行结果传递给下一个命令处理。
cut -d: -f1 |:以“:”为分隔符,并通过管道把命令执行结果传递给下一个命令处理。
sort |:排序,并通过管道把命令执行结果传递给下一个命令处理。
uniq -c |:排除相同的记录,并通过管道把命令执行结果传递给下一个命令处理。
sort —n:排序并统计。
2、测试 模拟DDoS攻击
ab命令:做压力测试的工具和性能的监控工具。
命令使用格式:ab -n要产生的连接数总和 -c同时打开的客户端数量http://hostname/path。
安装ab命令。
# rpm -qf `which ab` 安装Apache 时,会自动安装这个工具
模拟DDoS攻击:启动10个客户端,对网站首页发起1000次访问。
# ab -n 1000 -c 10 http://192.168.1.63/index.html 如果输出结果不对,改成自己的ip地址即可
访问的页面越大,消耗的服务器带宽就越大,攻击效果也就越明显。
#chmod + x ddos-test.sh 执行脚本
#./ddos-test.sh 检查DDoS