根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP.

当然各个公司的IP并发数各有不同,上面只是举例说明。

因为我的Nginx的WEB日志每天进行切割处理,不然所有web日志都堆在一起,查看麻烦。

系统状态

 [root@nginx shell]# cat /etc/redhat-release
CentOS release 6.7 (Final)
[root@nginx shell]# uname -r
2.6.-.el6.x86_64
[root@nginx shell]# /application/nginx/sbin/nginx -v
nginx version: nginx/1.10.

1、web日志切割脚本

脚本如下,各位网友可以根据自己的需求进行更改。

此脚本可以放在定时任务中执行,按照天数进行切割。

#!/bin/bash

#-------------CopyRight-------------
# Name:Cut Ningx logs
# Version Number:1.1
# Type:sh
# Language:bash shell
# Date:--
# Author:xubing
# QQ:
# Email:eeexu123@.com
# Blog:https://www.cnblogs.com/eeexu123/ #Nginx日志轮询切割备份
IP=$(ifconfig eth0 | awk -F "[ :]+" 'NR==2 {print $4}') #cut every day nginx log
cut(){
[ -d "/application/nginx/logs" ]||{
echo "Nginx logs is not exist."
exit
} cd /application/nginx/logs
/bin/mv www_access.log www_access_$(date +%F).log
/application/nginx/sbin/nginx -s reload
} #tar nginx log file to /backup
backup(){
[ -d "/backup/$IP" ]||{
mkdir -p /backup/$IP
} tar -zcf /backup/$IP/www_access_$(date +%F).log.tar.gz www_access_$(date +%F).log #rysnc /backup file to backup server
rsync -avz /backup/$IP rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password //推送到备份服务器上
} #del before day nginx log
del(){
find /application/nginx/logs -type f -name "*$(date +%F).log" -mtime + | xargs rm -f
find /backup/$IP -type f -name "*.tar.gz" -mtime + | xargs rm -f
} main(){
cut
sleep
backup
sleep
del
}
main

2、DOS攻击防护脚本

根据上述web日志进行PV统计。此脚本可以放入定时任务中。也可以在main函数中进行while循环

#!/bin/bash

#-------------CopyRight-------------
# Name:defined DoS
# Version Number:1.1
# Type:sh
# Language:bash shell
# Date:--
# Author:xubing
# QQ:
# Email:eeexu123@.com
# Blog:https://www.cnblogs.com/eeexu123/ ch_web_log(){
awk '{print $1}' /application/nginx/logs/www_access_$(date +%F).log|sort|uniq -c|sort -rn -k1>/tmp/ip.log //将统计的IP访问次数放到ip.log文件中 while read line
do
PV=`echo $line|awk '{print $1}'` //IP访问次数
IP=`echo $line|awk '{print $2}'`
if [ $PV -ge -a `iptables -nL|grep "$IP"|wc -l` -lt ];then //将PV大于100的IP,并且防火墙上并没有封堵此IP。不然防火墙会重复封堵IP
iptables -I INPUT -s $IP -j DROP //防火墙封堵
echo "$IP" >>/tmp/`date +%F`_ip.log //将封堵的IP放到此文件中
echo "The DROP ip is $IP"
fi
done</tmp/ip.log
}

#删除被防火墙封堵的IP
del(){
exec </tmp/$(date +%F -d '1day ago')_ip.log
while read line
do
iptables -D INPUT -s $line -j DROP
done
} main(){
ch_web_log
sleep
del
}
main

