今天下午突然发现blog打不开,纳闷,不对啊。虽说我带宽不大,但是我上了CDN和七牛啊,赶紧登陆云服务器看了下,大量的TIME_WAIT,而且都是几个IP,看来遭遇了小型的攻击,赶紧把这几个IP加入防火墙DROP,立马发现就访问上升。为了预防再次出现,特此写了个脚本,一键DROP。
代码如下(献丑,就10来分钟写完,别喷哈)
#/bin/bash netstat -an|grep ^tcp|awk '{print $5}'|cut -d: -f1|grep -v '0.0.0.0'|sort |uniq -c|sort -rn > /tmp/ip.txt #for I in `cat /tmp/ip.txt|awk '{print $1}'` for I in `seq 1 $(cat /tmp/ip.txt|wc -l)` do num=`cat /tmp/ip.txt |head -$I|tail -1|awk '{print $1}'` num2=`cat /tmp/ip.txt |head -$I|tail -1|awk '{print $2}'` if [[ $num -gt 25 ]] ;then /sbin/iptables -I INPUT 1 -s $num2 -j DROP echo "`date` $num2 $num">>/root/drop_ip.txt fi done有需要就加入cron定时任务,建议个人需求改,毕竟遇到都不一样
评论区