Kif Tinstalla Mod_GeoIP għal Apache f'RHEL u CentOS
Mod_GeoIP huwa modulu Apache li jista 'jintuża biex idaħħal il-lokazzjoni ġeografika tal-indirizz IP tal-viżitatur fis-server tal-web Apache. Dan il-modulu jippermettilek tiddetermina l-pajjiż, l-organizzazzjoni u l-post tal-viżitatur. Huwa speċjalment utli għal Geo Ad Serving, Target Content, Spam Fighting, Fraud Detection, Redirecting/Blocking viżitaturi bbażati fuq pajjiżhom u ħafna aktar.
Il-modulu GeoIP jippermetti lill-amministraturi tas-sistema biex jidderieġu mill-ġdid jew jimblokkaw it-traffiku tal-web skont il-lokazzjoni ġeografika tal-klijent. Il-lokazzjoni ġeografika titgħallem permezz tal-indirizz IP tal-klijent.
Mod_GeoIP għandu żewġ verżjonijiet differenti waħda hija Ħielsa u oħra hija Mħallsa u tuża databases MaxMind GeoIP/GeoCity.
- Verżjoni Ħieles: Fil-verżjoni Ħieles, id-databases ta' Geo City u Country huma disponibbli bi preċiżjoni ta' 99.5%.
- Verżjoni Mħallsa: Fil-verżjoni Mħallsa, int se tikseb iż-żewġ databases bi preċiżjoni ta' 99.8% b'xi dettalji aktar avvanzati dwar l-indirizz IP.
Jekk tixtieq tiċċekkja l-aktar differenzi bejn il-verżjoni Ħieles u Mħallsa, jekk jogħġbok żur Maxmind.com.
Dan l-artikolu jispjega kif twaqqaf u tinstalla l-modulu Mod_GeoIP għal Apache f'RHEL u CentOS billi tuża r-repożitorju EPEL bl-utilità tal-maniġer tal-pakketti YUM.
Nassumu li diġà għandek is-sistema RHEL u CentOS li taħdem b'setup ta 'LAMP (Linux, Apache, MySQL, u PHP) li taħdem. Jekk le, allura aqra l-artikoli tagħna fejn wrejna l-installazzjoni taż-żewġ sistemi operattivi b'LAMP.
- Installazzjoni ta' CentOS 7 Minimal.
- Installazzjoni ta' CentOS 8 Minimal.
- Kif Tinstalla LAMP (Linux, Apache, MySQL, PHP) fuq RHEL u CentOS 7
- Kif tinstalla Apache, MySQL/MariaDB, u PHP fuq RHEL u CentOS 8
B'mod awtomatiku mod_Geoip mhuwiex disponibbli taħt ir-repożitorju uffiċjali ta 'RHEL/CentOS, għalhekk għandna bżonn ninstallaw u nippermettu repożitorju EPEL ta' parti terza.
# yum install epel-release # yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [On RHEL 8]
Ladarba tkun attivat ir-repożitorju EPEL fis-sistema tiegħek, tista 'sempliċement tinstalla mod_geoip billi tmexxi l-kmand li ġej bil-pakketti tad-dipendenza tagħhom.
# yum install mod_geoip GeoIP GeoIP-devel GeoIP-data zlib-devel
Hija idea tajba li tniżżel l-aħħar Database ta’ Geo City u Country biex tibqa’ aġġornata.
# 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
Wara li l-modulu jkun ġie installat, iftaħ u editja l-fajl tal-konfigurazzjoni prinċipali tal-modulu, b'editur tat-test tal-linja tal-kmand bħal vi, u attiva s-server tal-modulu kollu, kif muri fis-silta t'hawn taħt.
# vi /etc/httpd/conf.d/geoip.conf
Issettja l-linja GeoIPEnable minn Mitfi għal Mixgħul. Ukoll, kun żgur li żżid il-mogħdija assoluta mal-fajl tad-database GeoIP.
<IfModule mod_geoip.c> GeoIPEnable On GeoIPDBFile /usr/share/GeoIP/GeoIP.dat MemoryCache </IfModule>
Ibda mill-ġdid is-servizz Apache biex jirrifletti l-bidliet.
# systemctl restart httpd OR # service httpd restart
Madankollu, mhux rakkomandat li tixgħel is-server tal-modulu GeoIP kollu. Għandek tattiva l-modulu GeoIP biss fi blokki
jew
fejn fil-fatt twettaq ir-ridirezzjoni jew blokk tat-traffiku.
Biex tittestja l-mod_geoip modulu qed jaħdem b'mod korrett ma 'Apache, għandna bżonn noħolqu fajl PHP imsejjaħ testgeoip.php taħt id-direttorju tal-għeruq Apache (eż. /var/www/html).
# vi /var/www/html/testgeoip.php
Daħħal il-biċċa kodiċi PHP li ġejja magħha.
<html> <head> <title>What is my IP address - determine or retrieve my IP address</title> </head> <body> <?php if (getenv(HTTP_X_FORWARDED_FOR)) { $pipaddress = getenv(HTTP_X_FORWARDED_FOR); $ipaddress = getenv(REMOTE_ADDR); echo "Your Proxy IP address is : ".$pipaddress. " (via $ipaddress) " ; } else { $ipaddress = getenv(REMOTE_ADDR); echo "Your IP address is : $ipaddress"; } $country = getenv(GEOIP_COUNTRY_NAME); $country_code = getenv(GEOIP_COUNTRY_CODE); echo "<br/>Your country : $country ( $country_code ) "; ?> </body> </html>
Issa, ipprova ċċempel il-fajl billi tuża web browser (eż. http://localhost/testgeoip.php). Se tirċievi l-indirizz IP tiegħek u d-dettalji tal-Pajjiż.
Id-database GeoIP tiġi aġġornata fil-bidu ta' kull xahar. Għalhekk, huwa importanti ħafna li d-database GeoIP tinżamm aġġornata. Biex tniżżel l-aħħar verżjoni tad-database uża l-kmand li ġej.
# 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
Aħna ktibna script shell żgħir li awtomatikament tniżżel l-aħħar verżjoni tad-database GeoIP kull xahar. Poġġi xi waħda mill-iskrittura li ġejja taħt /etc/cron.monthly.
# Automatic GeoIP Database Update #!/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}" ]; then cd $GEOIPDIR if [ -n "${DATABASES}" ]; then TMPDIR=$(mktemp -d geoipupdate.XXXXXXXXXX) echo "Updating GeoIP databases..." for db in $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" done [ -d "${TMPDIR}" ] && rm -rf $TMPDIR fi fi
Il-kodiċi ta' eżempju ta' hawn taħt se jidderieġi mill-ġdid lill-utenti abbażi tal-kodiċi tal-pajjiż li ssettjajna għal AS (Asja). B'dan il-mod tista' tidderieġi mill-ġdid kwalunkwe utent ibbażat fuq il-kodiċi tal-kontea tagħhom.
GeoIPEnable On GeoIPDBFile /usr/share/GeoIP/GeoIP.dat # Redirect one country RewriteEngine on RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^AS$ RewriteRule ^(.*)$ https://linux-console.net$1 [R,L]
Dan l-eżempju se jimblokka l-utenti abbażi tal-kodiċi tal-pajjiż li jistabbilixxi GeoIP. L-eżempju hawn taħt se jimblokka utenti minn pajjiżi AS (Asja) u US (Istati Uniti).
GeoIPEnable On GeoIPDBFile /usr/share/GeoIP/GeoIP.dat SetEnvIf GEOIP_COUNTRY_CODE AS BlockCountry SetEnvIf GEOIP_COUNTRY_CODE US BlockCountry # ... place more countries here Deny from env=BlockCountry
Dan l-eżempju hawn taħt se jippermetti biss utenti mill-pajjiżi msemmija hawn taħt.
GeoIPEnable On GeoIPDBFile /usr/share/GeoIP/GeoIP.dat SetEnvIf GEOIP_COUNTRY_CODE AS AllowCountry SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry # ... place more countries here Deny from all Allow from env=AllowCountry
Għal aktar informazzjoni dwar mod_geoip u l-użu tiegħu tista 'tinstab fuq http://www.maxmind.com/app/mod_geoip. Jekk qed ikollok xi problemi biex twaqqaf modulu mod_geoip, jekk jogħġbok għarrafna permezz tal-kummenti u jekk jogħġbok tinsiex taqsamha mal-ħbieb tiegħek.