Mod_GeoIP er en Apache -modul som kan brukes til å få den geografiske plasseringen av IP adressen til den besøkende i Apache Internett server. Denne modulen lar deg bestemme den besøkendes land, organisasjon, og plassering. Det er spesielt nyttig for Geo annonsevisning, Målinnhold, Spambekjempelse, Svindeloppdagelse, Omdirigere/blokkere besøkende basert på landet sitt og mye mer.
GeoIP -modulen lar systemadministratorer omdirigere eller blokkere webtrafikk i henhold til klientens geografiske plassering. Den geografiske plasseringen læres via klientens IP -adresse.
Mod_GeoIP har to forskjellige versjoner en er Gratis og en annen er Betalt og bruker MaxMind GeoIP / GeoCity databaser.
Hvis du liker å sjekke ut de flere forskjellene mellom Gratis og Betalt versjon, vennligst besøk Maxmind.com.
Denne artikkelen forklarer hvordan du konfigurerer og installerer Mod_GeoIP modul for Apache in RHEL og CentOS bruker EPEL depot med YUM pakkeleder nytte.
Vi antar at du allerede kjører RHEL og CentOS system med en fungerende LAMPE (Linux, Apache, MySQL, og PHP) oppsett. Hvis ikke, kan du lese artiklene våre der vi har vist installasjonen av begge operativsystemene med LAMPE.
Som standard mod_Geoip er ikke tilgjengelig under RHEL / CentOS offisielt depot, så vi må installere og aktivere tredjepart EPEL oppbevaringssted.
# yum installer epel-release. # yum installere https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [På RHEL 8]
Når du har EPEL depot aktivert på systemet ditt, kan du ganske enkelt installere mod_geoip ved å kjøre følgende kommando med avhengighetspakker.
# yum installer mod_geoip GeoIP GeoIP-devel GeoIP-data zlib-devel.
Det er en god idé å laste ned det siste Geo City og Landdatabase å holde seg oppdatert.
# 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.
Etter at modulen er installert, åpner og redigerer du modulens hovedkonfigurasjonsfil, med en tekstredigerer på kommandolinjen, for eksempel vi, og aktiver modulen på hele serveren, som vist i utdraget nedenfor.
# vi /etc/httpd/conf.d/geoip.conf.
Sett linjen GeoIPEnable fra Av til På. Sørg også for at du legger til den absolutte banen til GeoIP -databasefilen.
GeoIP Slå på. GeoIPDBFile /usr/share/GeoIP/GeoIP.dat MemoryCache.
Start på nytt Apache tjeneste for å gjenspeile endringer.
# systemctl start httpd på nytt. ELLER. # service httpd restart
Imidlertid anbefales det ikke å slå på GeoIP-modulen på hele serveren. Du bør bare aktivere GeoIP -modulen i eller blokker der du faktisk ville utført trafikkomdirigering eller blokkering.
For å teste mod_geoip modulen fungerer som den skal med Apache, må vi lage en PHP filen heter testgeoip.php under Apache rotkatalogen (f.eks. /var/www/html).
# vi /var/www/html/testgeoip.php.
Sett inn følgende del av php -koden til den.
Hva er min IP -adresse - bestem eller hent min IP -adresse php if (getenv (HTTP_X_FORWARDED_FOR)) {$ pipaddress = getenv (HTTP_X_FORWARDED_FOR); $ ipaddress = getenv (REMOTE_ADDR); echo "Din proxy -IP -adresse er:". $ pipaddress. "(via $ ipaddress)"; } annet {$ ipaddress = getenv (REMOTE_ADDR); echo "IP -adressen din er: $ ipaddress"; } $ country = getenv (GEOIP_COUNTRY_NAME); $ country_code = getenv (GEOIP_COUNTRY_CODE); echo "
Ditt land: $ country ($ country_code)";
Prøv nå å ringe filen ved hjelp av en nettleser (f.eks. http://localhost/testgeoip.php). Du får din IP adresse og Land detaljer.
GeoIP -databasen oppdateres i begynnelsen av hver måned. Så det er veldig viktig å holde GeoIP-databasen oppdatert. For å laste ned den nyeste versjonen av databasen, bruk følgende kommando.
# 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.
Vi har skrevet et lite skallskript som automatisk laster ned den nyeste versjonen av GeoIP -databasen hver måned. Bare plasser et av følgende skript under /etc/cron.monthly.
# Automatisk GeoIP -databaseoppdatering. #!/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" if [-d "$ {GEOIPDIR}"]; deretter cd $ GEOIPDIR hvis [-n "$ {DATABASES}"]; deretter TMPDIR = $ (mktemp -d geoipupdate. XXXXXXXXXX) echo "Oppdaterer GeoIP -databaser ..." for db i $ DATABASES; gjør fname = $ (grunnnavn $ 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 "done [-d" $ {TMPDIR} "] && rm -rf $ TMPDIR fi. fi
Eksempelkoden nedenfor vil omdirigere brukere basert på landskoden vi har angitt SOM (Asia). På denne måten kan du omdirigere alle brukere basert på fylkeskoden.
GeoIP Slå på. GeoIPDBFile /usr/share/GeoIP/GeoIP.dat # Omdiriger ett land. Skriv om motoren. Skriv om %{ENV: GEOIP_COUNTRY_CODE} ^SOM$ Skriv om regel ^(.*) $https://www.tecmint.com$ 1 [R, L]
Dette eksemplet vil blokkere brukere basert på landskoden som GeoIP angir. Eksemplet nedenfor vil blokkere brukere fra SOM (Asia) og OSS (forente stater) land.
GeoIP Slå på. GeoIPDBFile /usr/share/GeoIP/GeoIP.dat SetEnvIf GEOIP_COUNTRY_CODE SOM BlockCountry. SetEnvIf GEOIP_COUNTRY_CODE OSS BlockCountry. #... plasser flere land her Nekt fra env = BlockCountry
Dette eksemplet nedenfor tillater bare brukere fra de nevnte landene.
GeoIP Slå på. GeoIPDBFile /usr/share/GeoIP/GeoIP.dat SetEnvIf GEOIP_COUNTRY_CODE SOM Tillat land. SetEnvIf GEOIP_COUNTRY_CODE OSS Tillat land. #... plasser flere land her Nekt fra alle. Tillat fra env = Tillat land
For mer informasjon om mod_geoip og bruken finner du på http://www.maxmind.com/app/mod_geoip. Hvis du har problemer med å sette opp en mod_geoip -modul, vennligst gi oss beskjed via kommentarer, og ikke glem å dele den med vennene dine.