apache(nginx)下控制请求频率防IP恶意请求



概述: 很多时候根据分析日志发现,web日志中很多不正常的请求,这些请求都没有真是请求到任何业务,考虑到流量和压力因素,可以对这下请求进行限制,以达到拒绝这写IP的恶意请求, 以下环境是apache下的限制,其它web中间件同样也适用,只是加入的方式不同,对应调整即可。 下面来具体看如下简单实现方式:

脚本内容:


#!/bin/bash
 
_ccdir= /opt/cc
_tdipfile=ip_`date +%Y%m%d`.txt
_aclog=/var/log/nginx/access_passport.log
lasttime=$(`date +%H`":"`date +%M -d '1 min ago'`)
lasttime2=$(`date +%H`":"`date +%M -d '2 min ago'`)
lasttime3=$(`date +%H`":"`date +%M -d '3 min ago'`)
lasttime4=$(`date +%H`":"`date +%M -d '4 min ago'`)
lasttime5=$(`date +%H`":"`date +%M -d '5 min ago'`)
 
 
if [ ! -d $_ccdir ]; then
mkdir -p $_ccdir
fi
 
if [ ! -f $_ccdir/$_tdipfile ]; then
touch $_ccdir/$_tdipfile
fi

 
for i in `tail -n 10000 /var/log/apache2/access_passport.log | grep $lasttime |grep -i -v -E "110.75|61.174.152|61.174.153|60.112.117|101.164.178|101.229.110.41|121.199.17.65|60.112.117.216|180.157.10.3|158.33.11.228"|awk '{print $1}'|sort|uniq -c|sort -rn|awk '{if ($1>60){print $2}}'`
 
#grep -i -v -E "google|yahoo|baidu|msnbot|FeedSky|sogou"     // 此处我们可以增加加白名单做不限制请求,比如搜索蜘蛛、管理IP、测试IP等。
 
do

 

echo $i  >> $_ccdir/$_tdipfile

#策略一
#echo "Deny from  $i;" >> /etc/apache2/conf.d/denyip_`date +%Y%m%d%H%M`.cfg     // 此处要注意,生效前提是apache配置文件增加对应的include conf.d/*.cfg 。
#find /etc/apache2/conf.d/ -mmin +180 -name "*.cfg" -exec rm -rf {} ;     //应用这两条规则,实现3小时自动解除限制。
 
done


#策略二
cat $_ccdir/$_tdipfile | awk '{print "Deny from  "$1";"}'  > /etc/apache2/conf.d/denyip_`date +%Y%m%d`.cfg    // 此处要注意,生效前提是apache配置文件增加对应的include conf.d/*.cfg 。

 

find /etc/apache2/conf.d/*.cfg -mtime +10 -exec rm -rf {} \;       // 避免文件过多,定时清理.cfg配置文件。

#####for system apache#####/usr/sbin/apachectl -t && /etc/init.d/apache2 reload



 
总结说明: 将以上内容放入系统定时任务或者监控策略即可,上述策略一和策略二建议开启一个,策略二将覆盖策略一。 另外,需修改路径为自己的apache路径和文件、日志路径。  
注:lasttime可以定义多个,来取出几分钟之内的计算请求 。







 


本文标签: nginx apache 防IP 恶意请求 请求频率

内容版权声明:【蓝色网居】部分资源来源于网络,如有侵犯您的所有权,请随时告知我们,我们将立即删除!感谢配合!

转载请注明出处:https://blog.ff56.cn/web/1659178714.html


【手机扫一扫查看文本】

手机扫一扫 手机扫一扫查看文本 手机扫一扫





自定义403 $server_name 404自定义 nginx插件 案例分析 参数重写 编译安装 referer限制 接口请求 large body 后台管理 nginx增加 cookie 域名 模糊匹配 定义404跳转 apache 请求频率 错误页 $host 运算 防IP恶意 四层 语言选择 或(or) 日志分析 try_files 白名单 防IP geoIP模块