zoukankan      html  css  js  c++  java
  • Shell—实现DDOS攻击自动封禁IP

    需求:请根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP。

    防火墙命令为:iptables-I INPUT -s IP地址 -j DROP。

    脚本实现

    #!/bin/bash
    Info_File=/tmp/ddos_check.log
    
    #从连接数获取
    #netstat -lant|awk -F "[ :]+" '/180:80/{clsn[$6]++}END{for(pol in clsn)print pol,clsn[pol]}' >$Info_File
    
    # 从日志获取
    awk '{hotel[$1]++}END{for(pol in hotel)print pol,hotel[pol]}' access.log | sort -nk2 -r >$Info_File
    
    while read line 
    do 
       Ip_Add=`echo $line |awk '{print $1}'`
       Access=`echo $line |awk '{print $2}'`
       if [ $Access -ge 10000 ]; then
           iptables -I INPUT -s $Ip_Add -j DROP
       elif [ $Access -le 5000 ]; then
           echo "小于5000"
       else
           echo "大于5000小于10000"
       fi
    done <$Info_File
    

      

  • 相关阅读:
    2-5
    2-3
    2-2
    2-1
    1-1
    实验6-1 求数组及其下标
    实验4-2 关于求阶乘的运算
    作业 3-5 switch语句的应用
    作业3-6 查询水果单价
    作业3-4 判断是不是闰年
  • 原文地址:https://www.cnblogs.com/liuhaidon/p/11880967.html
Copyright © 2011-2022 走看看