shell实例浅谈之五解决网络中DOS攻击的方法
来源:互联网 发布:台州网络平台赌博 编辑:程序博客网 时间:2024/05/22 07:41
一、问题
DOS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。
解决DOS攻击方法:可以通过分析web日志,或者查看网络连接数,当某个IP并发连接数过多(或判断PV短时内达到1000),则调用防火墙命令封掉对应的ip,监控频率可是每隔3分钟。
二、详解
1、网络连接
(1)判断某个网段,可以连接的用户
ping通即在线,但该方法花费的时间比较长
- #判断用户在线,ping通即在线
- #!/bin/bash
- for n in `seq 254` #从192.168.40.1-192.168.40.254
- do
- ping -c2 192.168.40.$n > /dev/null 2>&1 #发送两个数据包
- if [ $? -eq 0 ] #返回状态判断
- then
- echo "192.168.40.$n is up" >> downlist.log #记录结果文件
- #else
- #echo "192.168.40.$n is down" >> downlist.log
- fi
- done
- echo "spend time:$SECONDS"
2、解决DOS攻击
(1)方法一:分析web日志
把单IP PV数高的封掉(可按天定义PV=1000即封掉):
- #!/bin/bash
- while true
- do
- #access.log为web日志文件
- awk '{print $1}' access.log | grep -v "^$" | sort | uniq -c > tmp.log
- exec < tmp.log #输入重定向
- while read line #读取文件
- do
- ip=`echo $line | awk '{print $2}'`
- count=`echo $line | awk '{print $1}'`
- if [ $count -gt 100 ] && [ `iptables -n -L | grep "$ip" | wc -l` -lt 1 ]
- then
- iptables -I INPUT -s $ip -j DROP
- echo "$line is dropped" >> droplist.log
- fi
- done
- sleep 3
- done
(2)方法二:分析网络连接数
netstat -an | grep EST查看网络状态如下:
tcp 0 0 192.168.40.125:46476 112.95.242.171:80 ESTABLISHED
tcp 0 74 192.168.40.125:57948 173.194.127.177:443 ESTABLISHED
tcp 0 0 192.168.40.125:52290 118.144.78.52:80 ESTABLISHED
tcp 0 0 192.168.40.125:42593 163.177.65.182:80 ESTABLISHED
tcp 0 0 192.168.40.125:49259 121.18.230.110:80 ESTABLISHED
tcp 0 0 192.168.40.125:52965 117.79.157.251:80 ESTABLISHED
- #!/bin/bash
- while true
- do
- grep EST est.log | awk -F '[ :]+' '{print $6}' | sort | uniq -c > tmp.log
- #netstat -an | grep EST | awk -F '[ :]+' '{print $6}' | sort | uniq -c
- exec < tmp.log
- while read line
- do
- ip=`echo $line | awk '{print $2}'`
- count=`echo $line | awk '{print $1}'`
- if [ $count -gt 100 ] && [ `iptables -n -L | grep "$ip" | wc -l` -lt 1 ]
- then
- iptables -I INPUT -s $ip -j DROP
- echo "$line is dropped" >> droplist.log
- fi
- done
- sleep 3
- done
- shell实例浅谈之五解决网络中DOS攻击的方法
- shell实例浅谈之五解决网络中DOS攻击的方法
- DoS网络攻击的类型
- 浅谈DOS与DDOS攻击的原理
- shell实例浅谈之三产生随机数七种方法
- shell实例浅谈之产生随机数七种方法
- shell实例浅谈之六文件特定行打印的多种方法
- shell实例浅谈之文件特定行打印的多种方法
- 网络服务器预防dos攻击的层次
- 网络服务器预防dos攻击的层次
- shell实例浅谈之四查找文本中出现频率最高的单词
- shell实例浅谈之查找文本中出现频率最高的单词
- 用抓包的方法解决ARP病毒欺骗攻击实例
- DoS和DDoS的攻击方法浅析
- shell实例浅谈之检测用户输入串的合法性
- DoS攻击方法-NAPTHA
- 解决ARP攻击的方法
- 解决ARP攻击的方法
- 第三章 栈和队列
- hdu3336----Count the string
- [C++]LeetCode: 67 Single Number II
- shell实例浅谈之文件特定行打印的多种方法
- oracle合并查询
- shell实例浅谈之五解决网络中DOS攻击的方法
- 【POJ3261】Milk Patterns 后缀数组
- 2014年国家级虚拟仿真实验教学中心入选名单(温州大学)
- json反序列化和反序列化
- shell实例浅谈之查找文本中出现频率最高的单词
- android 屏幕适配
- Java并发学习笔记(二)-Executor捕获异常机制
- iOS项目的完整重命名方法图文教程
- shell实例浅谈之产生随机数七种方法