全球主机交流论坛

标题: 通过CLOUDFLARE屏蔽国家代码。 [打印本页]

作者: a276229381    时间: 2016-11-6 22:27
标题: 通过CLOUDFLARE屏蔽国家代码。
本帖最后由 a276229381 于 2016-11-7 02:36 编辑

非常感谢牛人 @DeepSkyFire   问题已经解决。。我在网上搜了半年了。。没有解决办法。希望给后来的人有帮助。

作者: 平安北京    时间: 2016-11-6 22:29
CN=404
us=404

作者: 62900015    时间: 2016-11-6 22:40
cloudflare升$200可破,直接设置即可。
作者: 空气    时间: 2016-11-6 22:49
http://nginxlibrary.com/using-cloudflare-for-country-blocking/
作者: a276229381    时间: 2016-11-6 22:49
62900015 发表于 2016-11-6 22:40
cloudflare升$200可破,直接设置即可。

。。。。要升级到专业版才行 就是价格面谈那个。。。  几百个IP 至于开那么高嘛。

明显不划算。也开不起。。。通过国家代码 既便宜 又简单。  你会弄吗

我修改了www/wdlinux/nginx/conf/vhost/www.XXX.com.conf  这个里面的CONF文件。。但是无效。

刷新了之后 国内IP依然可以访问。。


作者: a276229381    时间: 2016-11-6 22:53
空气 发表于 2016-11-6 22:49
http://nginxlibrary.com/using-cloudflare-for-country-blocking/

我就是按照这个方法设置的。。conf文件。。。但是不行的。。。还是可以访问。。国内IP。 请问是哪里错了?

难道是NGINX  MAP模块 没有安装?
作者: 62900015    时间: 2016-11-6 22:59
a276229381 发表于 2016-11-6 22:49
。。。。要升级到专业版才行 就是价格面谈那个。。。  几百个IP 至于开那么高嘛。

明显不划算。也开不起 ...

我去重新看了下,IP/Country Block功能pro就可以了,那个是$20,你本地不知道CF的HTTP头有没有IP的国家代码,如果有那你可以在源上面搞,如果没有那就只能在CDN做了。

你试试4楼的方法啊。
作者: a276229381    时间: 2016-11-6 23:02
我是WDCP  我修改的  www/wdlinux/nginx/conf/vhost/www.123.com.conf


配置文件如下:

server {
        listen       80;
        root /www/web/123_com/public_html;
        server_name 123.com;
        index  index.html index.php index.htm;
        error_page  400 /errpage/400.html;
        error_page  403 /errpage/403.html;
        error_page  404 /errpage/4041.html;
        error_page  503 /errpage/503.html;
        location ~ \.php$ {
                proxy_pass http://127.0.0.1:88;
                include naproxy.conf;
        }
        location ~ /\.ht {
                deny  all;
        }
        location / {
                try_files $uri @apache;
        }
        location @apache {
                 proxy_pass http://127.0.0.1:88;
                 include naproxy.conf;
        }  

     map $http_cf_ipcountry $allow {
        default yes;
        CN no;
        MX no;
        NO no;
}

     if ($allow = no) {
    return 403;
}



   
}


        
        
        
        
        
        
        
        
        
        
        
        
        
        
        请问为什么国内IP 还是可以访问呢?
作者: a276229381    时间: 2016-11-6 23:06
62900015 发表于 2016-11-6 22:59
我去重新看了下,IP/Country Block功能pro就可以了,那个是$20,你本地不知道CF的HTTP头有没有IP的国家代 ...

我用的就是$20的。。目前。。。没有的。。我发了TK问了的。。只能验证码。不能屏蔽。没用。

4楼的方法,我下面也贴出来了。不行。还是可以访问。。求大神看看我哪里出问题了。找了好久的资料。


