解决DDOS攻击生产案例
根据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攻击生产案例的更多相关文章
- 企业Shell面试题5:解决DOS攻击生产案例
企业Shell面试题5:解决DOS攻击生产案例 写一个Shell脚本解决DOS攻击生产案例. 请根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100(读者根据实际情况设定 ...
- shell解决DOS攻击生产案例
解决DOS攻击生产案例企业实战题5:请用至少两种方法实现!写一个脚本解决DOS攻击生产案例.提示:根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100,即调用防火墙命令封 ...
- 抗D十招:十个方法完美解决DDoS攻击防御难题
可以说,DDoS是目前最凶猛.最难防御的网络攻击之一.现实情况是,这个世界级难题还没有完美的.彻底的解决办法,但采取适当的措施以降低攻击带来的影响.减少损失是十分必要的.将DDoS防御作为整体安全策略 ...
- CentOS 系统开启防火墙,屏蔽IP,解决DDOS攻击
刚才发现网站特别慢,然后看了一下服务器状态 CPU 负载100%. 然后看了下网络,发现一个IP一直在请求本服务器的 443 端口,就是本站. 然后在终端通过 iftop 命令(一个流量健康软件,如果 ...
- 怎样预防Ddos攻击
一.为何要DDOS? 随着Internet互联网络带宽的增加和多种DDOS黑客工具的不断发布,DDOS拒绝服务攻击的实施越来越容易,DDOS攻击事件正在成上升趋势.出于商业竞争.打击报复和网络敲诈等多 ...
- 解决(防止)DDOS攻击的另一种思想
本方案适合作最后的处理方案. 在服务器遭到DDOS攻击后,防火墙.高防盾或者其他的方案都已经失去了效力,这时运维人员无任何方案可以处理,并且只能任由DDOS攻击或关闭服务器时,该方案可以有限的抵挡大部 ...
- 被DDOS攻击的解决方法
在DDOS分布式借"机"堵塞正常访问的非法攻击中,任何技术高手都成了文科生.只能用非专业的方法解决.DDOS攻击的重心是堵塞服务器,给域名解析访问造成困难,被攻击后我们可以采用以下 ...
- 分享下今天研究的流量上限DDos攻击分析和解决方式
分享下今天研究的流量上限DDos攻击分析和解决方式 常常听到或者碰到某个站点被攻击.一般都是流量攻击.今天自己写了个程序測下相关的上限,程序仅仅简单做了个get html操作(不包括图片等资源文件). ...
- DDos攻击解决办法
(1).DDos概念 分布式拒绝服务攻击(英文意思是Distributed Denial of Service,简称DDoS)是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控 ...
随机推荐
- Process 'command 'D:\AndroidSDK\ndk-bundle\ndk-build.cmd'' finished with non-zero exit value 2
解决方法: 在jni文件下建一个空的empty.c文件 编译运行即可. 如果还运行不了,在当前model的build.gradle下添加. android{ ………… sourceSets.main ...
- 测试覆盖率Emma工具使用
Emma使用与分析 #什么是Emma EMMA 是一个开源.面向 Java 程序测试覆盖率收集和报告工具.它通过对编译后的 Java 字节码文件进行插装,在测试执行过程中收集覆盖率信息,并通过支持多种 ...
- SYN FLOOD学习理解
SYN FLOOD是一种比较常见的DoS攻击手段,它的特点就是防不胜防.SYN攻击属于DOS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源.SYN攻击除了能影响主机外 ...
- POJ2492 A Bug's Life —— 种类并查集
题目链接:http://poj.org/problem?id=2492 A Bug's Life Time Limit: 10000MS Memory Limit: 65536K Total Su ...
- git rev-list 和 git rev-parse
git-rev-list - Lists commit objects in reverse chronological order https://git-scm.com/docs/git-rev- ...
- SqlServer--学习触发器
触发器是一种特殊的存储过程,一种不能被显式执行,而必须依附于一个事件的过程 主要作用:自动化操作;减少手动操作以及出错的几率. 触发器分类:DML(Data Manipulation Language ...
- 给DataTable中添加一行数据
一.如果该DataTable有两列,列的名称是Name,Age,且该DataTable的名称是dt; DataRow dr = dt.NewRow(); dr["Name"] = ...
- saltstack api安装使用
Salt自然也是提供api的,使用api对自动化有极大的帮助,我们使用rest风格的api,当然大家都知道salt是python写的,那么自然也就提供了对应的api,但是并不建议使用,因为调用pyth ...
- Python interview_python
https://github.com/taizilongxu/interview_python 1 Python的函数参数传递 strings, tuples, 和numbers是不可更改的对象,而l ...
- Windows 下有什么软件能够极大地提高工作效率
Windows 下有什么软件能够极大地提高工作效率?修改 可以推荐一些好的应用或者有趣的程序,能提升工作效率或者能让人眼前一亮的.修改 举报1 条评论 分享 • 邀请回答 按票数排序按时间排序 2 ...