解决DDOS攻击生产案例的更多相关文章

  1. 企业Shell面试题5:解决DOS攻击生产案例

    企业Shell面试题5:解决DOS攻击生产案例 写一个Shell脚本解决DOS攻击生产案例. 请根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100(读者根据实际情况设定 ...

  2. shell解决DOS攻击生产案例

    解决DOS攻击生产案例企业实战题5:请用至少两种方法实现!写一个脚本解决DOS攻击生产案例.提示:根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100,即调用防火墙命令封 ...

  3. 抗D十招:十个方法完美解决DDoS攻击防御难题

    可以说,DDoS是目前最凶猛.最难防御的网络攻击之一.现实情况是,这个世界级难题还没有完美的.彻底的解决办法,但采取适当的措施以降低攻击带来的影响.减少损失是十分必要的.将DDoS防御作为整体安全策略 ...

  4. CentOS 系统开启防火墙,屏蔽IP,解决DDOS攻击

    刚才发现网站特别慢,然后看了一下服务器状态 CPU 负载100%. 然后看了下网络,发现一个IP一直在请求本服务器的 443 端口,就是本站. 然后在终端通过 iftop 命令(一个流量健康软件,如果 ...

  5. 怎样预防Ddos攻击

    一.为何要DDOS? 随着Internet互联网络带宽的增加和多种DDOS黑客工具的不断发布,DDOS拒绝服务攻击的实施越来越容易,DDOS攻击事件正在成上升趋势.出于商业竞争.打击报复和网络敲诈等多 ...

  6. 解决(防止)DDOS攻击的另一种思想

    本方案适合作最后的处理方案. 在服务器遭到DDOS攻击后,防火墙.高防盾或者其他的方案都已经失去了效力,这时运维人员无任何方案可以处理,并且只能任由DDOS攻击或关闭服务器时,该方案可以有限的抵挡大部 ...

  7. 被DDOS攻击的解决方法

    在DDOS分布式借"机"堵塞正常访问的非法攻击中,任何技术高手都成了文科生.只能用非专业的方法解决.DDOS攻击的重心是堵塞服务器,给域名解析访问造成困难,被攻击后我们可以采用以下 ...

  8. 分享下今天研究的流量上限DDos攻击分析和解决方式

    分享下今天研究的流量上限DDos攻击分析和解决方式 常常听到或者碰到某个站点被攻击.一般都是流量攻击.今天自己写了个程序測下相关的上限,程序仅仅简单做了个get html操作(不包括图片等资源文件). ...

  9. DDos攻击解决办法

    (1).DDos概念 分布式拒绝服务攻击(英文意思是Distributed Denial of Service,简称DDoS)是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控 ...

随机推荐

  1. checkbox 背景图片 纯CSS处理办法

    CSS .table_container input[type="checkbox"] { background: #fff url(/img/blue.png); backgro ...

  2. 录音-树莓派USB摄像头话筒

    实测可用: sudo arecord --duration=10 --device=plughw:1,0 --format=cd aaa.wav sudo arecord --duration=10 ...

  3. ArcGIS服务器的feature图层限制

    今天遇到了esri.layers.FeatureLayer发布一个宗地图层,里面有些数据未显示,导致数据显示不全,原来是服务中数据返回参数限制. ArcGIS的feature图层(在JavaScrip ...

  4. kernel中对文件的读写【学习笔记】【原创】

    /*1. 头文件 */ #include <linux/init.h> #include <linux/module.h> #include <linux/modulep ...

  5. 专网IP和公网IP的区别是什么

    专网ip是自己网内用,公网的话就全球有效 最大区别是公网IP世界只有一个,私网IP可以重复,但是在一个局域网内不能重复 访问互联网是需要IP地址的,IP地址又分为公网IP和私网IP,访问互联网需要公网 ...

  6. 编辑xml文件时不能自动提示问题的解决

    在编辑xml文件时,eclipse总是不能自动提示,在网上找了一些资料,大部分都是说关于xml editor配置的,下面也把这个方法罗列在下面,以供参考: 解决办法:在eclipse的菜单里,找到wi ...

  7. Linux档案属性

    输入命令:ls -al 档案类型权限: 第一個字元代表这个档案是『目录.档案或链接档等等』: 当为[ d ]则是目录: 当为[ - ]则是目录: 若是[ l ]则表示为链接档(link file): ...

  8. C++之const类成员变量,const成员函数

    const修饰类的成员函数 const修饰变量一般有两种方式:const T *a,或者 T const *a,这两者都是一样的,主要看const位于*的左边还是右边,这里不再赘述,主要来看一下当co ...

  9. C++之匿名对象解析

    我们知道在C++的创建对象是一个费时,费空间的一个操作.有些固然是必不可少,但还有一些对象却在我们不知道的情况下被创建了.通常以下三种情况会产生临时对象:   1,以值的方式给函数传参:   2,类型 ...

  10. POJ1904(有向图缩点+输入输出挂参考)

    King's Quest Time Limit: 15000MS   Memory Limit: 65536K Total Submissions: 8311   Accepted: 3017 Cas ...