Nginx – Interdire les IP d’un pays

décembre 7, 2016 11:23 Publié par Laissez vos commentaires

Bonjour à tous,

Dans ce tutoriel, nous allons apprendre à bloquer toutes les IP associées à un pays et référencées dans une base GeoIP.

Dans notre exemple, nginx est installé en tant que reverse proxy. Nous allons vérifier que la base GeoIP est présente, sinon il faudra l’installer :

apt-get install geoip-database libgeoip1

Télécharger une version récente de cette base :

cd /usr/share/GeoIP/
 wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
 gunzip GeoIP.dat.gz

Dans le fichier nginx.conf, juste après la balise http : :

nano /etc/nginx/nginx.conf

    geoip_country /usr/share/GeoIP/GeoIP.dat;
    map $geoip_country_code $allowed_country 
        default yes;
        RU no;
        CN no;
    

Nous considérons ici que toutes les ip sont autorisées sauf les ip russes et chinoises ( exemple choisi au hasard bien entendu 😉

Il faut ensuite renvoyer une page, 444 ou 403 en cas d’IP non autorisée. Cette configuration s’effectue au niveau des paramètres du site sous la balise server :

nano /etc/nginx/sites-enabled/monsite.conf

        if ($allowed_country = no) 
            return 444;
        

Terminé!

A+

Classés dans :

Cet article a été écrit par admin

Laisser un commentaire