通过企业网站的日志文件分析,对于每日访问量到达一定数量的IP进行查封
脚本通过传参的形式,可以对任何日志进行传递分析
ipt函数进行查封,del函数对昨天查封的IP进行解封
#!/bin/bash #2017-08-12 if [ $# -lt 1 ];then echo "USAGE:$0 ARG" exit 1 fi ipt(){ awk '{print $1}' $1|sort|uniq -c|sort -rn -k1 > /tmp/tmp.log exec</tmp/tmp.log while read line do ip=`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).log fi done } 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 true do ipt $1 sleep 5 del done } main $*
可以通过加入定时任务方便执行
测试执行的话可以sh <script>.sh XX_2017_xx_xx.log执行,并启动另一个shell
打开watch iptables -L -n进行实时查看,如果超过一定数量的IP进入了防火墙drop列表则表明脚本执行成功。
转载于:https://blog.51cto.com/wxtan/1955818