苏泽湛 发表于 2017-12-23 16:51:42

nginx 配置禁用ip地址访问

  做过面向公网WEB运维的苦逼们肯定见识过各种恶意扫描、拉取、注入等图谋不轨行为吧?对于直接对外的WEB服务器,我们可以直接通过 iptables 、 Nginx 的deny指令或者是程序来ban掉这些恶意请求。
  iptables 需要root权限配置
  下面介绍使用nginx 来配置ip禁用
  首选需要我们熟悉nginx 的deny指令
  allow
  
语法:   allow address | CIDR | unix: | all;
  
默认值:   —
  
配置段:   http, server, location, limit_except
  允许某个ip或者一个ip段访问.如果指定unix:,那将允许socket的访问.注意:unix在1.5.1中新加入的功能,如果你的版本比这个低,请不要使用这个方法。
  deny
  
语法:   deny address | CIDR | unix: | all;
  
默认值:   —
  
配置段:   http, server, location, limit_except
  禁止某个ip或者一个ip段访问.如果指定unix:,那将禁止socket的访问.注意:unix在1.5.1中新加入的功能,如果你的版本比这个低,请不要使用这个方法。

allow、deny实例
  location / {
  
deny192.168.1.1;
  
allow 192.168.1.0/24;
  
allow 10.1.1.0/16;
  
allow 2001:0db8::/32;
  
denyall;
  
}
  假如我们分析我们的网站被某个固定ip访问
  219.143.33.50
  219.143.33.52
  219.143.33.54
  只需要一下两部搞定
  1:配置需要屏蔽的ip的配置文件
  下面说明假定nginx的目录在/usr/local/nginx/conf
  首先要建一个封ip的配置文件blockips.conf,然后vi blockips.conf编辑此文件,在文件中输入要封的ip。
  deny219.143.33.50;
  deny192.168.1.110;
  2:引入 ip配置文件,然后reload nginx
  然后保存此文件,并且打开nginx.conf文件,在http配置节内添加下面一行配置:
  

include blockips.conf;  

  保存nginx.conf文件,然后测试现在的nginx配置文件是否是合法的:
  

/usr/local/nginx/sbin/nginx -t  

  如果配置没有问题,就会输出:
  

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok  
configuration file /usr/local/nginx/conf/nginx.conf test is successful
  

  如果配置有问题就需要检查下哪儿有语法问题,如果没有问题,需要执行下面命令,让nginx重新载入配置文件。
  

/usr/local/nginx/sbin/nginx -s>  

  总结:后续再添加需要封的ip只需要收到的添加ip到 blockips.conf然后reload nginx 即可
  

1:  /usr/local/nginx/conf/blockips.conf添加ip
  2:

  /usr/local/nginx/sbin/nginx -s>  

  以上是我个人总结的收到添加封ip 的简单方式
  后续我会更新 自动扫描日志并添加ip到blockips.conf配置文件的 然后reload nginx 的脚步敬请期待
  文档摘自以下帖子:
  http://www.ttlsa.com/linux/nginx-modules-ngx_http_access_module/
  http://outofmemory.cn/code-snippet/3393/nginx-deny-ip-or-deny-network-subnets

back_to_basics 发表于 2017-12-23 17:52:55

多谢楼主分享
页: [1]
查看完整版本: nginx 配置禁用ip地址访问