全球主机交流论坛

标题: 如何加快csf防火墙block ip的速度(送自己写的防CC脚本) [打印本页]

作者: loning    时间: 2011-12-3 03:45
标题: 如何加快csf防火墙block ip的速度(送自己写的防CC脚本)
我的服务器每天大概会被1000个左右的并发IP CC
我通过日志大概分析出来一些非法的请求,但是在使用CSF禁止ip的时候,由于iptables要锁表,导致特别特别慢。。求快速加入iptables的方法...

下面是封大量连接没有referer来源的脚本,自己写的比较2。。见谅..

#!/bin/bash
ips=`tail -100 /data/logs/aaa.com.log | grep -E ' GET ' | awk '{if ($11=="-"){print $1}}' |sort |uniq -c | awk '{if ($1 > 1 ){ print $2 }}'`

cache=`tail -1000 /data/logs/aaa.com.log`;
#printf "$cache";
#echo "$cache";
for ip in $ips;do
        #echo $ip;
        ipcache=`echo "$cache" | grep -E "^$ip"`;
        posttest=`echo "$ipcache" | grep -E ' POST ' | wc -l`;
        if [ $posttest -gt 0 ]
        then
                echo "$ip POST detected,continue";
                continue;
        fi
        match=`echo "$ipcache" |grep -E ' GET ' | awk '{if ($11 == "-") {print $11}}' | wc -l`;

        if [ $match -gt 10 ]
        then
                FLAG=0;
                grep $ip /etc/csf/csf.tempban > /dev/null
                if [ $? -ne $FLAG ]
                then
                        /usr/sbin/csf -td $ip 43200
                        echo "block $ip, match $match";
                else
                        echo "already block $ip, match $match" ;
                fi

        fi
        #echo $match;
        #echo "$cache"| grep $ip >> /data/logs/ban/200.log;
done
~
作者: domin    时间: 2011-12-3 04:19
直接通过iptables封不就行了吗, 为什么要用csf
作者: Kvm    时间: 2011-12-3 09:22
分析日志太蛋痛了

不用iptables的情况下 可以用apache或者nginx屏蔽IP的功能  也行的
作者: 用户名    时间: 2011-12-3 09:23

作者: wusir    时间: 2011-12-3 09:39
有碼學習
作者: 哈P哥    时间: 2011-12-3 09:46
楼主很厉害,非常不错
作者: themyth    时间: 2011-12-3 10:04
标题: csf轻易不敢用
楼主不错,能否写个iptables下的?
作者: 违法主机    时间: 2011-12-3 10:12
我尝试把脚本改改!!
作者: 莫桑比特    时间: 2011-12-3 11:56
  直接上CC软防,几十万CC无视
作者: fw2you    时间: 2011-12-3 11:57
原帖由 loning 于 2011-12-3 03:45 发表
我的服务器每天大概会被1000个左右的并发IP CC
我通过日志大概分析出来一些非法的请求,但是在使用CSF禁止ip的时候,由于iptables要锁表,导致特别特别慢。。求快速加入iptables的方法...

下面是封大量连接没有referer来 ...

看来以后要加referer了
作者: xx2008    时间: 2011-12-3 12:19
咱不懂
作者: 有个就好    时间: 2011-12-3 12:59
判断reffer。。。
作者: wdlth    时间: 2011-12-3 13:01
可以试试用KVDB来判断。
作者: loning    时间: 2011-12-3 15:28
原帖由 wdlth 于 2011-12-3 13:01 发表
可以试试用KVDB来判断。

神马是KVDB?。。
作者: loning    时间: 2011-12-3 15:29
原帖由 domin 于 2011-12-3 04:19 发表
直接通过iptables封不就行了吗, 为什么要用csf

CSF有临时表、永久表、防SYN、防FLOOD。。。
基本都能kill掉。。然后就剩下一些CC了。分析一下日志就好了,今天服务器很正常。
作者: loning    时间: 2011-12-3 15:30
原帖由 fw2you 于 2011-12-3 11:57 发表

看来以后要加referer了

加了referer还要模拟爬虫、而且还要爬图片、而且每次间隔不能太短,否则把window打开大一点,照样全部封死,当然也得要求服务器性能好一些
作者: domin    时间: 2011-12-3 15:31
防SYN...无语
作者: loning    时间: 2011-12-3 15:32
原帖由 莫桑比特 于 2011-12-3 11:56 发表
  直接上CC软防,几十万CC无视

求linux下的。。。
我这边的CC主要是1、2秒才发一个请求,那边机器多,应该是叫做非饱和攻击吧。nginx都不503。。




欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4