快捷搜索:   服务器  PHP  安全  IIS  linux 安全

Nginx设置拒绝或允许指定ip访问的方法 Nginx只允许来自CDN的IP访问的方法

现在越来越多饱受攻击的小伙伴用上了我们的cloudflare合作伙伴提供的CDN系统 https://cdn.bnxb.com 

但是对于一些小伙伴来说,在用CDN之前,IP就已经泄露了,又没法更换服务器IP,因此攻击者就可以直接打击他的IP地址,避过了CDN的防御,对于这种情况其实是有解决办法的,因为很多人用的是NGINX,这里就教下大家,怎么设置nginx,让Nginx只接受来自CDN的指定IP链接,其他IP通通抛弃,禁止访问。

看下面的案例:

nginx拒绝或允许指定IP访问是通过HTTP访问控制模块(HTTP Access)来实现的,因此需要看看你的NGINX有没有编译这个模块,宝塔的nginx默认带这个模块.
访问控制规则,是按照顺序进行检查并放行或者屏蔽,按规则的顺序一条条匹配下去。 

location / {
  deny    192.168.1.1;
  allow   192.168.1.0/24;
  allow   10.1.1.0/16;
  deny    all;
}

上面的例子中仅允许192.168.1.0/24和10.1.1.0/16网络段访问这个location字段,但192.168.1.1是个例外,它在第一条因此允许它访问。
注意规则的匹配顺序,如果你使用过apache你可能会认为你可以随意控制规则的顺序并且他们能够正常的工作,但实际上不行。

下面的这个例子将拒绝掉所有的连接:

location / {
  #这里将永远输出403错误。
  deny all;
  #下面的指令不会被启用,因为到达的连接在第一条时候就已经全部被拒绝
  deny    192.168.1.1;
  allow   192.168.1.0/24;
  allow   10.1.1.0/1

}

那我们要放行哪些来自CF的CDN的IP呢,可以看这里https://cdn.bnxb.com/ips.php 将里面的IP全部列在全面allow 然后最后再加一条deny all;

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论