ip防刷脚本
#!/bin/sh
#防刷脚本 #env
ACCESS_PATH=/home/wwwlogs
ACCESS_LOG=y.log
IPTABLES_TOP_LOG=iptables_top.log
DROP_LOG=droplist.log
HISTORY_LOG=history.log
#ip白名单
noip=`cat noip.list`
#防刷阈值
limitnum=500
#统计请求日志
while true
do
awk '{print$1}' ${ACCESS_PATH}/${ACCESS_LOG} \
| egrep -vi "${noip}" \
| sort \
| uniq -c \
| sort -rn \
| head -20 \
>${ACCESS_PATH}/${IPTABLES_TOP_LOG} #判断是否达到阈值
exec<${ACCESS_PATH}/${IPTABLES_TOP_LOG}
while read line
do
count=$(echo $line | awk '{print$1}')
ip=$(echo $line |awk '{print$2}')
[ "$count" -gt "$limitnum" ] && {
iptables -I INPUT -s $ip -j DROP;
echo -e " $line is dropped\c">>${ACCESS_PATH}/${DROP_LOG}
}
done
#发送告警
sendnum=`cat ${ACCESS_PATH}/${DROP_LOG}|wc -L`
[ "$sendnum" -gt "0" ] && {
content="报警:$(hostname) $(date +%X) $(cat ${ACCESS_PATH}/${DROP_LOG}) \
以上IP访问次数频繁,单IP 1分钟超过阈值${limitnum}请注意查看"
python /server/scripts/iptables/sms.py 15900009999 "${content}"
cat ${ACCESS_PATH}/droplist.log >>${ACCESS_PATH}/${HISTORY_LOG}
>${ACCESS_PATH}/${DROP_LOG}|
}
#清除1分钟内数据,准备下一次新数据 >${ACCESS_PATH}/${IPTABLES_TOP_LOG}
sleep 60
done
#!/bin/sh
#防刷脚本 #env
ACCESS_PATH=/home/wwwlogs
ACCESS_LOG=y.log
IPTABLES_TOP_LOG=iptables_top.log
DROP_LOG=droplist.log
#防刷阈值
limitnum=500
#统计请求日志
while true
do
awk '{print$1}' ${ACCESS_PATH}/${ACCESS_LOG} \
| sort \
| uniq -c \
| sort -rn \
| head -20 \
>${ACCESS_PATH}/${IPTABLES_TOP_LOG} #判断是否达到阈值
exec<${ACCESS_PATH}/${IPTABLES_TOP_LOG}
while read line
do
count=$(echo $line | awk '{print$1}')
ip=$(echo $line |awk '{print$2}')
[ "$count" -gt "$limitnum" ] && {
iptables -I INPUT -s $ip -j DROP;
echo -e " $line is dropped\c">>${ACCESS_PATH}/${DROP_LOG}
}
done #清除1分钟内数据,准备下一次新数据 >${ACCESS_PATH}/${IPTABLES_TOP_LOG}
sleep 60
done
ip防刷脚本的更多相关文章
- 一个简单IP防刷工具类, x秒内最多允许y次单ip操作
IP防刷,也就是在短时间内有大量相同ip的请求,可能是恶意的,也可能是超出业务范围的.总之,我们需要杜绝短时间内大量请求的问题,怎么处理? 其实这个问题,真的是太常见和太简单了,但是真正来做的时候,可 ...
- Linux 针对nginx日志文件做ip防刷限制
针对nginx日志做ip访问限制 1.cat /var/log/server/nginx/access.log| awk -F '?' '/optionid/{print $1}'|awk '{pri ...
- php获取用户真实IP和防刷机制
一. 如何获取用户IP地址 public static function getClientIp() { if (getenv('HTTP_CLIENT_IP')) { $ip = getenv( ...
- spring boot 对某个接口进行次数限制,防刷。简易版。demo。
一般的项目 如果没有做防刷 容易被人爆接口 或者就是说没有做token防刷过滤. 容易被人用正常的token刷接口.有些token非一次性. 用户登录之后生成token会有一个过期时间,但一般没有做频 ...
- 使用Redis+自定义注解实现接口防刷
最近开发了一个功能,需要发送短信验证码鉴权,考虑到短信服务需要收费,因此对此接口做了防刷处理,实现方式主要是Redis+自定义注解(需要导入Redis的相关依赖,完成Redis的相关配置,gs代码,这 ...
- 通过Redis、Memcache的 incr 原子操作防刷机制的使用差别
我的版本如下: Redis:3.2.100 Memcache:1.4.4 最近在处理服务器压力测试的时候,想到一个方案,在一定时间段内限制用户访问次数.具体的实现就是通过redis的院子操作incre ...
- Spring Boot项目的接口防刷
说明:使用了注解的方式进行对接口防刷的功能,非常高大上,本文章仅供参考 一,技术要点:springboot的基本知识,redis基本操作, 首先是写一个注解类: import java.lang.an ...
- 批量IP自动netcat脚本
批量IP自动netcat脚本nc.sh 在同一目录新建一个名为ncip的文件,并以每行一个IP的方式罗列.使用sh命令执行nc.sh.此例中是测试22端口访问情况. #!/bin/bash IP_LI ...
- 批量IP自动ping脚本
批量IP自动ping脚本ping.sh 在同一目录新建一个名为pingip的文件,并以每行一个IP的方式罗列.使用sh命令执行ping.sh #!/bin/bash IP_LIST=`cat ping ...
随机推荐
- sublime text 2使用方法
笔者用过的一些软件用来写Verilog代码,比如notepad+,ultra,editplus等,近日在群里看到大家在讨论一个比较有意思的软件,sublime text,才发现有种相见恨晚的感觉,其实 ...
- 基于jquery的ui选择之路
选定: 主框架:jqueryUi tree:ztree grid:jqGrid layout:jquery.layout 原由: 还有其他demo,ajax实现等参看连接: 正在做的一个项目选择jqu ...
- GRUB——系统的引导程序简单介绍
这几天对于操作系统是如何引导启动的特征的感兴趣,已经到了不能自拔的状态了,所以索性好好了解一下: 前面已经说过了,MBR对于系统启动的重要性,这是不多啰嗦: 现在介绍一个 grub ,启动管理器,它 ...
- 计蒜客2018 蓝桥杯省赛 B 组模拟赛(一)
1,结果填空:年龄 今天蒜头君带着花椰妹和朋友们一起聚会,当朋友们问起年龄的时候,蒜头君打了一个哑谜(毕竟年龄是女孩子的隐私)说:“我的年龄是花椰妹年龄个位数和十位数之和的二倍”. 花椰妹看大家一脸懵 ...
- SpringMVC系列(三):REST风格
一.什么叫REST REST:即 Representational State Transfer.(资源)表现层状态转化.是目前最流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所 ...
- c# mvc 获取 HtmlHelper 表达式值和时间格式化 去边框
/// <summary> /// 返回没有边框的只读的TextBox标签 /// </summary> /// <typeparam name="TModel ...
- TCDB 数据库简介
TCDB是对膜转运蛋白(Membrane Transport Protein)进行分类的一个数据库,它制定了一套转运蛋白分类系统(Transporter Classification), 简称TC S ...
- 使用FileZilla解决从Windows上传文件到Linux vsftpd的乱码问题!
日前将golang的开发环境从windows转移到了CentOS6上,为了把以前写得项目代码上传到centos,架设了vsftpd服务,设置为本地用户登录,然后用惯用的ftp软件flashfxp上传了 ...
- kafka学习之-集群配置及安装
1.软件版本 kafka2.10_0.9.0.0 zookeeper_3.4.6 2.集群节点 一共有3台机器. 192.168.14.100 slave-01 192.168.14.105 slav ...
- 2 python大数据挖掘系列之淘宝商城数据预处理实战
preface 在上一章节我们聊了python大数据分析的基本模块,下面就说说2个项目吧,第一个是进行淘宝商品数据的挖掘,第二个是进行文本相似度匹配.好了,废话不多说,赶紧上车. 淘宝商品数据挖掘 数 ...