一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何通過Nginx實(shí)現(xiàn)禁止國外IP訪問網(wǎng)站

jf_TEuU2tls ? 來源:頭條號(hào)運(yùn)維小弟 ? 2023-12-01 11:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

大家好,這里是浩道Linux,主要給大家分享Linux、Python網(wǎng)絡(luò)通信、網(wǎng)絡(luò)安全等相關(guān)的IT知識(shí)平臺(tái)。

最近不少小伙伴反饋?zhàn)约壕S護(hù)的項(xiàng)目中,經(jīng)常在后臺(tái)可以看到來自國外IP的攻擊,令人頭疼。今天浩道跟大家分享如何通過Nginx來實(shí)現(xiàn)禁止國外IP訪問網(wǎng)站,確保你網(wǎng)站免遭國外IP攻擊了!

如果你對(duì)nginx相關(guān)知識(shí)感興趣,可以看看這篇,可以確保你快速掌握其功能與應(yīng)用場景!

想要實(shí)現(xiàn)這個(gè)功能有很多方法,下面我就來介紹基于 NGINX 的 ngx_http_geoip2 模塊 來禁止國外 IP 訪問網(wǎng)站

一、安裝 geoip2 擴(kuò)展依賴

[root@fxkj~]#yuminstalllibmaxminddb-devel-y

二、下載 ngx_http_geoip2_module 模塊

[root@fxkjtmp]#gitclonehttps://github.com/leev/ngx_http_geoip2_module.git
[rotmp]#

三、解壓模塊到指定路徑

我這里解壓到/usr/local 目錄下

[root@fxkjtmp]#mvngx_http_geoip2_module//usr/local/
[root@fxkjlocal]#llngx_http_geoip2_module/
total60
-rw-r--r--1rootroot1199Aug1317:20config
-rw-r--r--1rootroot1311Aug1317:20LICENSE
-rw-r--r--1rootroot23525Aug1317:20ngx_http_geoip2_module.c
-rw-r--r--1rootroot21029Aug1317:20ngx_stream_geoip2_module.c
-rw-r--r--1rootroot3640Aug1317:20README.md

四、安裝 nginx 模塊

首先說明下環(huán)境,我的 nginx 版本是 1.16 , 在網(wǎng)上查了下 安裝 ngx_http_geoip2 模塊至少需要 1.18 版本及以上,因此此次安裝我是 升級(jí) nginx1.18,添加 ngx_http_geoip2 模塊。

下載 nginx 1.18 版本

[root@fxkj~]#yuminstalllibmaxminddb-devel-y

解壓 nginx1.18 軟件包并 升級(jí)為 nginx1.18 ,添加 ngx_http_geoip2 模塊

需要注意:

1、升級(jí) nginx, 添加 nginx 模塊 只需要 編譯 然后 make 不需要 make instll 不然線上的 nginx 會(huì)被新版本 nginx 完完整整的替換掉

2、編譯前 需要看下 nginx 當(dāng)前安裝了哪些模塊

[root@fxkjtmp]#/usr/local/nginx/sbin/nginx-V

nginxversion:nginx/1.16.0

builtbygcc4.8.520150623(RedHat4.8.5-39)(GCC)

builtwithOpenSSL1.0.2k-fips26Jan2017

TLSSNIsupportenabled

configurearguments:–with-http_stub_status_module–prefix=/usr/local/nginx–user=nginx–group=nginx–with-http_ssl_module–with-stream

編譯安裝

[root@fxkjtmp]#tar-xfnginx-1.18.0.tar.gz
[root@fxkjtmp]#cdnginx-1.18.0/
[root@fxkjnginx-1.18.0]#./configure--with-http_stub_status_module
--prefix=/usr/local/nginx
--user=nginx--group=nginx--with-http_ssl_module--with-stream
--add-module=/usr/local/ngx_http_geoip2_module
[root@fxkjnginx-1.18.0]#make
[root@fxkjnginx-1.18.0]#cp/usr/loca/nginx/sbin/nginx/usr/loca/nginx/sbin/nginx1.16#備份
[root@fxkjnginx-1.18.0]#cpobjs/nginx/usr/local/nginx/sbin/#用新的去覆蓋舊的
[root@fxkjnginx-1.18.0]#pkillnginx#殺死nginx
[root@fxkjnginx-1.18.0]#/usr/local/nginx/sbin/nginx#再次啟動(dòng)Nginx

