[TUTO] Installer GEOIP2 MaxMind sur APACHE2 avec DEBIAN 10, 11, 12 pour .htaccess
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:
Code:
1 2
| apt-get update
apt-get install apache2-dev |
2) Installer la librairie MaxMind:
Placez vous dans TMP, télécharger, décompresser et aller dans le répertoire:
Code:
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/ |
Installer la librairie avec les 4 commandes suivantes:
Code:
1 2 3 4
| ./configure
make clean
make
make install |
3) Installer GeoipUpdate:
Placez vous dans TMP, télécharger:
Code:
1 2
| cd /tmp
wget https://github.com/maxmind/geoipupdate/releases/download/v6.1.0/geoipupdate_6.1.0_linux_amd64.deb |
Installer GeoipUpdate avec la commande suivante:
Code:
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
Code:
1 2
| cd
sudo nano /etc/GeoIP.conf |
Indiquer votre AccountID, LicenseKey et les EditionIDs suivantes:
Citation:
AccountID votre_id
LicenseKey votre_licence_mmk
EditionIDs GeoLite2-ASN GeoLite2-City GeoLite2-Country
6) Mettre à jour les bases de données:
7) Installer le module mod_maxminddb:
Placez vous dans TMP, télécharger, décompresser et aller dans le répertoire:
Code:
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 |
Installer le module avec les 4 commandes suivantes:
Code:
1 2 3 4
| ./configure
make clean
make
make install |
8) Configurer httpd.conf:
Code:
1 2
| cd
nano /var/www/vhosts/system/nom_du_repertoire_de_votre_site_web/conf/httpd.conf |
Rajouter les lignes suivantes à votre VirtualHost
Code:
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> |
9) Redémarrer APACHE2:
Code:
systemctl restart apache2
10) Test:
A la racine de votre site, créer la page test.php
Indiquer ce code pour voir les variables que vous pourrez utiliser:
Code:
1 2 3 4
| <?php
foreach($_SERVER as $key => $value)
echo '$_SERVER['.$key.']='.$value .'<br />';
?> |
Résultat:
Citation:
$_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
10) Exemples:
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
Code:
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> |
Acceptez les IP FR,BE,CH,DE,IT,NL et ES et rediriger les autres visiteurs vers une page de votre site
Code:
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 un répertoire de votre site, les autres visiteurs sont acceptés
Code:
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 une page de votre site, les autres visiteurs sont acceptés
Code:
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> |