So installieren Sie Mod_GeoIP für Apache in RHEL und CentOS


Mod_GeoIP ist ein Apache-Modul, mit dem der geografische Standort des IP Adresse des Besuchers in die Apache Webserver. Mit diesem Modul können Sie den Besucher bestimmen Land, Organisation, und Ort. Es ist besonders nützlich für Geo Ad Serving, Zielinhalt, Spam-Bekämpfung, Entdeckung eines Betruges, Umleiten / Blockieren Besucher basierend auf ihrem Land und vielem mehr.

Mit dem GeoIP-Modul können Systemadministratoren den Webverkehr entsprechend dem geografischen Standort des Clients umleiten oder blockieren. Der geografische Standort wird über die Client-IP-Adresse ermittelt.

Mod_GeoIP hat zwei verschiedene versionen eine ist Frei und ein anderer ist Bezahlt und verwendet MaxMind GeoIP /. GeoCity Datenbanken.

  1. Freie Version: In der kostenlosen Version ist die Geo City und Länderdatenbanken sind verfügbar mit 99,5% Richtigkeit.
  2. Bezahlversion: In der kostenpflichtigen Version erhalten Sie beide Datenbanken mit 99,8% Genauigkeit mit einigen erweiterten Details über IP Adresse.

Wenn Sie die mehr Unterschiede zwischen den überprüfen möchten Frei und Bezahlt Version, bitte besuchen Maxmind.com.

Dieser Artikel erklärt, wie Sie das einrichten und installieren Mod_GeoIP Modul für Apache in RHEL und CentOS Verwendung der EPEL Repository mit dem Dienstprogramm YUM Paketmanager.


Wir gehen davon aus, dass Sie bereits laufen RHEL und CentOS System mit einem funktionierenden LAMPE ((Linux, Apache, MySQL, und PHP) Konfiguration. Wenn nicht, lesen Sie unsere Artikel, in denen wir die Installation beider Betriebssysteme mit gezeigt haben LAMPE.

Installation von RHEL / CentOS
  1. Installation von RHEL 7 und CentOS 7 Minimal.
  2. Installation von RHEL 8 und CentOS 8 Minimal.
LAMPE-Setup unter RHEL / CentOS
  1. So installieren Sie LAMP (Linux, Apache, MySQL, PHP) unter RHEL und CentOS 7
  2. So installieren Sie Apache, MySQL / MariaDB und PHP unter RHEL und CentOS 8

Aktivieren Sie das EPEL-Repository in RHEL und CentOS

Standardmäßig mod_Geoip ist nicht verfügbar unter RHEL / CentOS offizielles Repository, daher müssen wir Dritte installieren und aktivieren EPEL Repository.

# yum install epel-release
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm  [On RHEL 8]

Installieren Sie Mod_GeoIP in RHEL und CentOS

Sobald du hast EPEL Repository auf Ihrem System aktiviert, können Sie einfach installieren mod_geoip indem Sie den folgenden Befehl mit ihren Abhängigkeitspaketen ausführen.

# yum install mod_geoip GeoIP GeoIP-devel GeoIP-data zlib-devel

Laden Sie die neueste Geo City and Country-Datenbank herunter

Es ist eine gute Idee, die neueste Version herunterzuladen Geo City und Länderdatenbank auf dem Laufenden bleiben.

# 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

Aktivieren Sie Mod_GeoIP in Apache

Öffnen und bearbeiten Sie nach der Installation des Moduls die Hauptkonfigurationsdatei des Moduls mit einem Befehlszeilentexteditor wie z wirund aktivieren Sie das Modul serverweit, wie im folgenden Auszug dargestellt.

# vi /etc/httpd/conf.d/geoip.conf

Stellen Sie die Zeile GeoIPEnable von ein aus zu Auf. Stellen Sie außerdem sicher, dass Sie den absoluten Pfad zur GeoIP-Datenbankdatei hinzufügen.


GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat MemoryCache

Starten Sie das neu Apache Service, um Änderungen widerzuspiegeln.

# systemctl restart httpd
OR
# service httpd restart

Es wird jedoch nicht empfohlen, das GeoIP-Modul serverweit einzuschalten. Sie sollten das GeoIP-Modul nur in aktivieren oder Blöcke, in denen Sie tatsächlich die Verkehrsumleitung oder -blockierung durchführen würden.

Mod_GeoIP-Modul testen

Um das zu testen mod_geoip Modul funktioniert korrekt mit Apache, wir müssen ein erstellen PHP Datei aufgerufen testgeoip.php unter Apache Wurzelverzeichnis (zB / var / www / html).

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

Fügen Sie den folgenden PHP-Code ein.



  What is my IP address - determine or retrieve my IP address
 

 Your country : $country ( $country_code ) ";
?>


Versuchen Sie nun, die Datei mit einem Webbrowser aufzurufen (zB http: //localhost/testgeoip.php). Sie werden Ihre bekommen IP Adresse und Land Einzelheiten.

Aktualisieren der GeoIP-Datenbank

Die GeoIP-Datenbank wird Anfang jedes Monats aktualisiert. Daher ist es sehr wichtig, die GeoIP-Datenbank auf dem neuesten Stand zu halten. Verwenden Sie den folgenden Befehl, um die neueste Version der Datenbank herunterzuladen.

# 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

Automatische Aktualisierung der GeoIP-Datenbank

Wir haben ein kleines Shell-Skript geschrieben, das jeden Monat automatisch die neueste Version der GeoIP-Datenbank herunterlädt. Platzieren Sie einfach eines der folgenden Skripte unter /etc/cron.monthly.

Skript 1
# 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
Skript 2
#!/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

Weiterleiten von Benutzern nach Land

Der folgende Beispielcode leitet Benutzer basierend auf dem von uns festgelegten Ländercode um WIE ((Asien). Auf diese Weise können Sie alle Benutzer basierend auf ihrem County-Code umleiten.

GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat

# Redirect one country
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^AS$
RewriteRule ^(.*)$ https://www.tecmint.com$1 [R,L]

Blockieren von Benutzern basierend auf dem Land

In diesem Beispiel werden Benutzer basierend auf dem von GeoIP festgelegten Ländercode blockiert. Das folgende Beispiel blockiert Benutzer von WIE ((Asien) und UNS ((Vereinigte Staaten) Länder.

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

Zulassen von Benutzern basierend auf dem Land

In diesem Beispiel sind nur Benutzer aus den unten genannten Ländern zulässig.

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

Weitere Informationen zu mod_geoip und seine Verwendung finden Sie unter http://www.maxmind.com/app/mod_geoip. Wenn Sie Probleme beim Einrichten eines mod_geoip-Moduls haben, teilen Sie uns dies bitte über Kommentare mit und vergessen Sie nicht, es mit Ihren Freunden zu teilen.


0 Comments

Добавить комментарий