面試官:如何用shell腳本實現DDOS攻擊自動封禁IP?

概述

今天分享一個Shell腳本,主要是用來解決DDOS攻擊的簡單版。


需求

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

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

練習使用日誌下載地址:https://files.cnblogs.com/files/clsn/access-web-log.zip

面試官:如何用shell腳本實現DDOS攻擊自動封禁IP?


腳本實現

#!/bin/bash
#############################################################
# File Name: ddos_check.sh
#############################################################

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
#echo $Ip_Add
iptables -I INPUT -s $Ip_Add -j DROP
fi
done
面試官:如何用shell腳本實現DDOS攻擊自動封禁IP?


腳本執行結果

./ddos_check.sh
iptables -L
面試官:如何用shell腳本實現DDOS攻擊自動封禁IP?


覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~

面試官:如何用shell腳本實現DDOS攻擊自動封禁IP?


分享到:


相關文章: