如何在使用cloudflare时阻止国家/地区服务器?

时间:2016-01-01 21:07:59

标签: nginx server cloudflare

我试图使用以下代码阻止国家/地区nginx.conf:

   geoip_country /usr/share/GeoIP/GeoIP.dat;
    map $geoip_country_code $allow_visit {
       default yes;
      RU no;
   }

但我正在使用CLoudFLare / cdn service.so当我阻止一些国家。有时我无法登录我的系统.Coz cloudflare服务器可能在我的块国家。所以我应该从块国家列表中删除cloudflare ips。但我怎么能去做? 任何建议?
我在我的服务器上使用ubuntu 14.04 / nginx ..

*

  

现在我受到了攻击。你们都知道,网络战这样的我   应该快速解决这个问题。

*

提前致谢。

2 个答案:

答案 0 :(得分:7)

CloudFlare允许您阻止某些国家/地区访问CloudFlare级别的网站。为此:

  1. 在CloudFlare控制面板中选择您的域
  2. 选择“防火墙”标签
  3. 在“IP防火墙”标签上,您可以输入IP,IP范围或国家/地区,然后点击屏蔽。
  4. 在任何攻击甚至命中您的服务器之前,这将阻止该国家/地区进入CloudFlare级别的所有网站。

    如果您因任何原因需要使用Nginx解决方案阻止它而不是CloudFlare的防火墙,您可以查看在控制面板的“网络”选项卡下启用“IP地理位置”。这会将标题“HTTP_CF_IPCOUNTRY”添加到所有请求中,并在标题中包含国家/地区代码(即美国,英国,RU)。

    如果您需要根据某些IP阻止任何请求,或者自己执行IP查找。然后,您应该使用默认的CloudFlare标头,该标头包含每个包含名为“CF-Connecting-IP”的客户端IP的请求。 对于将来的信息,CloudFlare在这里写了一篇关于它们如何处理标题的好article

答案 1 :(得分:2)

如果您使用的是免费套餐(cloudflare),则无法获取访客的IP地址,因此请使用匹配IP< - >的geoip_country。国家不工作。

您应该在CloudFlare中启用IP Geolocation,然后配置nginx以阅读该国家/地区代码。

同时,请确保您的源服务器仅接受来自CloudFlare IP range的连接。

有关如何配置nginx的详细信息:http://nginxlibrary.com/using-cloudflare-for-country-blocking/