云服务器网:购买云服务器和VPS必上的网站!

脚本:怎么写脚本防cc攻击

怎样写脚本防cc攻击Shell脚本代码以下:#!/bin/bash#Author:ZhangGe#Desc:Auto Deny Black_IP Script.#Date:2014⑴1-05#获得参数$1为并发阈值,若留空则默许允许单IP最大100并发(实际测

怎样写脚本防cc攻击

Shell脚本代码以下:

#!/bin/bash

#Author:ZhangGe

#Desc:Auto Deny Black_IP Script.

#Date:2014⑴1-05

#获得参数$1为并发阈值,若留空则默许允许单IP最大100并发(实际测试发现,2M带宽,十来个并发服务器就已没法访问了!)

if [[ -z $1 ]];then

num=50

else

num=$1

fi

#奇妙的进入到脚本工作目录

cd $(cd $(dirname $BASH_SOURCE) && pwd)

#要求检查、判断及拉黑主功能函数

function check(){

iplist=`netstat -an |grep ^tcp.*:80|egrep -v 'LISTEN|127.0.0.1'|awk -F"[ ]+|[:]" '{print $6}'|sort|uniq -c|sort -rn|awk -v str=$num '{if ($1>str){print $2}}'`

if [[ ! -z $iplist ]];

then

>./iplist/black_ip.txt

for black_ip in $iplist

do

#白名单过滤中已取消IP段的判断功能,可根据需要自行修改以下代码(请参考前天写的脚本)

#exclude_ip=`echo $black_ip | awk -F"." '{print $1"."$2"."$3}'`

#grep -q $exclude_ip ./white_ip.txt

grep -q $black_ip ./white_ip.txt

if [[ $? -eq 0 ]];then

echo "$black_ip (white_ip)" >>./black_ip.txt

else

echo $black_ip >>./black_ip.txt

iptables -nL | grep $black_ip ||(iptables -I INPUT -s $black_ip -j DROP & echo "$black_ip `date +%Y-%m-%H:%M:%S`">>./iplist/denylog.txt & echo 1 >./sendmail)

fi

done

#存在并发超过阈值的单IP就发送邮件

if [[ `cat ./sendmail` == 1 ]];then sendmsg;fi

fi

}

#发邮件函数

function sendmsg(){

netstat -nutlp | grep "sendmail" >/dev/null 2>&1 || /etc/init.d/sendmail start >/dev/null 2>&1

echo -e "From: 发邮件地址@qq.com\nTo:收邮件地址@qq.com\nSubject:Someone Attacking your system!!\nIts Ip is" >./message

cat ./black_ip.txt >>./message

/usr/sbin/sendmail -f 发邮件地址@qq.com -t 收邮件地址@qq.com -i <./message

>./sendmail

}

#间隔10s无穷循环检查函数

while true

do

check

#每隔10s检查一次,时间可根据需要自定义

sleep 10

done

本文来源:https://www.yuntue.com/post/62472.html | 云服务器网,转载请注明出处!

关于作者: yuntue

云服务器(www.yuntue.com)是一家专门做阿里云服务器代金券、腾讯云服务器优惠券的网站,这里你可以找到阿里云服务器腾讯云服务器等国内主流云服务器优惠价格,以及海外云服务器、vps主机等优惠信息,我们会为你提供性价比最高的云服务器和域名、数据库、CDN、免费邮箱等企业常用互联网资源。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注