赞
踩
有人恶意攻击我们服务器,可以根据nginx打印出来的访问日志ip,筛选出来访问量过大的ip,给他设置黑名单,设置防火墙,配置ipset,写一个脚本。
新建block_ip.sh
- #!/bin/bash
- #nginx的日志文件
- logfile=/var/log/nginx
- last_minutes=1
- #过滤出单位之间内的日志并统计最高ip数 一分钟超过两百条的过滤出来
-
- ip=`awk '{print $1}' $logfile/access.log |sort |uniq -c|sort -n | awk '{if($1>200)print $2}'`
- # 单位时间[1分钟]内单ip访问次数超过200次的ip通过ipset封锁
- echo "start-----------------------------------" >> /data/shell/log/blockip.log
- for line in $ip
- do
- echo "$line" >> /data/app/shell/log/blockip.log
- #设置黑名单 blacklist
- /usr/sbin/ipset add -exist blacklist $line
- #echo $line
- done
- echo "" > $logfile/access.log
- echo "" > $logfile/error.log
- echo "stop-----------------------------------" >> /data/shell/log/blockip.log

下面是配置黑名单,白名单的。 因为有些合作方需要回调我们接口。所以还需要加白名单,不能把人家禁止了,所以需要新增白名单
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。