最新公告
  • 欢迎您光临IO源码网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • Linux系统服务器,如何屏蔽国外IP访问及进行简单的防CC攻击拦截?

    第一部分:屏蔽国外IP访问

    添加以下命令语句

    最后使用crontab -e 添加到任务计划,每20分钟执行一次:

    Linux系统服务器,如何屏蔽国外IP访问及进行简单的防CC攻击拦截?

    /root/allcn.sh stop
    mmode=$1
    CNIP="/root/china_ssr.txt"
    gen_iplist() {
    cat <<-EOF
    $(cat ${CNIP:=/dev/null} 2>/dev/null)
    EOF
    }
    flush_r() {
    iptables  -F ALLCNRULE 2>/dev/null
    iptables -D INPUT -p tcp -j ALLCNRULE 2>/dev/null
    iptables  -X ALLCNRULE 2>/dev/null
    ipset -X allcn 2>/dev/null
    }
    mstart() {
    ipset create allcn hash:net 2>/dev/null
    ipset -! -R <<-EOF
    $(gen_iplist | sed -e "s/^/add allcn /")
    EOF
    iptables -N ALLCNRULE
    iptables -I INPUT -p tcp -j ALLCNRULE
    iptables -A ALLCNRULE -s 127.0.0.0/8 -j RETURN
    iptables -A ALLCNRULE -s 169.254.0.0/16 -j RETURN
    iptables -A ALLCNRULE -s 224.0.0.0/4 -j RETURN
    iptables -A ALLCNRULE -s 255.255.255.255 -j RETURN
    iptables -A ALLCNRULE -m set --match-set allcn  src -j RETURN
    iptables -A ALLCNRULE -p tcp -j DROP
    }
    if [ "$mmode" == "stop" ] ;then
    flush_r
    exit 0
    fi
    flush_r
    sleep 1
    mstart

    2.对于方式1,若发现和白名单同一个段IP出现在高并发列表,将不会直接拉黑,而是写入到recheck_ip.txt。

    1.对于使用了百度云加速或其他CDN加速的,访问者IP可能会是CDN节点IP,则不适用此方式进行拦截。

    chmod +x deny_1.sh
    sh deny_1.sh

    方式1:通过netstat -an命令统计出当前请求并发大于100的IP,然后将不在白名单的IP自动加入DROP规则

    执行如下命令将开始拦截

    #!/bin/bash
    if [[ -z $1 ]];then
    num=100
    else
    num=$1
    fi
    cd $(cd $(dirname $BASH_SOURCE) && pwd)
    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} fi}'`
    if [[ ! -z $iplist ]];
    then
    for black_ip in $iplist
    do
    ip_section=`echo $black_ip | awk -F"." '{print $1"."$2"."$3}'`
    grep -q $ip_section ./white_ip.txt
    if [[ $? -eq 0 ]];then
    echo $black_ip >>./recheck_ip.txt
    else
    iptables -nL | grep $black_ip || iptables -I INPUT -s $black_ip -j DROP
    echo $black_ip >>./black_ip.txt
    fi
    done
    fi

    4.不建议长时间进行拦截,请在一段时间后待服务器负载正常,攻击基本停止后及时取消拦截,恢复原先状态。

    chmod +x deny_2.sh
    sh deny_2.sh

    保存后执行以下语句:

    首先运行

    根据对大多数用户提交的问题进行总结,近期发布一期新的技术帮助文档,内容是:Linux系统服务器内,如何屏蔽国外IP访问以及进行简单的防CC攻击拦截?

    拦截的IP会记录到black_ip.txt中,如果有要排除的白名单IP,可将这些IP加入到white_ip.txt,一行一个。

    保存后执行以下语句:

    首先运行

    添加以下命令语句:

    方式2:通过web网站日志中攻击者访问特征,根据这些特征过滤出攻击的ip,利用iptables来阻止(排除本机IP:127.0.0.1)。

    将下面脚本保存为/root/allcn.sh ,并设置可执行权限( 命令:chmod +x allcn.sh)

    /root/allcn.sh
    #!/bin/bash
    OLD_IFS=$IFS
    IFS=$'\n'
    for status in `cat 网站访问日志路径 | grep '特征字符' | grep -v '127.0.0.1' | awk '{print $1}' |sort -n | uniq -c | sort -n -r | head -20`
    do
    IFS=$OLD_IFS
    NUM=`echo $status | awk '{print $1}'`
    IP=`echo $status | awk '{print $2}'`
    if [ -z "`iptables -nvL | grep "dpt:80" | awk '{print $8}' | grep "$IP"`" ];then
    if [ $NUM -gt 250 ];then
    /sbin/iptables -I INPUT -p tcp  -s $IP --dport 80 -j DROP
    fi
    fi
    done

    通过ssh远程登录服务器内,运行如下命令语句获取国内IP网段,会保存为/root/china_ssr.txt

    vi  deny_1.sh
    wget -q --timeout=60 -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | awk -F\| '/CN\|ipv4/ { printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > /root/china_ssr.txt

    使用本教程请注意:

    
    */20 * * * * /root/deny_ip1.sh  >dev/null 2>&1

    第二部分:简单的CC攻击拦截

    vi deny_2.sh

    执行如下命令即可停止拦截

    3.对于方式2,执行前建议先将原日志文件改名,以重新生成的新的日志文件为准。

    *** 次数:10600 已用完,请联系开发者***

    1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!384324621@qq.com
    2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
    3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
    4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有★币奖励和额外收入!

    IO 源码网 » Linux系统服务器,如何屏蔽国外IP访问及进行简单的防CC攻击拦截?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    IO源码吧
    一个高级程序员模板开发平台

    发表评论

    • 177会员总数(位)
    • 12338资源总数(个)
    • 55本周发布(个)
    • 8 今日发布(个)
    • 563稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情