我看到很多CF的网站都能屏蔽中国的IP  用的这个办法。
作者: ruxiu    时间: 2016-11-6 23:47
本帖最后由 ruxiu 于 2016-11-6 23:49 编辑
62900015 发表于 2016-11-6 22:40
cloudflare升$200可破,直接设置即可。


https://www.cloudflare.com/plans/pro/#compare-features

只有最高挡的版本才有
五千美金一个月
官方页面说的很清楚

https://support.cloudflare.com/hc/en-us/articles/200170326-How-much-does-the-Enterprise-Plan-cost-
作者: gaoji.me    时间: 2016-11-6 23:55
用DNS解析屏蔽算么
作者: ANYMOZ    时间: 2016-11-7 00:01
javascript 的比较好用

[script type="text/javascript"]
$(document).ready(function () {
jQuery.ajax({
url: 'http://freegeoip.net/json/',
type: 'POST',
dataType: 'jsonp',
success: function (location) {
if (location.country_code == '国家代码比如VN') {
window.top.location.href = '自定义禁止页面';
}
}
});
});
[/script]

作者: a276229381    时间: 2016-11-7 00:24
ANYMOZ 发表于 2016-11-7 00:01
javascript 的比较好用

[script type="text/javascript"]

这个是放在NGINX的配置文件吗?还是在HTML页面调用这个JS?
作者: a276229381    时间: 2016-11-7 00:47
ANYMOZ 发表于 2016-11-7 00:01
javascript 的比较好用

[script type="text/javascript"]

哦。。。谢谢。。有什么办法不让他访问吗  或者禁止。。这个方法网页是可以打开的。
作者: guyusoftware    时间: 2016-11-7 00:53
本帖最后由 guyusoftware 于 2016-11-7 00:55 编辑
a276229381 发表于 2016-11-6 23:02
我是WDCP  我修改的  www/wdlinux/nginx/conf/vhost/www.123.com.conf


Note: You must retrieve the IP Geolocation information from the CF-IPCountry HTTP header.
文章裡的是 HTTP_CF_IPCOUNTRY
你在用教學的時候 也得看看是否一樣啊.............


現在:
(, 下载次数: 0)
以前:
(, 下载次数: 0)
作者: a276229381    时间: 2016-11-7 01:14
guyusoftware 发表于 2016-11-7 00:53
Note: You must retrieve the IP Geolocation information from the CF-IPCountry HTTP header.
文章裡的 ...

