概述

今天分享一个shell脚本,主要是用来解决DDOS攻击的简单版。


需求

请根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP。

防火墙命令为:iptables-I INPUT -s IP地址 -j DROP。

练习使用日志下载地址:https://files.cnblogs.com/files/clsn/access-web-log.zip

ddos攻击思路(分享一个实用的shell脚本--实现DDOS攻击自动封禁IP)(1)


脚本实现

#!/bin/bash ############################################################# # File Name: ddos_check.sh ############################################################# ​ Info_File=/tmp/ddos_check.log ​ #从连接数获取 #netstat -lant|awk -F "[ :] " '/180:80/{clsn[$6] }END{for(pol in clsn)print pol,clsn[pol]}' >$Info_File ​ # 从日志获取 awk '{hotel[$1] }END{for(pol in hotel)print pol,hotel[pol]}' access.log|sort -nk2 -r >$Info_File ​ while read line do Ip_Add=`echo $line |awk '{print $1}'` Access=`echo $line |awk '{print $2}'` if [ $Access -ge 10000 ] then #echo $Ip_Add iptables -I INPUT -s $Ip_Add -j DROP fi done <$Info_File

ddos攻击思路(分享一个实用的shell脚本--实现DDOS攻击自动封禁IP)(2)


脚本执行结果

./ddos_check.sh iptables -L

ddos攻击思路(分享一个实用的shell脚本--实现DDOS攻击自动封禁IP)(3)


觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

ddos攻击思路(分享一个实用的shell脚本--实现DDOS攻击自动封禁IP)(4)

,