Jak zainstalować mod_GEOIP dla Apache w RHEL i CENTOS

Jak zainstalować mod_GEOIP dla Apache w RHEL i CENTOS

Mod_GEOIP to moduł Apache, którego można użyć do uzyskania położenia geograficznego Ip adres gościa do Apache serwer internetowy. Ten moduł umożliwia określenie gościa kraj, organizacja, I Lokalizacja. Jest to szczególnie przydatne dla GEO AD Serving, Treść docelowa, Walka spamowa, Wykrywanie oszustw, Przekierowanie/blokowanie odwiedzający na podstawie ich kraju i wiele więcej.

Moduł GeoIP umożliwia administratorom systemowym przekierowanie lub blokowanie ruchu internetowego zgodnie z lokalizacją geograficzną klienta. Lokalizacja geograficzna jest wyuczona za pośrednictwem adresu IP klienta.

Mod_GEOIP ma dwie różne wersje, jedna to Bezpłatny I inny jest Płatny i używa MaxMind Geoip / Geocity bazy danych.

  1. Darmowa wersja: W bezpłatnej wersji, Geo City I Krajowe bazy danych są dostępne z 99.5% dokładność.
  2. Wersja płatna: W wersji płatnej otrzymasz obie bazy danych z 99.8% dokładność z bardziej zaawansowanymi szczegółami na temat Ip adres.

Jeśli lubisz sprawdzić więcej różnic między Bezpłatny I Płatny Wersja, odwiedź Maxmind.com.

W tym artykule wyjaśniono, jak skonfigurować i zainstalować Mod_GEOIP moduł dla Apache w Rhel I Centos używając Epel Repozytorium z narzędziem menedżera pakietu Yum.

Zakładamy, że już masz bieg Rhel I Centos system z pracą LAMPA (Linux, Apache, Mysql, I Php) organizować coś. Jeśli nie, przeczytaj nasze artykuły, w których pokazaliśmy instalację obu systemów operacyjnych z LAMPA.

Instalacja RHEL/CENTOS
  1. Instalacja minimal Rhel 7 i Centos 7.
  2. Instalacja RHEL 8 i CENTOS 8 minimal.
Konfiguracja lampy na RHEL/CENTOS
  1. Jak zainstalować lampę (Linux, Apache, MySQL, PHP) na RHEL i CENTOS 7
  2. Jak zainstalować Apache, MySQL/Mariadb i PHP na Rhel i Centos 8

Włącz repozytorium EPEL w RHEL i CENTOS

Domyślnie mod_GEOIP nie jest dostępne pod RHEL / CENTOS Oficjalne repozytorium, więc musimy zainstalować i włączyć strony trzeciej Epel magazyn.

# Yum Zainstaluj epel-uwalanie # yum instaluj https: // dl.Fedoraproject.ORG/PUB/EPEL/EPEL-Relase-Latest-8.Noarch.RPM [na Rhel 8] 

Zainstaluj mod_GEOIP w RHEL i CENTOS

Kiedyś Epel Repozytorium włączone w systemie, możesz po prostu zainstalować mod_GEOIP Uruchamiając następujące polecenie z ich pakietami zależności.

# Yum Instaluj mod_GEOIP Geoip-devel Geoip-Data Zlib-Devel 

Pobierz najnowszą bazę danych Geo City and Country

Warto pobrać najnowsze Geo City I Krajowa baza danych być na bieżąco.

# cd/usr/share/geoip/ # mv GeoIP.DAT Geoip.DAT_ORG # wget http: // geolite.Maxmind.com/pobierz/geoip/baza danych/Geolite2-Country.smoła.GZ # wget http: // geolite.Maxmind.com/pobierz/geoip/baza danych/geolite2-miasto.smoła.GZ # Gunzip Geolite2-Country.smoła.GZ # Gunzip Geolite2-City.smoła.GZ 

Włącz mod_GEOIP w Apache

Po zainstalowaniu modułu otwórz i edytuj główny plik konfiguracyjny modułu, z edytorem tekstu wiersza polecenia, takiego jak vi, i aktywuj serwer modułu, jak pokazano w poniższym fragmencie.

# vi/etc/httpd/conf.D/Geoip.conf 

Ustaw linię geoipenable z Wyłączony Do NA. Upewnij się również, że dodasz bezwzględną ścieżkę do pliku bazy danych GeoIP.

 Geoipenable na Geoipdbfile/usr/share/geoip/geoip.DAT MemoryCache  

Uruchom ponownie Apache Usługa odzwierciedlająca zmiany.

# Systemctl restartuj HTTPD lub # Service HTTPD Restart

Jednak nie zaleca się włączania serwera geoip modułu ogólnokrajowego. Powinieneś włączyć moduł GeoIP tylko w Lub bloki, w których faktycznie wykonałbyś przekierowanie ruchu lub blokowanie ruchu.