查看 nginx 版本 以及安裝的模塊

[root@fxkjnginx-1.18.0]#/usr/local/nginx/sbin/nginx-V

nginxversion:nginx/1.18.0

builtbygcc4.8.520150623(RedHat4.8.5-39)(GCC)

builtwithOpenSSL1.0.2k-fips26Jan2017

TLSSNIsupportenabled

configurearguments:–with-http_stub_status_module–prefix=/usr/local/nginx–user=nginx–group=nginx–with-http_ssl_module–with-stream–add-module=/usr/local/ngx_http_geoip2_module

五、下載最新的 IP 地址數(shù)據(jù)庫文件

模塊安裝成功后,還要在 Nginx 里指定數(shù)據(jù)庫,在安裝運(yùn)行庫時(shí)默認(rèn)安裝了兩個(gè),位于 /usr/share/GeoIP/ 目錄下,一個(gè)只有 IPv4,一個(gè)包含 IPv4 和 IPv6:

登錄 www.maxmind.com 網(wǎng)址,創(chuàng)建賬戶 下載最新的庫文件(賬戶創(chuàng)建就不演示了)

點(diǎn)擊左側(cè) ,Download Files

0bdd08ee-8fdc-11ee-939d-92fbcf53809c.png

選擇 GeoLite2 Country ,點(diǎn)擊 Download GZIP 下載即可

0beed3ee-8fdc-11ee-939d-92fbcf53809c.png

上傳到 /usr/share/GeoIP/ 下并解壓

[root@fxkjlocal]#cd/usr/share/GeoIP/
[root@fxkjGeoIP]#ll
total69612
lrwxrwxrwx.1rootroot17Mar72019GeoIP.dat->GeoIP-initial.dat
-rw-r--r--.1rootroot1242574Oct302018GeoIP-initial.dat
lrwxrwxrwx.1rootroot19Mar72019GeoIPv6.dat->GeoIPv6-initial.dat
-rw-r--r--.1rootroot2322773Oct302018GeoIPv6-initial.dat
-rw-r--r--1rootroot3981623Aug1202:37GeoLite2-Country.mmdb

六、配置 nginx 配置文件

修改前 先備份配置文件

[root@fxkj ~]#cp/usr/local/nginx/conf/nginx.conf/usr/local/nginx/conf/nginx.conf-bak
[root@fxkj ~]#vim/usr/local/nginx/conf/nginx.conf

在 http 中添加 幾行,定義數(shù)據(jù)庫文件位置

geoip2/usr/share/GeoIP/GeoLite2-City.mmdb{
auto_reload5m;
$geoip2_data_country_codecountryiso_code;
}
map$geoip2_data_country_code$allowed_country{
defaultyes;
CNno;
}
0bfcf550-8fdc-11ee-939d-92fbcf53809c.png

在 server 中的 location 下 添加 條件

如果滿足 IP 是國外 IP 就 執(zhí)行下面的 return 動(dòng)作,我這里定義了 3 種, 注釋了其中兩個(gè)。

當(dāng)訪問 IP 是國外 IP ,直接返回 404

if($allowed_country=yes){
#returnhttps://www.baidu.com;
#return/home/japan;
return404;
}

修改完畢后, 檢測下配置文件,重新加載下 nginx

[root@fxkj~]#/usr/local/nginx/sbin/nginx-t
nginx:theconfigurationfile/usr/local/nginx/conf/nginx.confsyntaxisok
nginx:configurationfile/usr/local/nginx/conf/nginx.conftestissuccessful
[roo@fxkj~]#/usr/local/nginx/sbin/nginx-sreload

7、模擬測試驗(yàn)證

使用海外節(jié)點(diǎn)的服務(wù)器去訪問網(wǎng)站

這里我的 IP 是 來自于韓國

0c075bc6-8fdc-11ee-939d-92fbcf53809c.png

