前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >过滤web异常访问ip并封禁脚本

过滤web异常访问ip并封禁脚本

作者头像
IT运维技术圈
发布2022-06-26 13:55:21
发布2022-06-26 13:55:21
41600
代码可运行
举报
文章被收录于专栏:IT运维技术圈IT运维技术圈
运行总次数:0
代码可运行

过滤nginx日志异常频率访问的IP,如果发现高频率访问量的ip,将自动对其进行封杀,如IP在半小时后恢复正常,则解除封禁

代码语言:javascript
代码运行次数:0
复制
#!/bin/bash

logfile=/data/nginx/log/access.log
d1=`date -d "-1 minute" +%H%M`
d2=`date +%M`
ipt=/sbin/iptables
ips=/data/tmp/ips.txt
ban()
{
 grep '$d1:' $logfile|awk '{print $1}'|sort -n|uniq -c|sort -n > $ips
 
 for i in `awk '$1>100 {print $2}' $ips`
 do
 $ipt -I INPUT -p tcp --dport 80 -s $i -j REJECT
 echo "`date +%F-%T` $i" >> /tmp/badip.log
 done
}
unban()
{

 for a in `$ipt -nvL INPUT --line-numbers |grep '0.0.0.0/0'|awk '$2<10 {print $1}'|sort -nr`
 do 
 $ipt -D INPUT $a
 done
 $ipt -Z
}

if [ $d2 -eq "00" ] || [ $d2 -eq "30" ];
 then unban ban else
 ban
fi

大家可以根据上面的思路进行扩展丰富哦!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT运维技术圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档