Prérequis:
1 serveur APACHE2 avec DEDIAN 10, 11 ou 12 installé
PHP8 installé
1 site web installé
Connectez vous en SSH avec ROOT
1) Installer dépendance:
Installer la dépendance suivante:
2) Installer la librairie MaxMind:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 apt-get update apt-get install apache2-dev
Placez vous dans TMP, télécharger, décompresser et aller dans le répertoire:
Installer la librairie avec les 4 commandes suivantes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 cd /tmp wget https://github.com/maxmind/libmaxminddb/releases/download/1.9.1/libmaxminddb-1.9.1.tar.gz tar xzvf libmaxminddb-1.9.1.tar.gz cd libmaxminddb-1.9.1/
3) Installer GeoipUpdate:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ./configure make clean make make install
Placez vous dans TMP, télécharger:
Installer GeoipUpdate avec la commande suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cd /tmp wget https://github.com/maxmind/geoipupdate/releases/download/v6.1.0/geoipupdate_6.1.0_linux_amd64.deb
Code : Sélectionner tout - Visualiser dans une fenêtre à part dpkg -i geoipupdate_6.1.0_linux_amd64.deb
4) Créer un compte MaxMind:
Créer votre compte:
https://www.maxmind.com/
Se rendre dans: Account --> Manage License Keys
Puis cliquer sur: Generate new license key
Sauvegarder AccountID et LicenseKey
5) Configurer GeoIP.conf:
Revenir à la racine de ROOT, éditer le fichier de configuration
Indiquer votre AccountID, LicenseKey et les EditionIDs suivantes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cd sudo nano /etc/GeoIP.conf
6) Mettre à jour les bases de données:AccountID votre_id
LicenseKey votre_licence_mmk
EditionIDs GeoLite2-ASN GeoLite2-City GeoLite2-Country
7) Installer le module mod_maxminddb:
Code : Sélectionner tout - Visualiser dans une fenêtre à part geoipupdate -v
Placez vous dans TMP, télécharger, décompresser et aller dans le répertoire:
Installer le module avec les 4 commandes suivantes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 cd /tmp wget https://github.com/maxmind/mod_maxminddb/releases/download/1.2.0/mod_maxminddb-1.2.0.tar.gz tar xzvf mod_maxminddb-1.2.0.tar.gz cd mod_maxminddb-1.2.0
8) Configurer httpd.conf:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ./configure make clean make make install
Rajouter les lignes suivantes à votre VirtualHost
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cd nano /var/www/vhosts/system/nom_du_repertoire_de_votre_site_web/conf/httpd.conf
9) Redémarrer APACHE2:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 # GEOIP2 MaxMind <IfModule maxminddb_module> MaxMindDBEnable On MaxMindDBFile ASN_DB /usr/share/GeoIP/GeoLite2-ASN.mmdb MaxMindDBFile CITY_DB /usr/share/GeoIP/GeoLite2-City.mmdb MaxMindDBEnv GEOIP_ASN ASN_DB/autonomous_system_number MaxMindDBEnv GEOIP_ASORG ASN_DB/autonomous_system_organization MaxMindDBNetworkEnv CITY_DB GEOIP_NETWORK MaxMindDBEnv GEOIP_CONTINENT_CODE CITY_DB/continent/code MaxMindDBEnv GEOIP_CONTINENT_NAME CITY_DB/continent/names/en MaxMindDBEnv GEOIP_COUNTRY_CODE CITY_DB/country/iso_code MaxMindDBEnv GEOIP_COUNTRY_NAME CITY_DB/country/names/en MaxMindDBEnv GEOIP_REGION_CODE CITY_DB/subdivisions/0/iso_code MaxMindDBEnv GEOIP_REGION_NAME CITY_DB/subdivisions/0/names/en MaxMindDBEnv GEOIP_CITY_NAME CITY_DB/city/names/en MaxMindDBEnv GEOIP_CITY_POSTAL_CODE CITY_DB/postal/code MaxMindDBEnv GEOIP_LONGITUDE CITY_DB/location/longitude MaxMindDBEnv GEOIP_LATITUDE CITY_DB/location/latitude </IfModule>
10) Test:
Code : Sélectionner tout - Visualiser dans une fenêtre à part systemctl restart apache2
A la racine de votre site, créer la page test.php
Indiquer ce code pour voir les variables que vous pourrez utiliser:
Résultat:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php foreach($_SERVER as $key => $value) echo '$_SERVER['.$key.']='.$value .'<br />'; ?>
10) Exemples:$_SERVER[GEOIP_NETWORK]=2a01:cb08:980::/41
$_SERVER[GEOIP_REGION_NAME]=Île-de-France
$_SERVER[GEOIP_COUNTRY_NAME]=France
$_SERVER[GEOIP_CONTINENT_NAME]=Europe
$_SERVER[GEOIP_REGION_CODE]=IDF
$_SERVER[GEOIP_COUNTRY_CODE]=FR
$_SERVER[GEOIP_LATITUDE]=48.84950
$_SERVER[GEOIP_CONTINENT_CODE]=EU
$_SERVER[GEOIP_LONGITUDE]=2.63250
$_SERVER[GEOIP_CITY_NAME]=Noisiel
$_SERVER[GEOIP_CITY_POSTAL_CODE]=77186
$_SERVER[GEOIP_ASN]=3215
$_SERVER[GEOIP_ASORG]=Orange
$_SERVER[MMDB_INFO]=result found
$_SERVER[MMDB_ADDR]=2a04:cb08:97d:5a00:d008:4dee:6h04:8by5
Editer votre fichier .htaccess
Acceptez les IP FR,BE,CH,DE,IT,NL et ES et rediriger les autres visiteurs vers un répertoire de votre site
Acceptez les IP FR,BE,CH,DE,IT,NL et ES et rediriger les autres visiteurs vers une page de votre site
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(FR|BE|CH|DE|IT|NL|ES)$ RewriteRule ^$ /monrépertoire/ [L] </IfModule>
Refuser les IP FR,BE,CH,DE,IT,NL et ES qui sont redirigées vers un répertoire de votre site, les autres visiteurs sont acceptés
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(FR|BE|CH|DE|IT|NL|ES)$ RewriteRule ^$ /mapage.php [L] </IfModule>
Refuser les IP FR,BE,CH,DE,IT,NL et ES qui sont redirigées vers une page de votre site, les autres visiteurs sont acceptés
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(FR|BE|CH|DE|IT|NL|ES)$ RewriteRule ^$ /monrépertoire/ [L] </IfModule>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(FR|BE|CH|DE|IT|NL|ES)$ RewriteRule ^$ /mapage.php [L] </IfModule>
Partager