Izvajanje
Čeprav obstaja veliko načinov za izvedbo rešitve v sistemu, je v tem priročniku predstavljen najlažji način vpisa z minimalnim naporom.
- Očitno je, da je treba Nginx namestiti v sistem, preden začnete korake v tem priročniku. Namestitev Nginxa pa ni dovolj, saj zahteva tudi namestitev geo_ip_module. Maxmind je nekoč objavljal svojo bazo podatkov v formatu dat, vendar je bila pred časom izdana v formatu mmdb. Zaradi tega Nginx zahteva nov geo_ip_module, imenovan ngx_http_geoip2_module. Vendar to ni potrebno, saj stara baza podatkov dat še vedno zadostuje. Kakor koli, če nginx ni nameščen, ga nastavite z naslednjima dvema ukazoma.
apt-get namestite nginx
- Vnesite naslednji ukaz, da se prepričate, ali je nameščen modul http_geoip.
- Obstaja več načinov za pridobitev / izdelavo baze podatkov, ki vsebuje naslove IP in imena njihovih držav. Z naslednjimi ukazi namestite zbirko podatkov geo_ip. Uporaba te metode omogoča enostavno namestitev zbirke podatkov geo_Ip v sistem. Najbolj idealen način pa je prenos nove kopije, saj so posodobljene z najnovejšimi informacijami. Torej, uporabite eno od treh spodnjih možnosti. Prva možnost je dovolj za vsakega povprečnega uporabnika, 2nd možnost je pridobiti najnovejšo bazo podatkov maxmind, tretja možnost pretvori bazo podatkov mmdb v ustrezen format datoteke dat.
Potrebuje čas in vire, zato ni priporočljiv za šibke strežnike. Če pa je posodobljena baza podatkov še vedno potrebna, uporabite možnost 2. Prihrani čas in denar pri pretvorbi datoteke, vendar varnosti ni mogoče zagotoviti, ker jo pretvori nekdo drug, ne katera koli uradna stranka. Možnost 3 zahteva 3 pakete pip, setuptools, ipaddr, dcryptit. In za obdelavo skripta uporablja python 2. Zadnja vrstica pretvori zip arhiv v .dat. Čeprav se omenja pretvorba oblike datoteke mmdb v .dat, tukaj dejansko pretvori datoteko CSV v datoteko .dat in zato zahteva geoname2fips.csv, ki je priložen paketu pretvorbenih datotek.
1. možnost
apt-get namestite geoip-bazo podatkov libgeoip12. možnost
cd / usr / share / GeoIPwget -o maxmind.dat.gz https: // bit.ly / 2Gh3gTZ
gunzip maxmind.dat.gz
3. možnost
cd / doma /mkdir geolite2legacy /
klon git https: // github.com / sherpya / geolite2legacy
apt-get namestite python
apt-get namestite python-pip
pip namestite setuptools
pip namestite ipaddr
pip namestite dcryptit
cd / usr / share /
mkdir GeoIP /
cd / usr / share / GeoIP /
wget https: // geolite.maxmind.com / download / geoip / database / GeoLite2-Country-CSV.zadrgo
pyton / home / geolite2legacy / geolite2legacy.py -i / usr / share / GeoIP / GeoLite2-Country-CSV.zip -f
/ home / geolite2legacy / geoname2fips.csv -o / usr / share / GeoIP / GeoLite2-Country.dat
- Konfiguracijsko datoteko Nginx konfigurirajte na naslednji način. Vnesite ukaz v prvo vrstico v terminalu Linux kot običajno, ostale vrstice pa kopirajte v nginx.conf. Prepričajte se, da je ime omenjeno v / usr / share / GeoIP / GeoIP.dat se ujema z datoteko dat, shranjeno v mapi usr / share / GeoIP. Čeprav v naslednjem primeru določa samo eno državo, lahko kot dani primer določite več kod držav z eno vrstico na kodo države. Na tej lokaciji je na voljo seznam držav, ki je na voljo za države. http: // www.maxmind.com / app / iso3166.
geoip_country / usr / share / GeoIP / GeoIP.dat;
zemljevid $ geoip_country_code $ allowed_country
privzeto da;
LK št;
- Odprite privzeto datoteko v katerem koli urejevalniku besedil (nano je zaželen, saj je z njim zelo enostavno urejati), nato dodajte vsebino odnd vrstica do vmesnika kjer koli v bloku lokacije v privzeti datoteki. Koda deluje tako: ko obiskovalec pošlje zahtevo spletnemu strežniku, nginx poišče njihove naslove IP in se ujema s svojimi zapisi, da najde ustrezno kodo države, če se država, navedena v bloku zemljevida, ujema z ne, Spremenljivka $ allowed_country in s tem preverjanje možnosti $ allowed_country omogoča manipuliranje z odzivom. V tem priročniku uporablja ne, zato obiskovalec ne vidi vsebine. Če obstaja več domen, kot je .com, .lk ali nucuta.com ali nucuta.net dodajte kodo od vrstice 3 v vsako "domeno".tudi datoteko conf. Če je nginx dobro konfiguriran, se datoteka ustrezne domene nahaja v mapi, ki je na voljo.
če ($ dovoljena_država = ne)
vrnitev 444;
- Znova zaženite strežnik nginx z naslednjim ukazom. V nadaljevanju dostop do spletnega strežnika iz katere koli domene šrilankan (LK) povzroči, da spletni strežnik ne vrne ničesar, kot je razvidno iz naslednjih posnetkov zaslona. 444 v nginxu ne predstavlja ničesar. Namesto tega lahko tukaj uporabite tudi katero koli drugo kodo, na primer 302, 301, 404. Če je določeno 302.301, je treba navesti tudi URL za preusmeritev obiskovalca.
Zaključek
Blokiranje obiskovalcev glede na njihovo geografsko območje je ključno za delovanje nekaterih podjetij zaradi različnih regionalnih pravil in predpisov. Nginx ustreza svojim potrebam s svojim modulom geo_ip. Z bazami podatkov maxmind poišče državo po ip naslovu obiskovalca. Baza podatkov deluje tako z Ipv4 kot z ipv6. Ker je maxmind prenehal uporabljati svojo zapuščeno obliko zbirke podatkov dat, je edini način, kako uporabiti njihove podatke, pretvorba nove datoteke v datoteko dat ali uporaba že pretvorjene datoteke ali uporaba modula tretje osebe za Nginx za podporo formatu datoteke mmdb. Tu je na voljo skript python, ki je idealen za pretvorbo, čeprav traja nekaj časa, da se vidi rezultat. Maxmind zagotavlja več kot 99-odstotno natančnost pri iskanju države na podlagi IP; zato mora biti orodje za vsako podjetje.