ऐसे कई मित्र हैं जिन्होंने विदेशी व्यापार वेबसाइटें बनाई हैं जो अपनी वेबसाइटों को घरेलू आईपी द्वारा एक्सेस करने से प्रतिबंधित करना चाहते हैं। ऐसे भी कुछ मित्र हैं जिनकी वेबसाइटें संसाधनों को संग्रहीत करती हैं जिन्हें विभिन्न कारणों से विशिष्ट आईपी से अवरुद्ध करने की आवश्यकता होती है। अधिकांश स्रोत आईपी विदेश से आते हैं, और आप विदेशी आईपी को वेबसाइट तक पहुंचने से रोकना चाहते हैं।

इससे कोई फर्क नहीं पड़ता कि कारण क्या है, विशिष्ट क्षेत्रों और देशों से आईपी पहुंच को अवरुद्ध और अवरुद्ध करना अक्सर हमारे दैनिक वेबसाइट निर्माण में उपयोग किया जाता है। यदि आप PHP का उपयोग कर रहे हैं, तो अपेक्षाकृत सरल तरीका यह है कि PHP फ़ाइल में आईपी निर्धारित करने के लिए कोड जोड़ें और तुलना के लिए आईपी लाइब्रेरी का उपयोग करें। यदि आईपी प्रतिबंधित पहुंच सीमा के भीतर है, तो इसे एक्सेस जारी रखने से रोकें।

यदि वेबसाइट Nginx है, तो आप सीधे Nginx-ngx_http_geoip_module मॉड्यूल का उपयोग कर सकते हैं। यह मॉड्यूल देश, प्रांत, शहर आदि के आईपी के लिए सटीक हो सकता है, और पहुंच की सभी पहचान और अवरोधन Nginx द्वारा किया जाता है, इसलिए यह है। PHP की तुलना में अधिक संसाधन-बचत होती है लेकिन Nginx को संकलित करना अधिक परेशानी भरा है।

यदि वेबसाइट वीपीएस या स्वतंत्र सर्वर पर बनाई गई है, तो आप सीधे लिनक्स फ़ायरवॉल का उपयोग कर सकते हैं और विशिष्ट देशों और प्रांतों से आईपी एक्सेस को ब्लॉक करने के लिए iptables नियमों का उपयोग कर सकते हैं। बेशक, वर्डप्रेस उपयोगकर्ताओं को Nginx, iptables और अन्य कॉन्फ़िगरेशन समस्याओं के बारे में चिंता करने की ज़रूरत नहीं है, क्योंकि वर्डप्रेस में पहले से ही विभिन्न प्लग-इन हैं जो आईपी एक्सेस को प्रतिबंधित करते हैं।

यह आलेख विशिष्ट क्षेत्रों और देशों में वेबसाइट को अवरुद्ध करने और आईपी एक्सेस सेटिंग्स को अवरुद्ध करने के चार तरीकों को साझा करेगा: PHP कोड, Nginx मॉड्यूल, iptables फ़ायरवॉल और वर्डप्रेस प्लग-इन। यदि आप वेबसाइट निर्माण प्रक्रिया के दौरान विभिन्न दुर्भावनापूर्ण हमलों से हमेशा परेशान रहते हैं, तो आप निम्नलिखित तरीकों को आज़मा सकते हैं:

  1. निःशुल्क वीपीएस नियंत्रण कक्ष का उपयोग करने के लिए पांच सुरक्षा युक्तियाँ - हैकर्स को फायदा न उठाने दें
  2. वर्डप्रेस Nginx fastcgi_cache कैश एक्सेलेरेशन विधि को सक्षम करता है - Nginx कॉन्फ़िगरेशन उदाहरण
  3. दस क्लाउडफ्लेयर फ्री सीडीएन एक्सेलेरेशन युक्तियाँ जो आप नहीं जानते होंगे-SSLDDOSCache

