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_hash

ip_hash 是 Nginx 负载均衡中用于 会话保持(Session Persistence) 的算法,其核心原理是通过客户端 IP 地址的哈希值,将同一客户端的请求固定转发到同一台后端服务器。1...

影视网站建站租用多IP站群服务器

如果你正在规划影视网站集群,租用多IP站群服务器确实是个高效的选择。这类配置既要满足影视内容的高性能处理需求,又要兼顾SEO隔离和访问稳定性,我结合当前主流方案和行业实践,帮你整理出以下关键要点,供你...

多IP服务器建站指南

懂知足 于是快乐很简单 利用多IP服务器建站是一种提升性能、安全性或实现特定功能的常见策略。以下是关键点、实施步骤和注意事项:核心应用场景多网站/服务隔离每个网站/服务绑定独立IP,避免共享IP被封导...

Nginx通过ip进行限流,并增加白名单

通过IP进行限制limit_req_zone $binary_remote_addr zone=iplimit:20m rate=10r/s ;remote_addr,表示通过IP地址进行限流ipli...

Nginx 限流常用模块:限制并发和IP访问频率

Nginx 是我们常用的负载均衡和反向代理服务器,并发性能非常优秀。但是在并发量极大的情况下,必要限流措施还是需要的,Nginx 的有对应的模块插件可通过简单配置来完成这个功能。限制并发限制ip并发数...

Nginx伪静态限制指定IP的地区访问和获取指定地区IP地址段

1、获取指定地区IP地址段打开网址: https://www.ip2location.com/free/visitor-blocker比如我想设置日本地区的ipv4段的客户端禁止访问最后点击下载,下载...