网站首页 > 技术教程 正文
概述: 很多时候根据分析日志发现,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可以定义多个,来取出几分钟之内的计算请求 。
猜你喜欢
- 2024-10-12 打造自动化DOS攻击防御系统:一键屏蔽恶意IP
- 2024-10-12 禁止使用搜索引擎怎么设置(30秒教会你5个小技巧)
- 2024-10-12 限制IP某个时间段内访问的次数(限制ip怎么解决)
- 2024-10-12 怎么封攻击的IP地址(ip封禁是最简单和有效的防守方式)
- 2024-10-12 Nginx配置限流(nginx 限制流量)
- 2024-10-12 利用openresty+lua+redis 实现封杀频繁恶意访问IP地址
- 2024-10-12 如何用 Nginx 代理 MySQL 连接,并限制可访问 IP?
- 2024-10-12 企业网站维护教程:网站如何禁止国外IP访问?
- 2024-10-12 Linux下WEB中间件禁止IP访问配置方法
- 2024-10-12 Nginx IP屏蔽方法详解:从access模块到limit_req_zone指令
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)