shell之解决DOS攻击的方法

一、问题

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

转自大化运维

阅读更多
文章标签: shell
个人分类: shell
上一篇shell之作为密码生成器
下一篇Linux防火墙(iptables篇)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