我把    map $http_cf_ipcountry $allow {   改为 cf_ipcountry  一样屏蔽不了哇。。大神
  
作者: 62900015    时间: 2016-11-7 01:16
https://support.cloudflare.com/hc/en-us/articles/200170986-How-does-CloudFlare-handle-HTTP-Request-headers-

  1. Fourth Exception: CF-IPCountry

  2. This header holds the country code of the originating visitor, it is a two character value that will have the Country code, if the country code is unknown, it will be "XX".

  3. "Cf-Ipcountry: US"
复制代码

作者: DeepSkyFire    时间: 2016-11-7 01:19
本帖最后由 DeepSkyFire 于 2016-11-7 01:41 编辑
a276229381 发表于 2016-11-6 23:02
我是WDCP  我修改的  www/wdlinux/nginx/conf/vhost/www.123.com.conf




        if ($http_cf-ipcountry ~* (CN|KP|VN|JP)){
        return 403;
        }

你就别再问了,我之前已经给你过一个确定能用的PHP代码,你自己不用也不会去搜。所以你就别再问我这代码加哪里去了。我能做的就只能做到这了。拜拜。
作者: a276229381    时间: 2016-11-7 01:50
DeepSkyFire 发表于 2016-11-7 01:19
if ($http_cf-ipcountry ~* (CN|KP|VN|JP)){
        return 403;
        }

虽然不好意思。。但是我还是想问一下。。
server {
        listen       80;
        root /www/web/123_com/public_html;
        server_name 123.com;
        index  index.html index.php index.htm;
        error_page  400 /errpage/400.html;
        error_page  403 /errpage/403.html;
        error_page  404 /errpage/4041.html;
        error_page  503 /errpage/503.html;
        location ~ \.php$ {
                proxy_pass http://127.0.0.1:88;
                include naproxy.conf;
        }
        location ~ /\.ht {
                deny  all;
        }
        location / {
                try_files $uri @apache;
        }
        location @apache {
                 proxy_pass http://127.0.0.1:88;
                 include naproxy.conf;
        }  

if ($HTTP_CF-IPCountry ~* (CN|KP|VN|JP)){
        return 403;
        }   
      
         
}


加上去之后。。还是可以访问网站 根本无效啊。。你说的PHP代码 我测试过了 也搜了相关资料。快几个月了。没结果。。我肯定是搜了教程的。
作者: a276229381    时间: 2016-11-7 01:54
DeepSkyFire 发表于 2016-11-7 01:19
if ($http_cf-ipcountry ~* (CN|KP|VN|JP)){
        return 403;
        }

是不是因为我用WDCP的关系。。

error_page  404 /errpage/4041.html;

我修改错误404指向到4041.html 但是他依然用原来的404.html  我修改之后重启过服务器了。还是不生效。
作者: DeepSkyFire    时间: 2016-11-7 02:02
a276229381 发表于 2016-11-7 01:50
虽然不好意思。。但是我还是想问一下。。
server {
        listen       80;

正則式出問題了,抱歉。
if ($http_cf_ipcountry = HK){
        return 403;
        }

以上代碼親自測試能正確使用。需要屏蔽多個國家可以自己去研究下正則式。

作者: fs8908336    时间: 2016-11-7 10:34
哈哈哈哈哈,围观255狂人
作者: 椰子    时间: 2016-11-7 10:37
255观光团
作者: zhaoxi    时间: 2016-11-7 14:36
本帖最后由 zhaoxi 于 2016-11-7 14:41 编辑

nginx屏蔽ip 适用于挂了cdn的,楼下是防火,不挂cdn的

首先想到要屏蔽中国IP就会是把中国IP库加入Nginx配置文件中,然后WEB服务器对比IP来达到屏蔽。

在Nginx中加deny IP;
批量可以建立一个ip.conf的文件然后include ip.conf;
1
2
       
在Nginx中加deny IP;
批量可以建立一个ip.conf的文件然后include ip.conf;

其次是通过IPtable要禁止中国IP段来达到屏蔽的目的。
以下是Iptable的Sh脚本:

#!/bin/bash
# Block traffic from a specific country
# written by vpsee.com

COUNTRY = “cn”
IPTABLES = /sbin/iptables
EGREP = /bin/egrep

if [ "$(id -u)" != "0" ]; then
echo “you must be root” 1>&2
exit 1
fi

resetrules() {
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
}

resetrules

for c in $COUNTRY
do
country_file = $c.zone

IPS = $($EGREP -v “^#|^$” $country_file)
for ip in $IPS
do
echo “blocking $ip”
$IPTABLES -A INPUT -s $ip -j DROP
done
done

exit 0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
       
#!/bin/bash
# Block traffic from a specific country
# written by vpsee.com

COUNTRY = “cn”
IPTABLES = /sbin/iptables
EGREP = /bin/egrep

if [ "$(id -u)" != "0" ]; then
echo “you must be root” 1>&2
exit 1
fi

resetrules() {
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
}

resetrules

for c in $COUNTRY
do
country_file = $c.zone

IPS = $($EGREP -v “^#|^$” $country_file)
for ip in $IPS
do
echo “blocking $ip”
$IPTABLES -A INPUT -s $ip -j DROP
done
done

exit 0

今天在网上又看到了一种更绝的屏蔽之法:国内有个免费解析的服务商DNSPOD,我们就是利用其独特的解析方式,进行最有效的DNS屏蔽。国内的网络不外乎联通(原联通)、电信、教育网等几种访问模式,恰好,DNSPOD提供了这3种解析模式。首先,我们添加一个默认的解析地址,这里填的是8.8.8.8(请自行对照是您网站的正确IP地址),然后我们依次添加选择3种不同线路的错误IP地址,比如 127.0.0.1,这样来自于国内的访问几乎被彻底的解析到错误的IP地址,也就是可以被另类的屏蔽掉了。

最后介绍一种利用浏览器屏蔽之法:

<script type="text/javascript">
if (navigator.language)
var language = navigator.language;
else
var language = navigator.browserLanguage;
if(language.indexOf('zh') > -1)document.location.href = 'nddbc.html';
</script>
1
2
3
4
5
6
7
       
<script type="text/javascript">
if (navigator.language)
var language = navigator.language;
else
var language = navigator.browserLanguage;
if(language.indexOf('zh') > -1)document.location.href = 'nddbc.html';
</script>


作者: zhaoxi    时间: 2016-11-7 14:38
转自 http://www.ttlsa.com/web/iptables-geoip-filtration-barrier-source-ip/  

有些时候,某些国家的IP一直在对服务器进行登录尝试或攻击等等,需要先将可疑IP分析出来,再用iptables来封掉它。延后又耗时费力。现在可以用xtables-addons,对来源IP进行阻挡。

1. 前提条件

iptables >= 1.4.5

kernel-devel >= 3.7

2.  安装依赖包
# yum install gcc gcc-c++ make automake unzip zip xz kernel-devel-`uname -r` iptables-devel <a  title="perl"target="_blank">perl</a>-Text-CSV_XS
1
       
# yum install gcc gcc-c++ make automake unzip zip xz kernel-devel-`uname -r` iptables-devel perl-Text-CSV_XS

3.  安装xtables-addons
# wget http://sourceforge.net/projects/xtables-addons/files/Xtables-addons/2.3/xtables-addons-2.3.tar.xz/download
# xz -d xtables-addons-2.3.tar.xz
# tar xvf xtables-addons-2.3.tar
# cd xtables-addons-2.3
# ./configure
# make
# make install
1
2
3
4
5
6
7
       
# wget http://sourceforge.net/projects/xtables-addons/files/Xtables-addons/2.3/xtables-addons-2.3.tar.xz/download
# xz -d xtables-addons-2.3.tar.xz
# tar xvf xtables-addons-2.3.tar
# cd xtables-addons-2.3
# ./configure
# make
# make install

4. geoip相关套件
# cd geoip
# ./xt_geoip_dl
# ./xt_geoip_build GeoIPCountryWhois.csv
# mkdir -p /usr/share/xt_geoip/
# cp -rp {BE,LE} /usr/share/xt_geoip/
1
2
3
4
5
       
# cd geoip
# ./xt_geoip_dl
# ./xt_geoip_build GeoIPCountryWhois.csv
# mkdir -p /usr/share/xt_geoip/
# cp -rp {BE,LE} /usr/share/xt_geoip/

5. 编写iptables规则。如拒绝台湾地区IP
# iptables -I INPUT -m geoip --src-cc TW -j DROP
1
       
# iptables -I INPUT -m geoip --src-cc TW -j DROP
作者: zhaoxi    时间: 2016-11-7 14:43
本帖最后由 zhaoxi 于 2016-11-7 14:47 编辑

cloudflare  管理页面封ip的话,  支持屏蔽国家代码 要交200,支持自定义屏蔽少量ip段的不用交,支持多的ip段的话要交20
作者: 今晚我是你的    时间: 2016-11-7 14:45
来看看255
作者: njav    时间: 2016-11-7 20:39
不知何時又255了
作者: 乌鸦    时间: 2016-11-7 20:48
这个按照国家识别,NGINX+GEOIP,可以简单解决的.
甚至可以多开条件,各种混杂.
作者: opelnic    时间: 2016-11-7 20:54
传说中的255狂人。




欢迎光临 全球主机交流论坛 (https://loc.442266.xyz/) Powered by Discuz! X3.4