首页 >  - 免费发布信息[非常简单]
Linux系统防CC攻击自动拉黑IP增强版Shell脚本
信息编号:T-4872 时间:4小时前 有效期:9999天有效  浏览量:20人次
信息有效

详细内容

▲置顶 收藏  | 删除  | 修改  | 举报  |

一、Shell 代码

    #!/bin/bash

    #Author:ZhangGe

    #Desc:Auto Deny Black_IP Script.

    #Date:2014-11-05

    #取得参数$1为并发阈值,若留空则默认允许单IP最大50并发(实际测试发现,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

                    >./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`">>./deny.log & 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

复制代码二、执行脚本
    nohup ./deny_blackip.sh 50 &
复制代码
    [root@Mars_Server iptables]# nohup ./deny_blackip.sh 50 &

    [1] 23630

    [root@Mars_Server iptables]# nohup: ignoring input and appending output to `nohup.out'

复制代码
    [root@Mars_Server iptables]# ll nohup.out

    -rw------- 1 root root 0 Nov  5 21:15 nohup.out

复制代码
    root     23630  0.0  0.2   5060  1224 pts/0    S    21:15   0:00 /bin/bash ./deny_blackip.sh

    root     23964  0.0  0.0   4064   508 pts/0    S    21:19   0:00 sleep 10

复制代码三、效果测试

Linux系统防CC攻击自动拉黑IP增强版Shell脚本

Linux系统防CC攻击自动拉黑IP增强版Shell脚本

Linux系统防CC攻击自动拉黑IP增强版Shell脚本


友情提示

信息自选┆使用自愿┆真伪自辨┆风险自担

站长推荐:下载APP,把网站装进手机

使用信息须知(必读)

①本主题所有言论和图片纯属会员个人意见,与本站立场无关

②本站所有主题由该帖子作者发表,该帖子作者与本站享有帖子相关版权

③樱桃游戏开服网仅提供信息交流平台,不介入任何交易过程,不承担安全风险和法律责任

④本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责

⑤该页面资源下载仅保存于网盘,本站不涉及储存,用户下载仅供学习参考,不得用户商业用途

⑥如有侵权内容困扰请联系youxi@111.com,我们将针对版权信息及时予以删除

免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任
备案号:
联系微信:131-131-131-13 工作时间:周一至周五早8:00~晚5:00   违法和不良信息举报电话:131-131-131-13
免费发布信息[非常简单]查找/修改/撤销信息置顶推广信息百色生活网服务协议/隐私政策※特别提示:提高警惕,谨防诈骗
微信

微信二维码