首页 > 代码库 > 企业网站对于每日访问量过大的IP进行查封
企业网站对于每日访问量过大的IP进行查封
通过企业网站的日志文件分析,对于每日访问量到达一定数量的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列表则表明脚本执行成功。
本文出自 “wxtan” 博客,请务必保留此出处http://wxtan.blog.51cto.com/13124984/1955818
企业网站对于每日访问量过大的IP进行查封
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。