Mod_GeoIP je modul Apache, ktorý je možné použiť na získanie geografickej polohy súboru IP adresu návštevníka do Apache webový server. Tento modul vám umožňuje určiť návštevníka krajina, Organizácia, a umiestnenie. Je to obzvlášť užitočné pre Geo zobrazovanie reklám, Cieľový obsah, Boj proti spamu, Detekcia podvodov, Presmerovanie/blokovanie návštevníci na základe svojej krajiny a oveľa viac.
Modul GeoIP umožňuje správcom systému presmerovať alebo blokovať webový prenos podľa geografickej polohy klienta. Geografická poloha sa zisťuje prostredníctvom IP adresy klienta.
Mod_GeoIP má dve rôzne verzie, jedna je zadarmo a ďalší je Zaplatené a používa MaxMind GeoIP / GeoCity databáz.
Ak sa chcete pozrieť na ďalšie rozdiely medzi súbormi zadarmo a Zaplatené verziu, navštívte Maxmind.com.
Tento článok vysvetľuje, ako nastaviť a nainštalovať súbor Mod_GeoIP modul pre Apache v RHEL a CentOS pomocou EPEL úložisko s Správca balíkov YUM užitočnosť.
Predpokladáme, že beh už máte RHEL a CentOS systém s fungujúcim LAMPA (Linux, Apache, MySQL, a PHP) nastaviť. Ak nie, prečítajte si naše články, v ktorých sme vám ukázali inštaláciu oboch operačných systémov LAMPA.
Predvolene mod_Geoip nie je k dispozícii pod RHEL / CentOS oficiálne úložisko, takže musíme nainštalovať a povoliť tretiu stranu EPEL Úložisko.
# yum nainštalovať epel-release. # yum nainštalovať https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [Na RHEL 8]
Akonáhle to urobíte EPEL úložisko povolené vo vašom systéme, môžete ho jednoducho nainštalovať mod_geoip spustením nasledujúceho príkazu s ich balíkmi závislostí.
# yum install mod_geoip GeoIP GeoIP-devel GeoIP-data zlib-devel.
Je dobré stiahnuť si najnovšie Geo City a Databáza krajín zostať aktualizovaný.
# cd/usr/share/GeoIP/ # mv GeoIP.dat GeoIP.dat_org. # wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz. # wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz. # gunzip GeoLite2-Country.tar.gz. # gunzip GeoLite2-City.tar.gz.
Po inštalácii modulu otvorte a upravte hlavný konfiguračný súbor modulu pomocou textového editora príkazového riadka, ako je napr vi, a aktivujte modul na celom serveri, ako je to znázornené na nižšie uvedenom úryvku.
# vi /etc/httpd/conf.d/geoip.conf.
Nastavte riadok GeoIPEnable od Vypnuté do Zapnuté. Nezabudnite tiež pridať absolútnu cestu k databázovému súboru GeoIP.
GeoIPPovoliť Zapnuté. GeoIPDBFile /usr/share/GeoIP/GeoIP.dat MemoryCache.
Reštartujte súbor Apache služba, aby odrážala zmeny.
# systemctl reštart httpd. ALEBO. # služba httpd reštart
Nedoporučuje sa však zapínať modul GeoIP na celom serveri. Modul GeoIP by ste mali povoliť iba v alebo bloky, v ktorých by ste skutočne vykonávali presmerovanie dopravy alebo blok.
Na testovanie mod_geoip modul funguje správne s Apache, musíme vytvoriť súbor PHP súbor s názvom testgeoip.php pod Apache koreňový adresár (napr. /var/www/html).
# vi /var/www/html/testgeoip.php.
Vložte doň nasledujúci kus kódu php.
Aká je moja IP adresa - určte alebo získajte moju IP adresu php if (getenv (HTTP_X_FORWARDED_FOR)) {$ pipaddress = getenv (HTTP_X_FORWARDED_FOR); $ ipaddress = getenv (REMOTE_ADDR); echo „Vaša IP adresa proxy je:“. $ pipaddress. "(cez $ ipaddress)"; } else {$ ipaddress = getenv (REMOTE_ADDR); echo "Vaša IP adresa je: $ ipaddress"; } $ country = getenv (GEOIP_COUNTRY_NAME); $ country_code = getenv (GEOIP_COUNTRY_CODE); echo "
Vaša krajina: $ country ($ country_code)";
Teraz skúste súbor zavolať pomocou webového prehliadača (napr. http://localhost/testgeoip.php). Dostanete svoje IP adresa a Krajina podrobnosti.
Databáza GeoIP sa aktualizuje každý mesiac. Je preto veľmi dôležité udržiavať databázu GeoIP aktuálnu. Na stiahnutie najnovšej verzie databázy použite nasledujúci príkaz.
# cd/usr/share/GeoIP/ # mv GeoIP.dat GeoIP.dat_org. # wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz. # wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz. # gunzip GeoLite2-Country.tar.gz. # gunzip GeoLite2-City.tar.gz.
Napísali sme malý shell skript, ktorý automaticky každý mesiac automaticky stiahne najnovšiu verziu databázy GeoIP. Stačí umiestniť niektorý z nasledujúcich skriptov pod /etc/cron.monthly.
# Automatická aktualizácia databázy GeoIP. #!/bin/sh. cd/usr/share/GeoIP. mv GeoIP.dat GeoIP.dat_org. wget -q http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz. gzip -d -f GeoLite2 -Country.tar.gz
#!/bin/sh GEOIP_MIRROR = " http://geolite.maxmind.com/download/geoip/database" GEOIPDIR =/usr/share/GeoIP. TMPDIR = DATABASES = "GeoLiteCity GeoLiteCountry/GeoIP asnum/GeoIPASNum GeoIPv6" ak [-d "$ {GEOIPDIR}"]; potom cd $ GEOIPDIR if [-n "$ {DATABASES}"]; potom TMPDIR = $ (mktemp -d geoipupdate. XXXXXXXXXX) echo „Aktualizácia databáz GeoIP ...“ pre db v $ DATABASES; do fname = $ (basename $ db) wget --no -verbose -t 3 -T 60 "$ {GEOIP_MIRROR}/$ {db} .dat.gz" -O "$ {TMPDIR}/$ {fname} .dat .gz "gunzip -fdc" $ {TMPDIR}/$ {fname} .dat.gz "> "$ {TMPDIR}/$ {fname} .dat" mv "$ {TMPDIR}/$ {fname} .dat" "$ {GEOIPDIR}/$ {fname} .dat" chmod 0644 "$ {GEOIPDIR}/$ { fname} .dat "hotovo [-d" $ {TMPDIR} "] && rm -rf $ TMPDIR fi. fi
Nasledujúci príklad kódu presmeruje používateľov na základe kódu krajiny, na ktorý sme nastavili AS (Ázii). Týmto spôsobom môžete presmerovať všetkých používateľov na základe ich krajského kódu.
GeoIPPovoliť Zapnuté. GeoIPDBFile /usr/share/GeoIP/GeoIP.dat # Presmerujte jednu krajinu. RewriteEngine zapnutý. RewriteCond %{ENV: GEOIP_COUNTRY_CODE} ^AS$ RewriteRule ^(.*) $https://www.tecmint.com1 dolár [R, L]
Tento príklad zablokuje používateľov na základe kódu krajiny, ktorý nastaví GeoIP. Nasledujúci príklad zablokuje používateľov z AS (Ázii) a USA (Spojené štáty) krajinách.
GeoIPPovoliť Zapnuté. GeoIPDBFile /usr/share/GeoIP/GeoIP.dat SetEnvIf GEOIP_COUNTRY_CODE AS BlockCountry. SetEnvIf GEOIP_COUNTRY_CODE USA BlockCountry. #... sem umiestnite viac krajín Odmietnuť z env = BlockCountry
Tento nižšie uvedený príklad umožní iba používateľom z nižšie uvedených krajín.
GeoIPPovoliť Zapnuté. GeoIPDBFile /usr/share/GeoIP/GeoIP.dat SetEnvIf GEOIP_COUNTRY_CODE AS AllowCountry. SetEnvIf GEOIP_COUNTRY_CODE USA AllowCountry. #... sem umiestnite viac krajín Odmietnuť od všetkých. Allow from env = AllowCountry
Pre viac informácií o mod_geoip a jeho využitie nájdete na http://www.maxmind.com/app/mod_geoip. Ak máte problémy s nastavením modulu mod_geoip, dajte nám vedieť prostredníctvom komentárov a nezabudnite ho zdieľať so svojimi priateľmi.