Shell—實現DDOS攻擊自動封禁IP

需求:請根據web日誌或者或者網絡鏈接數,監控當某個IP併發鏈接數或者短時內PV達到100,即調用防火牆命令封掉對應的IP。web

防火牆命令爲:iptables-I INPUT -s IP地址 -j DROP。bash

腳本實現網絡

#!/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
相關文章
相關標籤/搜索