博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
补充自动屏蔽攻击ip
阅读量:4057 次
发布时间:2019-05-25

本文共 657 字,大约阅读时间需要 2 分钟。

上篇的代码感觉还不过瘾,于是又加上了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 &

转载地址:http://rsrci.baihongyu.com/

你可能感兴趣的文章
ES写入找不到主节点问题排查
查看>>
Java8 HashMap集合解析
查看>>
欢迎使用CSDN-markdown编辑器
查看>>
Android计算器实现源码分析
查看>>
Android系统构架
查看>>
Android 跨应用程序访问窗口知识点总结
查看>>
各种排序算法的分析及java实现
查看>>
SSH框架总结(框架分析+环境搭建+实例源码下载)
查看>>
自定义 select 下拉框 多选插件
查看>>
js获取url链接携带的参数值
查看>>
gdb 调试core dump
查看>>
gdb debug tips
查看>>
linux和windows内存布局验证
查看>>
linux kconfig配置
查看>>
linux不同模块completion通信
查看>>
linux printf获得时间戳
查看>>
C语言位扩展
查看>>
linux irqdebug
查看>>
git 常用命令
查看>>
linux位操作API
查看>>