Debain geoip: bloquer l’accès par pays

  • Installer geoip

apt-get install geoip-bin geoip-database libgeoip-dev libgeoip1 libapache2-mod-geoip

  • Activer le module:

a2enmod geoip

  • Modifier le fichier /etc/apache2/mods-enabled/geoip.conf:

nano /etc/apache2/mods-enabled/geoip.conf

Ajouter

<IfModule mod_geoip.c>
GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat MemoryCache
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat CheckCache
GeoIPScanProxyHeaders On
</IfModule>

  • Tester le module depuis un fichier php:

<?php
$country_name = apache_note("GEOIP_COUNTRY_NAME");
print "Country: " . $country_name;
?>

  • Pour bloquer un pays:

nano /etc/apache2/mods-enabled/geoip.conf

Ajouter

<Location />
SetEnvIf GEOIP_COUNTRY_CODE XX BlockCountry=1
Deny from env=BlockCountry
</Location>

(XX: code pays)