预防cc攻击脚本

回复 收藏
#! /bin/bash
N=350
while :; do
        tail -n 500 access.log |awk '{print $5}'|sort |uniq -c |sort -n|tail -n1 >/tmp/cc.log
        n=`awk '{print $1}' /tmp/cc.log`
        dom=`awk '{print $2}' /tmp/cc.log`
        if [ $n -gt $N ] ; then
                tail -n 500 access.log| grep $dom |awk '{print $1}'|sort -n |uniq |grep -v '192.168.' |xargs -n1 -i{} iptables -I INPUT -s {} -j DROP
        fi
        sleep 10   // 上边的500和这里的10是对应的,该服务器每秒钟产生的日志大约为50个
done
2010-03-01 10:41 举报
已邀请:
0

阿铭 管理员

赞同来自:

说明: 这个脚本是针对nginx 的访问日志来编写的,有很强的针对性。思路就是找出日志中访问量非常大的域名,然后再把访问这个域名的IP拒绝访问。
0

秋雨

赞同来自:

这个好,学习了
0

梁川同学

赞同来自:

测试线上的服务器要谨慎啊   N改为100 我把我自己给禁掉了 i_f08.gifi_f08.gif

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: