nginx禁用国外ip

新买了阿里云服务器,自己搭了一个博客系统,今天早上发现cpu访问率100%,一下子没反应过来,可能是被当作肉鸡的,重启后在access.log发现大量的国外ip,为了排查,直接先把国外的ip先禁止网络再说,开搞

方法一:

  拿到所有国外ip段,更新到nginx中来做限制

# 用脚本每周更新国外IP库,利用nginx deny功能直接拒绝这些IP地址。

#先到/usr/local/tools下新建black_nginx.sh

#添加到crontab
0 0 * * 5 /bin/bash /usr/local/tools/black_nginx.sh

#编写black_nginx.sh如下
#!/bin/bash

rm -f legacy-apnic-latest black_`date +%F`.conf && wget http://ftp.apnic.net/apnic/stats/apnic/legacy-apnic-latest

awk -F '|' '{if(NR>2)printf("%s %s/%d%s\n","deny",$4,24,";")}' legacy-apnic-latest > black_`date +%F`.conf && rm -f /usr/local/nginx/conf/black.conf && ln -s $PWD/black_`date +%F`.conf /usr/local/nginx/conf/black.conf && /etc/init.d/nginx reload

在nginx.conf中加入black.conf

 预先执行脚本

sh /usr/local/tools/black_nginx.sh

重启nginx

nginx -s reload

 

 

 

 

参考:

  cnblogs.com/guoyabin/p/14263732.html

posted @ 2021-08-16 15:11  RainBol  阅读(796)  评论(0编辑  收藏  举报
Live2D