解决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)是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控 ...
随机推荐
- Use Apache HBase™ when you need random, realtime read/write access to your Big Data.
Apache HBase™ is the Hadoop database, a distributed, scalable, big data store. Use Apache HBase™ whe ...
- 在Qt中使用大漠插件
因工作需要,项目需求(要编写一个营销软件,其中一个功能是控制QQ和微信发送广告消息给指定的联系人或群组, 因为我Windows和逆向水平还不到家,起初的调用Windows API的设计方案不可行,于是 ...
- ubuntu搭建mysql
步骤1 – 安装MySQL 在 Ubuntu 16.04 中,默认情况下,只有最新版本的 MySQL 包含在 APT 软件包存储库中.在撰写本文时,那是 MySQL 5.7 要安装它,只需更新服务器上 ...
- ssh服务器终端乱码
在使用 iTerm2 ssh 连接远程服务器的终端时,终端中文显示乱码.但是本地使用却没有出现中文乱码的问题,在网络上寻找了一番发现应该是服务器字符集和本地 iTerm2 设置的字符集不一致导致的,于 ...
- leeetcode 735. Asteroid Collision
We are given an array asteroids of integers representing asteroids in a row. For each asteroid, the ...
- undefined reference to '__android_log_print'解决方案
1:在源程序中添加头文件 #include <cutils/log.h> 2:在Android.mk中添加 LOCAL_SHARED_LIBRARIES := \ libutils \ l ...
- Gym - 100187J J - Deck Shuffling —— dfs
题目链接:http://codeforces.com/gym/100187/problem/J 题目链接:问通过洗牌器,能否将编号为x的牌子转移到第一个位置? 根据 洗牌器,我们可以知道原本在第i位置 ...
- Objective-C学习之解析XML
通过soap请求webservice时,返回的数据是XML类型,有时候也需要解析本地的xml数据等,苹果自带类NSXMLParser解析xml还是很方便的,简单轻便 本文以解析本地XML为例,网络获取 ...
- codeforces 463C. Gargari and Bishops 解题报告
题目链接:http://codeforces.com/contest/463/problem/C 题目意思:要在一个 n * n 大小的棋盘上放置两个bishop,bishop可以攻击的所有位置是包括 ...
- 自建 AppRTC
自建 AppRTC 字数3158 阅读1718 评论2 喜欢2 AppRTC 是 webrtc 的一个 demo.自建 AppRTC 可以苦其心志劳其筋骨饿其体肤,更重要的是能学会 webrtc 服务 ...