防御cc攻击

    xiaoxiao2021-03-26  45

    最近有一台服务器的web服务老是被人攻击导致网站访问特别慢,抓了下包看了下运来是cc攻击

    那么什么是cc攻击

    cc攻击的原理就是控制某些主机不停的发大量的数据包给服务器造成服务器资源耗尽(资源指带宽,硬件设备) 一直到用户访问不了为止。cc主要是用来攻击页面的,每个人都有这样的体验:当一个网页访问人数特别多的时候,打开网页就慢了,(我相信大家在2014年的时候访问12306买票的网站都有这样的体验吧).cc攻击就是模拟多个用户(多少进程就多少用户)不停的进行访问那些需要大量数据操作(或者带宽)的页面,造成服务器资源浪费,CPU长时间处于百分之百,永远有处理不完的链接直到网络拥塞,正常的访问终止.

    既然被攻击了,那么我们就要想办法解决

    我们写一个脚本来用iptables把连接过多的给删掉

    vim /usr/local/iptables/drop_ip.sh

    #!/bin/bash

    drop_ip=`tail 5000 /var/local/nginx/logs/access.log | awk '{a[$1]++}END{for(i in a)if(a[i]>300)print i}' `

    if test -n $drop_ip;then

    for i in drop_ip

    do

    if [ -z "`iptables -nvL |grep $i`" ];then

    /sbin/iptables -I INPUT -s $i -j DROP

    fi 

    done

    fi

    定期执行

    crontab -e 

    */5 * * * * sh /usr/local/iptables/drop_ip.sh

    为了防止防火墙规则过于臃肿我们需要把一些过时的规则给删掉

    vim /usr/local/iptables/drop_iptables.sh

    #!/bin/bash

    table=/tmp/iptables.log

    iptables-save > $table

    drop_ip=`cat $table |awk -F'[ /]' /DROP/'{if (NR>8){print $4}}'`

    for i in $drop_ip

    do

    /sbin/iptables -D INPUT -s $i -j DROP

    done

    //定期执行此脚本

    crontab -e

    * */3 * * * sh /usr/local/iptables/drop_iptables.sh

     

    转载请注明原文地址: https://ju.6miu.com/read-660880.html

    最新回复(0)