Comment bloquer des visites via GeoIP

MaxMind DB1 est un module Apache de GeoIP qui vise à localiser un utilisateur en se basant sur son adresse IP.

Installation

Lancez les commandes suivantes en SSH à la racine du compte :

Remarque
mkdir mod_maxminddb
cd mod_maxminddb/
wget https://github.com/maxmind/mod_maxminddb/releases/download/1.2.0/mod_maxminddb-1.2.0.tar.gz
tar xf mod_maxminddb-1.2.0.tar.gz 
cd mod_maxminddb-1.2.0/
./configure --with-apxs=/usr/alwaysdata/apache/latest/bin/apxs && make
cp ./src/.libs/mod_maxminddb.so ~/
cd
rm -fr mod_maxminddb

Puis ajoutez dans le menu Web > Configuration de votre interface d’administration alwaysdata :

LoadModule maxminddb_module $HOME/mod_maxminddb.so

Enfin créez un compte sur leur interface pour récupérer une de leur base de données : gratuite ou payante selon votre besoin.

Utilisations

Bloquer certains pays

Dans cet exemple nous utilisons la base gratuite que nous mettons à la racine du compte et nous bloquons la Chine et les États-Unis.

Ajoutez en haut d’un .htaccess à la racine du site :

MaxMindDBEnable On
MaxMindDBFile COUNTRY_DB $HOME/GeoLite2-Country.mmdb
MaxMindDBEnv COUNTRY_CODE COUNTRY_DB/country/iso_code

SetEnvIf COUNTRY_CODE CN BlockCountry
SetEnvIf COUNTRY_CODE US BlockCountry

Deny from env=BlockCountry

N’autoriser que certains pays

Dans cet exemple nous utilisons la base gratuite que nous mettons à la racine du compte et nous n’autorisons que la France.

Ajoutez en haut d’un .htaccess à la racine du site :

MaxMindDBEnable On
MaxMindDBFile COUNTRY_DB $HOME/GeoLite2-Country.mmdb
MaxMindDBEnv COUNTRY_CODE COUNTRY_DB/country/iso_code

SetEnvIf COUNTRY_CODE FR AllowCountry

Deny from all
Allow from env=AllowCountry

  1. MaxMind DB peut aussi être utilisé pour marketing géographique et propose des bases villes. ↩︎