PS: 25 मार्च, 2019 को अपडेट किया गया, VPS के सुरक्षा मुद्दों के संबंध में, कई मित्र VPS के SSH कॉन्फ़िगरेशन को अनदेखा कर सकते हैं। यहां सुदृढ़ीकरण रणनीतियाँ हैं: VPS होस्ट और सर्वर सुरक्षा सुरक्षा: SSH संशोधन पोर्ट , श्वेतसूची जोड़ें, केवल कुंजी लॉगिन करें।

पीएस: 19 मार्च, 2020 को अपडेट किया गया , यदि आपकी वेबसाइट हैक हो गई है, तो आप समस्या को हल करने के लिए निम्नलिखित तरीकों का उल्लेख कर सकते हैं: वेबसाइट ट्रोजन और सर्वर हैकिंग समस्या निवारण विश्लेषण - वीपीएस होस्ट और सर्वर उन्नत सुरक्षा विधियां।

1. PHP कोड विशिष्ट IP को ब्लॉक करता है

PHP कोड अपेक्षाकृत सरल है। एक विशिष्ट सीमा के भीतर आईपी को वेबसाइट तक पहुंचने से रोकने के लिए बस निम्नलिखित कोड को अपनी PHP फ़ाइल में डालें, आईपी लाइब्रेरी की सटीकता के अनुसार, यह राष्ट्रीय स्तर पर आईपी और कोड के लिए सटीक हो सकता है। प्रांतीय, नगरपालिका और अन्य स्तरों पर एक उदाहरण इस प्रकार है (इस कोड का उपयोग बीए के दौरान किया जा सकता है):

<?php
/**
 *
 * test.php(屏蔽国家IP)
 *
 */

$verification = '美国';//需要屏蔽国家的IP
function get_client_ip() { 
               $ip = $_SERVER['REMOTE_ADDR'];     
         if (isset($_SERVER['HTTP_X_REAL_FORWARDED_FOR']) && preg_match('/^([0-9]{1,3}.){3}[0-9]{1,3}$/', $_SERVER['HTTP_X_REAL_FORWARDED_FOR'])) {            
         $ip = $_SERVER['HTTP_X_REAL_FORWARDED_FOR'];       
         }          
         elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match('/^([0-9]{1,3}.){3}[0-9]{1,3}$/', $_SERVER['HTTP_X_FORWARDED_FOR'])) {             
         $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];       
         }          
         elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {           
         $ip = $_SERVER['HTTP_CLIENT_IP'];       
         }          
         return $ip;    
         }
$ip = get_client_ip();//获取访客IP
$antecedents = $_SERVER['HTTP_REFERER'];//访客来路地址
$result = file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$ip);//IP数据库来自淘宝。
$address = json_decode($result,true);
//判断访客是否属于美国,是否来自百度,是否来自谷歌
if($address['data']['country'] == $verification && strpos($antecedents, 'baidu') === false && strpos($antecedents, 'google') === false){
        sleep(10);//设置一个10秒等待。
        header('HTTP/1.1 503 Service Temporarily Unavailable');
        header('Status: 503 Service Temporarily Unavailable');
        header('Retry-After: 3600000');
        exit;
}


/****** 如果需要阻止某一个省份的IP访问,使用以下代码*********/


<?php
/**
 *
 * test.php(屏蔽地方IP)
 *
 */

$verification = '江西省';//需要屏蔽省份的IP
function get_client_ip() { 
               $ip = $_SERVER['REMOTE_ADDR'];     
         if (isset($_SERVER['HTTP_X_REAL_FORWARDED_FOR']) && preg_match('/^([0-9]{1,3}.){3}[0-9]{1,3}$/', $_SERVER['HTTP_X_REAL_FORWARDED_FOR'])) {            
         $ip = $_SERVER['HTTP_X_REAL_FORWARDED_FOR'];       
         }          
         elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match('/^([0-9]{1,3}.){3}[0-9]{1,3}$/', $_SERVER['HTTP_X_FORWARDED_FOR'])) {             
         $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];       
         }          
         elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {           
         $ip = $_SERVER['HTTP_CLIENT_IP'];       
         }          
         return $ip;    
         }
