计算机网络/计算机科学与应用/系统/运维/开发

Shell实战-检查服务器是否受到DDoS攻击

通过,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


shell

人各有命,但命运也从来不是随机发牌,而是每个人主动选择的结果。

评论

^