Shell程式設計面試題6_監控IP連線數,超過100封掉該IP
阿新 • • 發佈:2019-01-05
老男孩出的Shell程式設計企業面試題6:
寫一個指令碼解決DOS攻擊生產案例
提示:根據web日誌或者或者網路連線數,監控當某個IP併發連線數或者短時內PV達到100,即呼叫防火牆命令封掉對應的IP,監控頻率每隔3分鐘。防火牆命令為:iptables -I INPUT -s 10.0.1.10 -j DROP。
我的Shell指令碼如下:
執行crontab -e,設定每3分鐘執行一次:#!/bin/bash #environment variable source /etc/profile iplist=`netstat -ntu | awk '{print $5}'| cut -d':' -f1| sort |uniq -c | sed 'N;$d;P;D' | awk '{if($1>100)print $2}'` for ip in $iplist do iptables -I INPUT -s $ip -j DROP echo "$ip is drop!" done
crontab -e
*/3 * * * * /bin/bash /test/shellstudy/netstatip.sh