$ip = get_client_ip();//获取访客IP
$antecedents = $_SERVER['HTTP_REFERER'];//访客来路地址
$result = file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$ip);//IP数据库来自淘宝。
$address = json_decode($result,true);
//判断访客是否属于江西省,是否来自百度,是否来自谷歌
if($address['data']['region'] == $verification && strpos($antecedents, 'baidu') === false && strpos($antecedents, 'google') === false){
  sleep(99999999);//设置一个999999秒的等待。
  Header("HTTP/1.1 204 No Content");
  exit;
}

2. Nginx-ngx_http_geoip_module मॉड्यूल

आईपी ​​लाइब्रेरी डाउनलोड:

  1. HTTPS://Dev.马Xiumin's.com/Geo IP/legacy/geohlit/

2.1  विशिष्ट देश के आईपी से पहुंच पर प्रतिबंध लगाएं

ngx_http_geoip_module मॉड्यूल Nginx को विज़िटर के IP के आधार पर विभिन्न आवश्यकताओं को लागू करने की अनुमति देता है। यहां हम विशिष्ट IP पतों को वेबसाइट तक पहुंचने से रोकने के लिए ngx_http_geoip_module मॉड्यूल का उपयोग करते हैं।

पहला है ngx_http_geoip_module को Nginx में संकलित करना। यदि आप पगोडा बीटी पैनल का उपयोग कर रहे हैं, तो आप निम्न आदेश का उपयोग कर सकते हैं:

#安装geoip库
yum -y install epel-release
yum -y install geoip-devel


#先查看一下本机的Nginx配置情况
[root@cs ~]# nginx -V
nginx version: nginx/1.14.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 
built with OpenSSL 1.0.2l  25 May 2017
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/www/server/nginx --with-openssl=/www/server/nginx/src/openssl --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --add-module=/www/server/nginx/src/nginx-http-concat --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-pcre=pcre-8.40 --with-ld-opt=-ljemalloc

#开始下载Nginx,这里用的是1.15.1,你也可以下载其它的版本
wget http://nginx.org/download/nginx-1.15.1.tar.gz
tar -xzvf nginx-1.15.1.tar.gz
cd nginx-1.15.1

#下面的命令只是在上面的Nginx -v得到的配置详情后加上了--with-http_geoip_module,目的是为了保持原来的配置不变同时又增加新的模块

./configure --user=www --group=www --prefix=/www/server/nginx --with-openssl=/www/server/nginx/src/openssl --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --add-module=/www/server/nginx/src/nginx-http-concat --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-pcre=pcre-8.40 --with-ld-opt=-ljemalloc --with-http_geoip_module

#只编译不安装
make

यदि आप एलएनएमपी स्क्रिप्ट या वनइनस्टैक का उपयोग कर रहे हैं, तो आप यहां देख सकते हैं: वनइनस्टैक। Nginx-ngx_http_geoip_module मॉड्यूल सक्षम करें। सबसे पहले Nginx को अक्षम करें।

फिर नया Nginx बदलें और देखें कि जियोआईपी मॉड्यूल लोड हो गया है या नहीं। आदेश इस प्रकार है:

mv /www/server/nginx/sbin/nginx /www/server/nginx/sbin/nginx-lala.im
cp objs/nginx /www/server/nginx/sbin/nginx
ldd /www/server/nginx/sbin/nginx

अपने पैगोडा पैनल पर जाएं, Nginx पर क्लिक करें, कॉन्फ़िगरेशन फ़ाइल को संशोधित करें और निम्नलिखित कोड जोड़ें:

geoip_country /usr/share/GeoIP/GeoIP.dat;

ऑपरेशन इस प्रकार है:

अब Nginx प्रारंभ करें, आप वेबसाइट के Nginx कॉन्फ़िगरेशन में नियम जोड़ सकते हैं, उदाहरण के लिए, आप एक निर्दिष्ट त्रुटि या किसी विशिष्ट देश से किसी अन्य पृष्ठ या वेबसाइट पर सीधे IP एक्सेस लौटा सकते हैं।

