需求:
请根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP。
防火墙命令为:
iptables-I INPUT -s IP地址 -j DROP
脚本实现:
#!/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_Filewhile read line
do Ip_Add=`echo $line |awk '{print $1}'`Access=`echo $line |awk '{print $2}'`if [ $Access -ge 10000 ]then#echo $Ip_Addiptables -I INPUT -s $Ip_Add -j DROPfi
done <$Info_File
原创 爱踢人生sre