nginx下防IP恶意扫描访问


概述: 最近发现总有一些默认奇妙的请求进来,同IP进来的请求不停的在发送,根据分析,这些请求都没有真是请求到任何业务,考虑到流量和压力因素,决定对这下请求进行限制,以达到拒绝这写IP的恶意请求, 以下环境是nginx下的限制,其它web中间件同样也适用,只是加入的方式不同,对应调整即可。 具体看如下:

#!/bin/bash
_ccdir= /opt/cc
_tdipfile=ip_`date +%Y%m%d`.txt
_aclog=/var/log/nginx/access_passport.log
 

if [ ! -d $_ccdir ]; then
mkdir -p $_ccdir
fi

if [ ! -f $_ccdir/$_tdipfile ]; then
touch $_ccdir/$_tdipfile
fi


for i in `tail -n 10000 $_aclog | grep -i -v -E "110.75|101.225.10.41|101.50.41.141|121.195.7.65|60.12.157.216" | awk '{print $1}' | sort | uniq -c |sort -rn | awk '{if ($1>80){print $2}}'`

#grep -i -v -E "google|yahoo|baidu|msnbot|FeedSky|sogou"     // 此处我们可以增加加白名单做不限制请求,比如搜索蜘蛛、管理IP、测试IP等。

do
echo $i  >> $_ccdir/$_tdipfile


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

done


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


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

/usr/local/nginx/sbin/nginx -t && /usr/local/nginx/sbin/nginx -s reload



总结说明: 将以上内容放入系统定时任务或者监控策略即可,上述策略一和策略二建议开启一个,策略二将覆盖策略一。 另外,需修改路径为自己的nginx路径和文件、日志路径。









 


本文标签: nginx 防IP恶意 扫描访问

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

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


【手机扫一扫查看文本】

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





扫描访问 ip白名单 large body 后台管理 自启动 访问控制 $host 跳转 防IP 运算 案例分析 404自定义 geoip 参数重写 nginx插件 geoIP模块 cookie 语言选择 404 nginx增加 lua apache 定义404跳转 与(and) try_files 防IP恶意 请求频率 接口请求 tcp代理 错误页