Comment installer mod_geoip pour Apache dans Rhel et Centos

Comment installer mod_geoip pour Apache dans Rhel et Centos

Mod_geoip est un module Apache qui peut être utilisé pour obtenir l'emplacement géographique du IP adresse du visiteur dans le Apache serveur Web. Ce module vous permet de déterminer le visiteur pays, organisation, et emplacement. Il est particulièrement utile pour Geo annonce, Target Content, Combat de spam, Détection de fraude, Redirection / blocage les visiteurs basés sur leur pays et bien plus.

Le module GEOIP permet aux administrateurs système de rediriger ou de bloquer le trafic Web en fonction de l'emplacement géographique du client. L'emplacement géographique est appris via l'adresse IP du client.

Mod_geoip a deux versions différentes une Gratuit Et un autre est Payé et utilise maxmind Geoip / / Géocité bases de données.

  1. Version gratuite: Dans la version gratuite, le Geo-City et Bases de données de pays sont disponibles avec 99.5% précision.
  2. Version payante: Dans la version payante, vous obtiendrez les deux bases de données avec 99.8% précision avec des détails plus avancés sur IP adresse.

Si vous aimez vérifier plus les différences entre le Gratuit et Payé Version, veuillez visiter Maxmind.com.

Cet article explique comment configurer et installer le Mod_geoip Module pour Apache dans Rhel et Centos en utilisant le Epel Référentiel avec l'utilitaire de gestionnaire de packages YUM.

Nous supposons que vous avez déjà coulé Rhel et Centos système avec un travail LAMPE (Linux, Apache, Mysql, et Php) installation. Sinon, lisez nos articles où nous avons montré l'installation des deux systèmes d'exploitation avec LAMPE.

Installation de RHEL / CENTOS
  1. Installation de RHEL 7 et Centos 7 minimale.
  2. Installation de RHEL 8 et CentOS 8 Minimal.
Configuration de la lampe sur RHEL / CENTOS
  1. Comment installer lampe (Linux, Apache, MySQL, PHP) sur Rhel et Centos 7
  2. Comment installer Apache, MySQL / MARIADB et PHP sur RHEL et CENTOS 8

Activer le référentiel EPEL à Rhel et Centos

Par défaut mod_geoip n'est pas disponible sous Rhel / centos Référentiel officiel, nous devons donc installer et activer un tiers Epel dépôt.

# yum install epel-release # yum install https: // dl.fedoraproject.org / pub / epel / epel-libérer lest-8.noarch.RPM [sur Rhel 8] 

Installez MOD_GEOIP dans Rhel et Centos

Une fois que vous avez Epel Référentiel activé sur votre système, vous pouvez simplement installer mod_geoip En exécutant la commande suivante avec leurs packages de dépendance.

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

Télécharger la dernière base de données Geo City and Country

C'est une bonne idée de télécharger le dernier Geo-City et Base de données de pays Pour rester à jour.

# cd / usr / share / geoip / # mv geoip.dat geoip.dat_org # wget http: // geolite.maxmind.com / download / geoip / database / geolite2-country.le goudron.gz # wget http: // geolite.maxmind.com / download / geoip / database / geolite2-city.le goudron.GZ # Gunzip Geolite2-Country.le goudron.GZ # Gunzip Geolite2-City.le goudron.gz 

Activer mod_geoip dans Apache

Une fois le module installé, ouvrez et modifiez le fichier de configuration principal du module, avec un éditeur de texte en ligne de commande tel que vi, et activer le module à l'échelle du serveur, comme illustré dans l'extrait ci-dessous.

# vi / etc / httpd / confre.d / geoip.confli 

Réglez la ligne géoicopénable à partir de Désactivé pour Sur. Assurez-vous également d'ajouter le chemin absolu au fichier de base de données GEOIP.

 GéoIPEPEnable sur GeOIPDBFile / USR / Share / GEOIP / GEOIP.dat memorycache  

Redémarrer le Apache Service pour refléter les changements.

# SystemCTL Redémarrer HTTPD ou # Service HTTPD Redémarrage

Cependant, il n'est pas recommandé d'allumer le serveur GEOIP à l'échelle du serveur. Vous devez activer le module GEOIP uniquement dans ou Blocs où vous effectuez réellement la redirection du trafic ou le bloc.

