一、问题
DOS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。
解决DOS攻击方法:可以通过分析web日志,或者查看网络连接数,当某个IP并发连接数过多(或判断PV短时内达到1000),则调用防火墙命令封掉对应的ip,监控频率可是每隔3分钟。
二、详解
1、网络连接
(1)判断某个网段,可以连接的用户
ping通即在线,但该方法花费的时间比较长
#判断用户在线,ping通即在线
#!/bin/bash
for i in `seq 254` #192.168.217.1-192.168.217.254
do
ping -c 2 192.168.217.$i &> /dev/null
[ $? -eq 0 ] && echo "192.168.217.$i is up" >> downlist.log #追加
done
echo "spends time :$SECONDS" #shell脚本的执行时间
2、解决DOS攻击
(1)方法一:分析web日志
把单IP PV数高的封掉(可按天定义PV=1000即封掉):
#!/bin/bash
while true
do
awk '{print $1}' access.log | grep -v "^$"| sort | uniq -c > temp.log
cat temp.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
exit 0
done
转自大化运维