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

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

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

系统状态

1 [root@nginx shell]# cat /etc/redhat-release
2 CentOS release 6.7 (Final)
3 [root@nginx shell]# uname -r
4 2.6.32-573.el6.x86_64
5 [root@nginx shell]# /application/nginx/sbin/nginx -v
6 nginx version: nginx/1.10.3

1、web日志切割脚本

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

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

#!/bin/bash#-------------CopyRight-------------
#   Name:Cut Ningx logs
#   Version Number:1.1
#   Type:sh
#   Language:bash shell
#   Date:2018-05-16
#   Author:xubing
#   QQ:442656067
#   Email:eeexu123@163.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 1 }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 serverrsync -avz /backup/$IP rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password  //推送到备份服务器上
}#del before 7 day nginx log
del(){find /application/nginx/logs -type f -name "*$(date +%F).log" -mtime +7 | xargs rm -ffind /backup/$IP -type f -name "*.tar.gz" -mtime +7 | xargs rm -f
}main(){cutsleep 2backupsleep 2del
}
main

2、DOS攻击防护脚本

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

#!/bin/bash#-------------CopyRight-------------
#   Name:defined DoS
#   Version Number:1.1
#   Type:sh
#   Language:bash shell
#   Date:2018-05-16
#   Author:xubing
#   QQ:442656067
#   Email:eeexu123@163.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 linedoPV=`echo $line|awk '{print $1}'`    //IP访问次数IP=`echo $line|awk '{print $2}'`if [ $PV -ge 100 -a `iptables -nL|grep "$IP"|wc -l` -lt 1 ];then   //将PV大于100的IP,并且防火墙上并没有封堵此IP。不然防火墙会重复封堵IPiptables -I INPUT -s $IP -j DROP     //防火墙封堵echo "$IP" >>/tmp/`date +%F`_ip.log  //将封堵的IP放到此文件中echo "The DROP ip is $IP"fidone</tmp/ip.log
}
#删除被防火墙封堵的IP
del(){exec </tmp/$(date +%F -d '1day ago')_ip.logwhile read linedoiptables -D INPUT -s $line -j DROPdone
}main(){ch_web_logsleep 2del
}
main

转载于:https://www.cnblogs.com/eeexu123/p/9045031.html

解决DDOS攻击生产案例相关推荐

  1. linux shell ddos木马,利用Shell 脚本解决DDOS攻击问题

    思路:主要利用 awk ,if结构,sort,uniq #!/bin/bash FilePath="access.log" awk '{print $1}' $FilePath | ...

  2. linux运维解决ddos,运维人员该如何排查并解决DDOS攻击

    今天小编要跟大家分享的文章是关于运维人员该如何排查并解决DDOS攻击.DOS攻击或者DDOS攻击是试图让机器或者网络资源不可用的攻击.这种攻击的攻击目标网站或者服务通常是托管在高防服务器比如银行,信用 ...

  3. php shell ddos,利用Shell 脚本解决DDOS攻击问题

    思路:主要利用 awk ,if结构,sort,uniq #!/bin/bash FilePath="access.log" awk '{print $1}' $FilePath | ...

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

    转载自:https://zhuanlan.zhihu.com/p/30150531 可以说,DDoS是目前最凶猛.最难防御的网络攻击之一.现实情况是,这个世界级难题还没有完美的.彻底的解决办法,但采取 ...

  5. 如何完美解决DDoS攻击

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

  6. APP为什么会被攻击?快速解决DDOS攻击,做好CC防御。

    今日小蚁云安全给咱们讲讲服务器被ddos歹意进犯的那些事,首页给咱们讲讲我一朋友的亲身经历.我有一朋友开了一家游戏公司,最近几年游戏俨然现已成了咱们生活中不行缺少的部分,我这朋友渠道开展的也还不错. ...

  7. 用shell解决ddos攻击实例

    提示:根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100 即调用防火墙命令封掉对应的IP,监控频率每隔3分钟 防火墙命令为:iptables -A INPUT -s 1 ...

  8. php shell ddos,用shell解决ddos攻击实例

    提示:根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100 即调用防火墙命令封掉对应的IP,监控频率每隔3分钟 防火墙命令为:iptables -A INPUT -s 1 ...

  9. 干货,游戏DDoS攻击趋势及原因分析,附防御案例

    我曾看到充满激情的创业团队.一个个玩法很有特色的产品,被这种互联网攻击问题扼杀在摇篮里: 也看到过一个运营很好的产品,因为遭受DDoS攻击,而一蹶不振. 这也是为什么想把自己6年做游戏行业DDoS的经 ...

最新文章

  1. MySQL查询语句的45道练习
  2. html选择按钮selected,HTML Option defaultSelected用法及代码示例
  3. 043_集合重要知识点
  4. 配置tomcat支持http delete和put的方法
  5. 0414-复利计算再升级
  6. C++语言基础 —— STL —— 容器与迭代器 —— list 与 deque
  7. TensorFlow官方教程翻译:TensorFlow调试器
  8. CSS3 变换/变形(transform)
  9. 编程语言python怎么读-Python之编程基础(编程语言分类)
  10. CAM350 V14.6 检查gerber文件
  11. 迷你迅雷 vs. QQ旋风
  12. 魔兽服务器里炉石怎么修改,魔兽世界炉石怎么用
  13. 【English】语法之句子种类(陈述句、疑问句、祈使句、感叹句)
  14. html勾选标签,html怎么勾选框
  15. (十二):为什么需要一个新的ORM框架
  16. vite alias配置路径地址别名
  17. 在 dhcpd 中配置分配静态路由条目
  18. 案例-修改-回显数据
  19. 为什么市场为百度财报买单?
  20. 筹资与投资循环审计案例

热门文章

  1. #计算长方形的周长和面积公式_Animate如何制作动态计算长方形面积及周长
  2. java 怎么启动线程_线程如何正确的启动
  3. 【java】接口(interface)
  4. CentOS 6.3 源码编译安装Apache
  5. Zabbix 监控Nginx连接的状态
  6. linux(Ubuntu)常用命令整理 -- 基础篇 -- 持续更新
  7. Syncthing vs BitTorrent Sync
  8. iPhone在scrollview中双击定点放大的代码
  9. Oracle性能调优
  10. 敏捷、TDD(测试驱动开发)、OO--前奏