Testowanie modułu MOD_GEOIP

Aby przetestować mod_GEOIP Moduł działa poprawnie z Apache, musimy utworzyć Php Plik o nazwie TestGeoip.php pod Apache katalog główny (mi.G. /var/www/html).

# vi/var/www/html/testGeoip.php 

Włóż do niego następujący kawałek kodu PHP.

  Jaki jest mój adres IP - określ lub odzyskaj mój adres IP   Twój kraj: $ country ($ country_code) ”; ?>   

Teraz spróbuj zadzwonić do pliku za pomocą przeglądarki internetowej (mi.G. http: // localHost/TestGeoip.php). Dostaniesz swój adres IP I Kraj Detale.

Aktualizacja bazy danych GeoIP

Baza danych GeoIP jest aktualizowana na początku każdego miesiąca. Dlatego bardzo ważne jest, aby baza danych GeoIP na bieżąco. Aby pobrać najnowszą wersję bazy danych, użyj następującego polecenia.

# cd/usr/share/geoip/ # mv GeoIP.DAT Geoip.DAT_ORG # wget http: // geolite.Maxmind.com/pobierz/geoip/baza danych/Geolite2-Country.smoła.GZ # wget http: // geolite.Maxmind.com/pobierz/geoip/baza danych/geolite2-miasto.smoła.GZ # Gunzip Geolite2-Country.smoła.GZ # Gunzip Geolite2-City.smoła.GZ 

Automatyczna aktualizacja bazy danych GeoIP

Napisaliśmy mały skrypt powłoki, który automatycznie pobiera najnowszą wersję bazy danych GeoIP co miesiąc. Po prostu umieść dowolny z poniższych skryptów /etc/cron.miesięczny.

Skrypt 1
# Automatyczna aktualizacja bazy danych GeoIP #!/bin/sh cd/usr/share/geoip mv geoip.DAT Geoip.DAT_ORG wget -q http: // geolite.Maxmind.com/pobierz/geoip/baza danych/Geolite2-Country.smoła.gz gzip -d -f geolite2 -kok.smoła.GZ
Skrypt 2
#!/bin/sh geoip_mirror = "http: // geolite.Maxmind.com/download/geoip/baza danych "geoipdir =/usr/share/geoip tmpdir = bazy danych =" geolitecity geoliteCountry/geoip asnum/geoipasnum geoipv6 "if [-d" $ geoipdir "]; następnie cd $ geoipdir if [-n "$ Bazy danych"]; następnie tmpdir = $ (mkTemp -d Geoipupdate.Xxxxxxxxxx) echo „Aktualizacja baz danych GeoIP…” dla DB w bazach danych $; 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.data "mv" $ tmpdir/$ fname.data "" $ geoipdir/$ fname.DAT "CHMOD 0644" $ Geoipdir/$ fname.DAT "DODOD [-d" $ tmpdir "] && rm -rf $ tmpdir fi fi fi

Przekierowanie użytkowników na podstawie kraju

Poniższy przykładowy kod przekieruje użytkowników na podstawie kodu kraju, na który ustawiliśmy JAK (Azja). W ten sposób możesz przekierować wszystkich użytkowników na podstawie ich kodu hrabstwa.

Geoipenable na Geoipdbfile/usr/share/geoip/geoip.DAT # Przekieruj jeden kraj RewriteEngine na przepisu %env: geoip_country_code ^JAK$ Rewriterule ^(.*) $ https: // www.Tecmint.com1 USD [R, L]

Blokowanie użytkowników na podstawie kraju

Ten przykład zablokuje użytkowników na podstawie kodu kraju, który ustawia geoiP. Poniższy przykład zablokuje użytkowników przed JAK (Azja) I NAS (Stany Zjednoczone) Państwa.

Geoipenable na Geoipdbfile/usr/share/geoip/geoip.DAT SETENVIF GeoIP_Country_code JAK BlockCountry Setenvif Geoip_Country_code NAS Blockcountry #… umieść więcej krajów tutaj zaprzeczanie z env = blockcountry

Umożliwianie użytkownikom na podstawie kraju

Ten poniższy przykład pozwoli użytkownikom tylko z wymienionych krajów.

Geoipenable na Geoipdbfile/usr/share/geoip/geoip.DAT SETENVIF GeoIP_Country_code JAK Zezwalaj na setenvif geoip_country_code NAS PozwólCountry #… umieść tutaj więcej krajów Odrzuć od wszystkich zezwolenie na env = zezwolenie

Aby uzyskać więcej informacji o mod_GEOIP a jego użycie można znaleźć na stronie http: // www.Maxmind.com/app/mod_GEOIP. Jeśli masz problemy z konfiguracją modułu mod_GEOIP, daj nam znać za pośrednictwem komentarzy i nie zapomnij o udostępnieniu go znajomym.