#返回403 502 404等错误
location / {
default_type text/html;
charset utf-8;
if ($geoip_country_code = CN) {
return 403;
}
}
#导向另一个网站目录
location / {
default_type text/html;
charset utf-8;
if ($geoip_country_code = CN) {
root /home/www/wzfou.com-cn/;
}
}

यह वेबसाइट कॉन्फ़िगरेशन जोड़ने के लिए है.

अंतिम प्रभाव इस प्रकार है:

2.2  केवल निर्दिष्ट देशों से आईपी एक्सेस की अनुमति दें

विधि उपरोक्त के समान है। पहले Nginx मुख्य कॉन्फ़िगरेशन में IP लाइब्रेरी पेश करें, और फिर वह कोड जोड़ें जो किसी भी राष्ट्रीय IP को ब्लॉक करता है लेकिन वेबसाइट के Nginx कॉन्फ़िगरेशन में निर्दिष्ट राष्ट्रीय IP की अनुमति देता है। उदाहरण इस प्रकार है:

 # 引入IP库
     
  geoip_country /usr/share/GeoIP/GeoIP.dat;
  geoip_city /usr/share/GeoIP/GeoLiteCity.dat;


 map $geoip_country_code $allowed_country {
                default no;
                CN yes;
        }
    
# 在配置中阻止IP
        if ($allowed_country = no) {
                return 403;
        }

3. iptables फ़ायरवॉल

सबसे पहले, iptables उपयोग और ipset से स्वयं को परिचित करें:

1. iptables में कई तालिकाएँ होती हैं, प्रत्येक तालिका श्रृंखलाओं से बनी होती है। डिफ़ॉल्ट फ़िल्टर तालिका है, सबसे अधिक उपयोग की जाने वाली फ़िल्टर तालिका है, और दूसरी अधिक सामान्यतः उपयोग की जाने वाली नेट तालिका है। आम तौर पर, आईपी ब्लॉकिंग का मतलब फिल्टर टेबल की इनपुट श्रृंखला में नियम जोड़ना है।

2. नियमों का मिलान करते समय, उन्हें नियम सूची के आरंभ से अंत तक एक-एक करके मिलान करें।

3. ipset इस O(n) ऑपरेशन को O(1) में बदलने के लिए एक विधि प्रदान करता है: IP को एक सेट में संसाधित करने के लिए रखें और इस सेट के लिए एक iptables नियम सेट करें। आईपीटेबल की तरह, आईपी सेट लिनक्स कर्नेल में कुछ हैं, और आईपीसेट कमांड उन्हें संचालित करने के लिए एक उपकरण है।

iptables केवल निर्दिष्ट आईपी को मशीन के निर्दिष्ट पोर्ट तक पहुंचने की अनुमति देता है। कमांड इस प्रकार है:

1、在tcp协议中,禁止所有的ip访问本机的3306端口。

iptables -I INPUT -p tcp –dport 3306 -j DROP

2、允许123.456.789访问本机的3306端口

iptables -I INPUT -s 123.456.789 -p tcp –dport 3306 -j ACCEPT

以此类推…………………………………

封掉一个IP段:
iptables -I INPUT -s 121.0.0.0/8 -j DROP

以上命令的顺序不能错

然后保存iptables
# service iptables save
重启防火墙
#service iptables restart

iptables नियमों को कैसे हटाएं, साफ़ करें, बंद करें और सहेजें:

#CentOS 7请停止firewalld并安装iptables-services
systemctl stop firewalld
systemctl mask firewalld

#安装 iptables-services
yum install iptables-services

################
保存 iptables 规则
service iptables save

重启 iptables
service iptables restart

#################
执行清除命令 iptables -F时可能会断开与服务器的连接,如果想清空的话,先执行
/sbin/iptables -P INPUT ACCEPT
然后执行
/sbin/iptables -F

如果关闭防火墙,执行 
/etc/init.d/iptables stop   
或者是 services iptables stop  