可以看到訪問網(wǎng)站報(bào)錯(cuò) 404 Not Found

0c27edc8-8fdc-11ee-939d-92fbcf53809c.png

我們?cè)賮砜聪?nginx 的訪問日志

“13.125.1.194––[14/Aug/2020:16:15:51+0800]“GET/favicon.icoHTTP/1.1”404548“https://www.fxkjnj.com/”“Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/84.0.4147.125Safari/537.36”
0c356110-8fdc-11ee-939d-92fbcf53809c.png

至此,我們通過 Nginx 來實(shí)現(xiàn)禁止國外 IP 訪問網(wǎng)站 就結(jié)束了!

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11511

    瀏覽量

    213843
  • IP
    IP
    +關(guān)注

    關(guān)注

    5

    文章

    1805

    瀏覽量

    152609
  • 網(wǎng)站
    +關(guān)注

    關(guān)注

    2

    文章

    259

    瀏覽量

    23555
  • nginx
    +關(guān)注

    關(guān)注

    0

    文章

    171

    瀏覽量

    12612

原文標(biāo)題:網(wǎng)站經(jīng)常遭受外國IP攻擊?可以通過Nginx來禁止其訪問!

文章出處:【微信號(hào):浩道linux,微信公眾號(hào):浩道linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    網(wǎng)站用戶終于解決訪問網(wǎng)站慢的問題

    成熟,提供的也不是很多.以個(gè)人的經(jīng)驗(yàn),下面給大家介紹一下雙線主機(jī)吧!雙線主機(jī)服務(wù) 雙線服務(wù)器實(shí)際是一臺(tái)服務(wù)器分別有電信和網(wǎng)通兩條線路接入,通過對(duì)用戶 IP 地址的智能解析,實(shí)現(xiàn)電信用戶訪問
    發(fā)表于 08-03 15:47

    IP屏蔽軟件作用

    、國外用戶訪問,當(dāng)然也可以只限制某個(gè)地區(qū)訪問!由于許多公司產(chǎn)品相似,一些同行競爭對(duì)手缺乏原創(chuàng)精神,總是拷貝別人網(wǎng)站上一些優(yōu)秀圖片及文字發(fā)布到自己的網(wǎng)
    發(fā)表于 11-05 13:58

    如何在電腦上禁止訪問QQ空間

    今天教大家如何在電腦上不影響QQ正常使用的前提下,禁止訪問QQ空間。IE的那個(gè)設(shè)置不行,因?yàn)橐坏┑卿泀zone.qq.com網(wǎng)站,qq程序會(huì)自動(dòng)引導(dǎo)解除屏蔽,改hosts也不行,所以我們要用其他
    發(fā)表于 04-28 15:02

    如何訪問國外網(wǎng)站,包括github網(wǎng)站????

    `想***,可是網(wǎng)速會(huì)不不給力。同志們,誰有好方法去訪問米國的網(wǎng)站呢????`
    發(fā)表于 03-12 10:57

    【NanoPi NEO試用體驗(yàn)】之安裝配置Nginx環(huán)境WEB網(wǎng)站詳解

    WEB網(wǎng)站的經(jīng)典環(huán)境。首先NanoPi NEO原生就是為LINUX系統(tǒng)而開發(fā)的所以系統(tǒng)方面不用擔(dān)心。至于NGINX和PHP在WEB網(wǎng)站用戶訪問量不超過1000次并發(fā)
    發(fā)表于 10-18 12:25

    NanoPi NEO - 可靠的Nginx 網(wǎng)絡(luò)服務(wù)器

    )是為任何規(guī)模的網(wǎng)站,尤其是繁忙的網(wǎng)站有用的一些附加功能的替代PHP 的FastCGI 實(shí)現(xiàn)),安裝如下:#apt-get -y install php7.0-fpm5. 配置nginx
    發(fā)表于 06-20 15:43

    如何通過Dataworks禁止MaxCompute 子賬號(hào)跨Project訪問

    ://ram.console.aliyun.com/2、通過用戶管理創(chuàng)建RAM子賬號(hào),同時(shí)保存ak信息。3、開通RAM子賬號(hào)獨(dú)立登錄訪問權(quán)限。4、通過Dataworks項(xiàng)目管理,實(shí)現(xiàn)
    發(fā)表于 03-15 11:21

    主要學(xué)習(xí)下nginx的安裝配置

    處理。因?yàn)橛辛酥虚g件,使得大型網(wǎng)站在規(guī)劃有了更好的層次性,維護(hù)上更加方便。也可以實(shí)現(xiàn)負(fù)載均衡、安全防護(hù)等。Nginx是一個(gè)開源高性能、可靠的HTTP中間件、代理服務(wù),在目前企業(yè)中得到了很大的利用。今天
    發(fā)表于 10-19 14:12

    蘋果禁止iPhone黑客訪問App Store應(yīng)用商店

    蘋果禁止iPhone黑客訪問App Store應(yīng)用商店  據(jù)國外媒體報(bào)道,蘋果近日對(duì)曾經(jīng)入侵iPhone手機(jī)操作系統(tǒng)的黑客采取了較為嚴(yán)歷的打擊措
    發(fā)表于 02-22 09:34 ?638次閱讀

    爬蟲實(shí)現(xiàn)目標(biāo)網(wǎng)站驗(yàn)證碼登陸

    ,包裝后再POST給服務(wù)器,實(shí)現(xiàn)驗(yàn)證,這里還涉及到了Cookie和代理ip,cookie都是隨機(jī)生成的。這里主要講下代理ip的使用,因?yàn)椴还?b class='flag-5'>網(wǎng)站是以什么方式進(jìn)行驗(yàn)證,
    發(fā)表于 12-11 15:27 ?2612次閱讀

    配置Nginx訪問日志

    每當(dāng)處理客戶請(qǐng)求時(shí),Nginx都會(huì)在訪問日志中生成一個(gè)新記錄。每個(gè)事件記錄都包含一個(gè)時(shí)間戳,并包含有關(guān)客戶端和所請(qǐng)求資源的各種信息。訪問日志可以顯示訪問者的位置,
    的頭像 發(fā)表于 05-24 09:59 ?2624次閱讀

    如何通過Nginx實(shí)現(xiàn)遠(yuǎn)程調(diào)試本機(jī)代碼

    HTTPS 就不需要改代碼了,只需修改 host 將后端測試環(huán)境域名指向 nginx 服務(wù)的 IP 即可,而且可以適用于其它的 HTTP 服務(wù)開發(fā)調(diào)試。
    發(fā)表于 03-03 15:26 ?565次閱讀

    多個(gè)相同IP設(shè)備通過網(wǎng)段隔離器實(shí)現(xiàn)不同IP訪問映射

    )來解決這一問題,它允許多個(gè)設(shè)備在內(nèi)部網(wǎng)絡(luò)上共享單個(gè)公共IP地址,并實(shí)現(xiàn)外網(wǎng)的跨網(wǎng)段訪問。 網(wǎng)段隔離器可以通過WAN和LAN不同防火墻區(qū)域進(jìn)行網(wǎng)段隔離;
    的頭像 發(fā)表于 11-15 17:21 ?1284次閱讀
    多個(gè)相同<b class='flag-5'>IP</b>設(shè)備<b class='flag-5'>通過</b>網(wǎng)段隔離器<b class='flag-5'>實(shí)現(xiàn)</b>不同<b class='flag-5'>IP</b>的<b class='flag-5'>訪問</b>映射

    國外IP代理地址:提升網(wǎng)絡(luò)訪問體驗(yàn)

    國外IP代理地址通過提供位于國外的代理服務(wù)器,為用戶訪問國外網(wǎng)站和服務(wù)提供了便利,從而能夠顯著提
    的頭像 發(fā)表于 10-31 07:04 ?873次閱讀

    海外IP代理池:提升網(wǎng)絡(luò)訪問速度與效率的利器

    海外IP代理池?zé)o疑是提升網(wǎng)絡(luò)訪問速度與效率的利器,它通過提供位于海外的代理服務(wù)器,為用戶訪問國外網(wǎng)站和服務(wù)提供了便利。
    的頭像 發(fā)表于 11-14 07:29 ?828次閱讀