Tester le module MOD_GEOIP

Pour tester le mod_geoip Le module fonctionne correctement avec Apache, nous devons créer un Php fichier appelé testgeoip.php sous Apache répertoire racine (e.g. / var / www / html).

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

Insérez le morceau de code PHP suivant.

  Quelle est mon adresse IP - déterminer ou récupérer mon adresse IP   Votre pays: $ country ($ country_code) "; ?>   

Maintenant, essayez d'appeler le fichier à l'aide d'un navigateur Web (e.g. http: // localhost / testgeoip.php). Vous obtiendrez votre adresse IP et Pays détails.

Mise à jour de la base de données GEOIP

La base de données GEOIP est mise à jour à début de chaque mois. Il est donc très important de maintenir la base de données GEOIP à jour. Pour télécharger la dernière version de la base de données, utilisez la commande suivante.

# cd / usr / share / geoip / # mv geoip.dat geoip.dat_org # wget http: // geolite.maxmind.com / download / geoip / database / geolite2-country.le goudron.gz # wget http: // geolite.maxmind.com / download / geoip / database / geolite2-city.le goudron.GZ # Gunzip Geolite2-Country.le goudron.GZ # Gunzip Geolite2-City.le goudron.gz 

Mise à jour automatique de la base de données GEOIP

Nous avons écrit un petit script shell qui téléchargera automatiquement la dernière version de la base de données GEOIP chaque mois. Placez juste l'un des scripts suivants sous / etc / cron.mensuel.

Script 1
# Mise à jour automatique de la base de données GEOIP #!/ bin / sh cd / usr / share / geoip mv geoip.dat geoip.dat_org wget -q http: // geolite.maxmind.com / download / geoip / database / geolite2-country.le goudron.gz gzip -d -f geolite2-country.le goudron.gz
Script 2
#!/ bin / sh geoip_mirror = "http: // geolite.maxmind.com / download / geoip / database "geoIpDir = / usr / share / geoip tmpDir = databases =" geolitecity geolitecounry / geoip asnum / geoipasnum geoIpv6 "if [-d" $ geopdir "]; puis cd $ geoipdir if [-n "$ Bases de données"]; alors tmpdir = $ (mktemp -d geoipupdate.Xxxxxxxxxx) echo "Mise à jour des bases de données GEOIP…" pour DB dans les bases de données $; 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

Rediriger les utilisateurs en fonction du pays

L'exemple de code ci-dessous redirigera les utilisateurs en fonction du code de pays sur lequel nous définissons COMME (Asie). De cette façon, vous pouvez rediriger tous les utilisateurs en fonction de leur code de comté.

GéoIPEPEnable sur GeOIPDBFile / USR / Share / GEOIP / GEOIP.dat # rediriger un pays de réécriture de pays sur RewriteCond% Env: geoip_country_code ^COMME$ Réécrit ^ (.*) $ https: // www.Tecmint.com1 $ [r, l]

Bloquer les utilisateurs en fonction du pays

Cet exemple bloquera les utilisateurs en fonction du code de pays que GEOIP définit. L'exemple ci-dessous bloquera les utilisateurs de COMME (Asie) et NOUS (États-Unis) des pays.

GéoIPEPEnable sur GeOIPDBFile / USR / Share / GEOIP / GEOIP.dat setenvif geoip_country_code COMME BlockCountry setenvif geoip_country_code NOUS Blockcountry #… Placez plus de pays ici nier de ENV = Blockcountry

Autoriser les utilisateurs en fonction du pays

Cet exemple ci-dessous ne permettra que les utilisateurs des pays mentionnés ci-dessous.

GéoIPEPEnable sur GeOIPDBFile / USR / Share / GEOIP / GEOIP.dat setenvif geoip_country_code COMME Allowcountry setenvif geoip_country_code NOUS PerlowCountry #… Placez plus de pays ici nier de tous les permettre à partir d'env = perledCountry

Pour plus d'informations sur mod_geoip Et son utilisation peut être trouvée sur http: // www.maxmind.com / app / mod_geoip. Si vous avez du mal à configurer un module MOD_GEOIP, veuillez nous en informer via des commentaires et n'oubliez pas de le partager avec vos amis.