防止CC攻击实战脚本

2 篇文章 0 订阅
2 篇文章 0 订阅

最近有一台服务器的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

如果您对网络安全和Python有兴趣,欢迎加群482869582互相学习和交流哦!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

资深Python开发工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值