Īstenošana
Lai gan sistēmā ir daudz veidu, kā risinājumu ieviest, šī rokasgrāmata parāda vienkāršāko veidu, kā to reģistrēt ar minimālu piepūli.
- Acīmredzot pirms šajā rokasgrāmatā norādīto darbību uzsākšanas Nginx ir jāinstalē sistēmā. Tomēr ar Nginx instalēšanu nepietiek, jo tas prasa arī geo_ip_module instalēšanu. Maxmind mēdza atbrīvot viņu datubāzi dat formātā, bet kopš kāda laika tā tika izlaista mmdb formātā. Tas liek Nginx pieprasīt jaunu geo_ip_module ar nosaukumu ngx_http_geoip2_module. Tomēr tas nav nepieciešams, jo vecā datubāze joprojām ir pietiekama. Jebkurā gadījumā, ja nginx nav instalēts, iestatiet to ar šīm divām komandām.
apt-get install nginx
- Ierakstiet šādu komandu, lai pārliecinātos, ka ir instalēts http_geoip modulis.
- Ir vairāki veidi, kā iegūt / izveidot datu bāzi, kurā ir IP adreses un to attiecīgās valsts, pilsētu nosaukumi. Instalējiet geo_ip datu bāzi ar šādām komandām. Šīs metodes izmantošana atvieglo geo_Ip datu bāzes instalēšanu sistēmā. Tomēr ideālākais veids ir lejupielādēt jaunu kopiju, jo tās tiek atjauninātas ar jaunāko informāciju. Tātad, izmantojiet vienu no trim tālāk norādītajām iespējām. Pirmais variants ir pietiekams jebkuram vidusmēra lietotājam, 2nd opcija ir iegūt jaunāko maxmind datu bāzi, trešā opcija pārveido mmdb datu bāzi par atbilstošo dat faila formātu.
Ir laiks, un tas prasa daudz resursu, un tāpēc tas nav ieteicams vājiem serveriem. Tomēr, ja joprojām ir nepieciešama atjaunināta datu bāze, izmantojiet 2. opciju. Tas ietaupa laiku un naudu faila konvertēšanā, taču drošību nevar garantēt, jo to konvertē kāds cits, nevis kāda oficiāla puse. 3. opcijai ir nepieciešami 3 pip pakotnes, setuptools, ipaddr, dcryptit. Skripta apstrādei tiek izmantots pitons 2. Pēdējā rindā zip arhīvs tiek pārveidots par .dat fails. Pat ja tas ir minēts par mmdb faila formāta pārveidošanu uz .dat, šeit tas faktiski pārvērš CSV failu uz .dat faila formāts, un tāpēc tam ir nepieciešami geoname2fips.csv fails, kas nāk kopā ar konversijas failu paketi.
1. variants
apt-get install geoip-datu bāzes libgeoip12. variants
cd / usr / share / GeoIPwget -o maxmind.dat.gz https: // bit.ly / 2Gh3gTZ
gunzip maxmind.dat.gz
3. variants
CD / mājas /mkdir geolite2legacy /
git klons https: // github.com / sherpya / geolite2legacy
apt-get install python
apt-get instalēt python-pip
PIP instalējiet iestatīšanas rīkus
PIP instalējiet
pip instalēt dcryptit
cd / usr / share /
mkdir GeoIP /
cd / usr / share / GeoIP /
wget https: // ģeolīts.maxmind.com / download / geoip / database / GeoLite2-Country-CSV.zip
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
- Konfigurējiet Nginx konfigurācijas failu šādi. Ierakstiet komandu Linux termināļa pirmajā rindā kā parasti, un pārējās rindas nokopējiet uz nginx.conf fails. Pārliecinieties, vai nosaukums ir minēts / usr / share / GeoIP / GeoIP.dat sakrīt ar dat failu, kas saglabāts mapē usr / share / GeoIP. Lai arī nākamajā piemērā tā norāda tikai vienu valsti, vairākus valstu kodus kā norādīto piemēru var norādīt ar vienu rindu katrā valsts kodā. Valstīs pieejamo valstu kodu sarakstu var atrast šajā vietā. http: // www.maxmind.com / app / iso3166.
geoip_country / usr / share / GeoIP / GeoIP.dat;
karte $ geoip_country_code $ atļauta_valsts
noklusējums jā;
LK nr;
- Atveriet noklusējuma failu, izmantojot jebkuru teksta redaktoru (priekšroka dodama nano, jo ar to ir diezgan viegli rediģēt), pēc tam pievienojiet saturu kopš 2nd rinda starp visām vietām noklusējuma faila atrašanās vietas blokā. Kods darbojas šādi: kad apmeklētājs pieprasa tīmekļa serverim, nginx ielādē viņu IP adreses un sakrīt ar tās ierakstiem, lai atrastu attiecīgo valsts kodu. Ja kartes blokā minētā valsts sakrīt, numuram tiek piešķirts nē Mainīgais $ allowed_country, tādējādi pārbaudot $ atļauts_country, ļauj manipulēt ar atbildi. Šajā ceļvedī tas neizmanto nē, un tādējādi apmeklētājam tiek liegts redzēt saturu. Ja ir vairāki domēni, piemēram, .com, .lk, vai nucuta.com vai nucuta.net pievienojiet kodu kopš 3. rindas katram “domēnam”.conf failu, kā arī. Ja nginx ir labi konfigurēts, attiecīgā domēna fails atrodas vietnēs pieejamajā mapē.
ja ($ atļauts_valsts = nē)
atgriešanās 444;
- Restartējiet nginx serveri ar šādu komandu. Pēc tam, piekļūstot tīmekļa serverim no jebkura Sri Lanka (LK) domēna, tīmekļa serveris neko neatgriež, kā redzams turpmākajos ekrānuzņēmumos. Nginx 444 neko neatspoguļo. Tā vietā šeit var izmantot arī jebkuru citu kodu, piemēram, 302, 301, 404. Ja ir norādīts 302 301, jānorāda arī URL, kas novirza apmeklētāju.
Secinājums
Apmeklētāju bloķēšana, pamatojoties uz viņu ģeogrāfisko atrašanās vietu, dažu uzņēmumu darbībai ir kritiska dažādu reģionālo noteikumu un noteikumu dēļ. Nginx apmierina šādas vajadzības ar savu geo_ip moduli. Tas izmanto maxmind datu bāzes, lai atrastu valsti pēc apmeklētāja ip adreses. Datu bāze darbojas gan ar Ipv4, gan ar ipv6. Tā kā maxmind pārtrauca savu mantoto dat datubāzes formātu, vienīgais veids, kā izmantot viņu datus, ir vai nu konvertēt jauno faila formātu dat failā vai izmantot jau pārveidotu failu, vai izmantot trešās puses moduli Nginx, lai atbalstītu mmdb faila formātu. Šeit sniegtais pitona skripts ir ideāls pārveidošanai, lai gan rezultāta redzēšana prasa kādu laiku. Maxmind garantē vairāk nekā 99% precizitāti, meklējot valsti, pamatojoties uz IP; tāpēc tas ir obligāts rīks jebkuram biznesam.