#######################
iptables 规则若重启后消失,请用以下方法
步骤1:备份
iptables-save > /etc/iptables.up.rules.bak

步骤2:删除规则
vim /etc/sysconfig/iptables
或 vim /etc/iptables.up.rules

手动删除即可。

步骤3:导入新规则

iptables-restore < /etc/sysconfig/iptables

最后,重启VPS就可以生效了。

3.1  एक क्लिक से निर्दिष्ट देशों से आईपी एक्सेस को ब्लॉक करें

  1. HTTPS://GitHub.com/III i III1/block-IPS-from-countries

सिद्धांत यह है कि निर्दिष्ट देश के आईपी सेगमेंट को डाउनलोड करें, फिर आईपी सेगमेंट को iptables नियमों में जोड़ें, और सीधे निम्नलिखित कमांड निष्पादित करें:

wget https://raw.githubusercontent.com/iiiiiii1/Block-IPs-from-countries/master/block-ips.sh
chmod +x block-ips.sh
./block-ips.sh

फिर आपसे यह चुनने के लिए कहा जाएगा कि आईपी को ब्लॉक करना है या आईपी को अनब्लॉक करना है।

आईपी ​​को ब्लॉक करने का चयन करने के बाद, आपसे देश कोड दर्ज करने के लिए कहा जाएगा: http://www.ipdeny.com/ipblocks। उदाहरण के लिए, संयुक्त राज्य अमेरिका के लिए, आईपी दर्ज करना सुनिश्चित करें पूरे अमेरिका के लिए प्रतिबंध.

यदि आप इसे अनब्लॉक करना चाहते हैं, तो कमांड को दोबारा निष्पादित करें और 2 चुनें।

3.2  एक क्लिक से केवल निर्दिष्ट देश के आईपी एक्सेस की अनुमति दें

ऊपर हमने एक विशिष्ट देश से आईपी एक्सेस को एक-क्लिक से अवरुद्ध करना लागू किया है, लेकिन कई लोग अपनी वेबसाइट को केवल एक निश्चित देश के आईपी द्वारा एक्सेस करने की अनुमति देना चाहते हैं, और इस मामले में, हम निम्नलिखित का उपयोग कर सकते हैं आज्ञा:

wget https://do.wzfou.net/wzfou/block-any.sh
chmod +x block-ips.sh
./block-ips.sh

उपरोक्त कोड केवल घरेलू आईपी एक्सेस की अनुमति देता है, और नियमों को इसमें लिखेगा: /etc/rc.d/rc.local। यदि आप iptables नियमों को समायोजित करते हैं, तो हर बार iptables नियमों को फिर से आयात किया जाएगा संपादित करने की आवश्यकता है: /etc/rc.d/rc.local संबंधित स्टार्टअप सेल्फ-रनिंग कोड को हटा दें। block-any.sh कोड इस प्रकार है:

#! /bin/bash
#判断是否具有root权限
root_need() {
    if [[ $EUID -ne 0 ]]; then
        echo "Error:This script must be run as root!" 1>&2
        exit 1
    fi
}

#检查系统分支及版本(主要是:分支->>版本>>决定命令格式)
check_release() {
    if uname -a | grep el7  ; then
        release="centos7"
    elif uname -a | grep el6 ; then
        release="centos6"
        yum install ipset -y
    elif cat /etc/issue |grep -i ubuntu ; then
        release="ubuntu"
        apt install ipset -y
    fi
}

