补充自动屏蔽攻击ip

上篇的代码感觉还不过瘾,于是又加上了apache中error.log日志的内容。

#!/bin/sh
ufwDeny(){
FILE="/var/log/ufw.log"
#MAX=15 这里的阈值设置的是当天12个小时被防火墙阻拦超过15次的IP
IP=$(sudo awk '{now=strftime("%d");now=now+0;if($2==now)S[$12]++}END{for(k in S)if(S[k]>15)print k}' $FILE|sed 's#SRC=##g')
for j in $IP
do
  sudo ufw deny from $j to any
done

}

accessError(){
  FILE="/var/log/apache2/error.log"
  #MAX=10 这里的阈值设置的是当天12个小时apache访问报错的日志信息中大于10次的ip
  IP=$(sudo awk '{S[$10]++}END{for(k in S)if(S[k]>10)print k}' $FILE|awk -F":" '{print $1}'|uniq)
for j in $IP
do
  sudo ufw deny from $j to any
done
}

main(){
  while true
  do
    ufwDeny
    accessError
    sleep 12h  #你们可以吧sleep的休眠时间设小一点,这样检查就频繁一些。现在是12小时。
  done
}

main 2>&1 &

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值