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

转自大化运维

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值