#安装必要的软件(wget),并下载中国IP网段文件(最后将局域网地址也放进去)
get_china_ip() {
  #安装必要的软件(wget)
  rpm --help >/dev/null 2>&1 && rpm -qa |grep wget >/dev/null 2>&1 ||yum install -y wget ipset >/dev/null 2>&1 
  dpkg --help >/dev/null 2>&1 && dpkg -l |grep wget >/dev/null 2>&1 ||apt-get install wget ipset -y >/dev/null 2>&1

  #该文件由IPIP维护更新,大约一月一次更新(也可以用我放在国内的存储的版本,2018-9-8日版)
  [ -f china_ip_list.txt ] && mv china_ip_list.txt china_ip_list.txt.old
  wget https://github.com/17mon/china_ip_list/blob/master/china_ip_list.txt
  cat china_ip_list.txt |grep 'js-file-line">' |awk -F'js-file-line">' '{print $2}' |awk -F'<' '{print $1}' >> china_ip.txt
  rm -rf china_ip_list.txt
  #wget https://qiniu.wsfnk.com/china_ip.txt

  #放行局域网地址
  echo "192.168.0.0/18" >> china_ip.txt
  echo "10.0.0.0/8" >> china_ip.txt
  echo "172.16.0.0/12" >> china_ip.txt
}

#只允许国内IP访问
ipset_only_china() {
  echo "ipset create whitelist-china hash:net hashsize 10000 maxelem 1000000" > /etc/ip-black.sh
  for i in $( cat china_ip.txt )
  do
        	echo "ipset add whitelist-china $i" >> /etc/ip-black.sh
  done
  echo "iptables -I INPUT -m set --match-set whitelist-china src -j ACCEPT" >> /etc/ip-black.sh
  #拒绝非国内和内网地址发起的tcp连接请求(tcp syn 包)(注意,只是屏蔽了入向的tcp syn包,该主机主动访问国外资源不用影响)
  echo "iptables  -A INPUT -p tcp --syn -m connlimit --connlimit-above 0 -j DROP" >> /etc/ip-black.sh
  #拒绝非国内和内网发起的ping探测(不影响本机ping外部主机)
  echo "iptables  -A INPUT -p icmp -m icmp --icmp-type 8 -j DROP" >> /etc/ip-black.sh
  #echo "iptables -A INPUT -j DROP" >> /etc/ip-black.sh
  rm -rf china_ip.txt
}

run_setup() {
  chmod +x /etc/rc.local
  sh /etc/ip-black.sh
  rm -rf /etc/ip-black.sh
  #下面这句主要是兼容centos6不能使用"-f"参数
  ipset save whitelist-china -f /etc/ipset.conf || ipset save whitelist-china > /etc/ipset.conf
  [ $release = centos7 ] && echo "ipset restore -f /etc/ipset.conf" >> /etc/rc.local
  [ $release = centos6 ] && echo "ipset restore < /etc/ipset.conf" >> /etc/rc.local
  echo "iptables -I INPUT -m set --match-set whitelist-china src -j ACCEPT" >> /etc/rc.local
  echo "iptables  -A INPUT -p tcp --syn -m connlimit --connlimit-above 0 -j DROP" >> /etc/rc.local
  echo "iptables  -A INPUT -p icmp -m icmp --icmp-type 8 -j DROP" >> /etc/rc.local
  #echo "iptables -A INPUT -j DROP" >> /etc/rc.local
}

main() {
  check_release
  get_china_ip
  ipset_only_china

case "$release" in
centos6)
  run_setup
  ;;
centos7)
  chmod +x /etc/rc.d/rc.local
  run_setup
  ;;
ubuntu)
  sed -i '/exit 0/d' /etc/rc.local
  run_setup
  echo "exit 0" >> /etc/rc.local
  ;;
esac
}
main

यदि आप कुछ आईपी को बाहर करना चाहते हैं और इन आईपी को अपवाद के रूप में एक्सेस करना जारी रखना चाहते हैं, तो आप iptables नियमों को जोड़ने के लिए iptables -I कमांड का उपयोग कर सकते हैं, या iptables नियमों को मैन्युअल रूप से जोड़ने के लिए सावधान रहें, क्योंकि का क्रम iptables का निष्पादन ऊपर से नीचे की ओर है।

3.3  मैन्युअल रूप से केवल विशिष्ट देशों से आईपी एक्सेस की अनुमति देने के लिए सेट किया गया है

मैन्युअल सेटिंग उपरोक्त वन-क्लिक सेटिंग विधि के समान है। बस निम्नलिखित आदेशों का एक-एक करके पालन करें।

