標籤:shell
通過企業網站的記錄檔分析,對於每日訪問量到達一定數量的IP進行查封
指令碼通過傳參的形式,可以對任何日誌進行傳遞分析
ipt函數進行查封,del函數對昨天查封的IP進行解鎖
#!/bin/bash#2017-08-12if [ $# -lt 1 ];then echo "USAGE:$0 ARG" exit 1fiipt(){awk ‘{print $1}‘ $1|sort|uniq -c|sort -rn -k1 > /tmp/tmp.logexec</tmp/tmp.logwhile read linedoip=`echo $line|awk ‘{print $2}‘`if [ `echo $line|awk ‘{print $1}‘` -gt 10 -a `iptables -L -n|grep "$ip"|wc -l` -lt 1 ];then iptables -I INPUT -s $ip -j DROP echo $ip >>/tmp/ip_$(date +$F).logfidone}del(){ touch /tmp/ip_$(date +$F -d ‘-1day‘).log exec < /tmp/ip_$(date +$F -d ‘-1day‘).log while read line do if [ `iptables -L -n|grep "$line"|wc -l` -ge 1 ];then iptables -D INPUT -s $line -j DROP fi done}main(){while truedo ipt $1 sleep 5 deldone}main $*
可以通過加入定時任務方便執行
測試執行的話可以sh <script>.sh XX_2017_xx_xx.log執行,並啟動另一個shell
開啟watch iptables -L -n進行即時查看,如果超過一定數量的IP進入了防火牆drop列表則表明指令碼執行成功。
本文出自 “wxtan” 部落格,請務必保留此出處http://wxtan.blog.51cto.com/13124984/1955818
企業網站對於每日訪問量過大的IP進行查封