1、安装ipset

#Debian/Ubuntu系统
apt-get -y install ipset

#CentOS系统
yum -y install ipset
CentOS 7还需要关闭firewall防火墙:

systemctl stop firewalld.service
systemctl disable firewalld.service

2、清空之前的规则

#防止设置不生效,建议清空下之前的防火墙规则
iptables -P INPUT ACCEPT
iptables -F

3、创建新规则

#创建一个名为cnip的规则
ipset -N cnip hash:net
#下载国家IP段,这里以中国为例,其它国家IP下载参考:http://www.ipdeny.com/ipblocks/
wget -P . http://www.ipdeny.com/ipblocks/data/countries/cn.zone
#将IP段添加到cnip规则中
for i in $(cat /root/cn.zone ); do ipset -A cnip $i; done

4、设置IP段白名单

#放行IP段
iptables -A INPUT -p tcp -m set --match-set cnip src -j ACCEPT
#关掉所有端口
iptables -P INPUT DROP
这时候就只有指定国家的IP能访问服务器了。

#如果你在国内,网站不允许被国内人访问,建议别关所有端口,这样你的S-S-H会上不去,我们可以只关闭80/443端口。

#关闭指定端口,比如80/443
iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 443 -j DROP
这时候其他国家的IP是无法访问你服务器的80/443端口,等于无法访问你的网站,其它端口还是可以访问的。

5、删除规则

#将参数里的-A改成-D就是删除规则了,如
iptables -D INPUT -p tcp -m set --match-set cnip src -j ACCEPT
iptables -D INPUT -p tcp --dport 443 -j DROP

4. वर्डप्रेस विशिष्ट आईपी को ब्लॉक करता है

वर्डप्रेस प्लगइन

  1. HTTPS://WordPress.org/plugins/word वॉल्यूम/
  2. HTTPS://WordPress.org/plugins/all-in-one-मुझे डर है-सुरक्षा-安定-फ़ायरवॉल/
  3. HTTPS://WordPress.org/plugins/IP-geoh-block/

उपरोक्त तीन वर्डप्रेस सुरक्षा प्लग-इन में आईपी एक्सेस को ब्लॉक करने की सेटिंग्स हैं, जिन्हें आईपी के स्रोत, देश, सीमा और डोमेन नाम के आधार पर ब्लॉक किया जा सकता है। (बड़ा करने के लिए क्लिक करें)

आईपी ​​जियो ब्लॉक थोड़ा अधिक पेशेवर है, विशिष्ट आईपी पते को ब्लॉक करने के अलावा, यह अलग-अलग आईपी पते को अलग-अलग पेजों तक पहुंचने से रोक भी सकता है। (बड़ा करने के लिए क्लिक करें)

5. सारांश

किसी वेबसाइट के लिए किसी विशिष्ट देश के आईपी को ब्लॉक करने का सबसे आसान तरीका इस लेख में पेश किया गया PHP कोड है, जो ताओबाओ आईपी लाइब्रेरी को संदर्भित करता है, और यह प्रांत और शहर के लिए भी सटीक हो सकता है इसे अपनी आवश्यकताओं के अनुसार समायोजित कर सकते हैं। नुकसान यह है कि यह HTTPS का समर्थन नहीं करता है और केवल PHP में ही चल सकता है।

वास्तव में, सबसे अधिक इस्तेमाल किया जाने वाला आईपीटेबल्स है, जो लिनक्स फ़ायरवॉल के रास्ते में सीधे आईपी एक्सेस को ब्लॉक करता है। यह संसाधनों का उपभोग नहीं करता है और इसे साफ और पूरी तरह से ब्लॉक करता है। Nginx के जियो आईपी मॉड्यूल में अनुप्रयोगों की एक विस्तृत श्रृंखला है, Nginx के साथ मिलकर, आप विभिन्न IP उपयोगकर्ताओं के लिए अलग-अलग सामग्री प्रदर्शित कर सकते हैं।

उत्तर छोड़ दें