Nginx

Bloc NGINX basé sur l'emplacement géographique

Bloc NGINX basé sur l'emplacement géographique
Nginx est un serveur Web open source hautes performances, léger et disponible gratuitement pour le public. Il a un nombre énorme de fonctionnalités précieuses par rapport à d'autres serveurs légers. L'une de ces fonctionnalités est son geoip_module, qui est utilisé pour identifier l'emplacement géographique d'où vient le visiteur. Par défaut, il utilise en combinaison avec les données fournies par maxmind pour connaître l'emplacement géographique du visiteur. L'avantage d'identifier l'emplacement géographique est d'appliquer différentes politiques à différents emplacements géographiques, par exemple si une entreprise n'est disponible que pour les pays d'Amérique du Nord, avec geoip_module, il peut bloquer tous les autres visiteurs venant d'autres régions. Cela garantit que l'entreprise n'a pas à se conformer aux règles et réglementations appliquées par différentes régions, telles que le RGPD (Règlement général sur la protection des données).

Mise en œuvre

Même s'il existe de nombreuses façons d'implémenter la solution dans le système, ce guide montre la façon la plus simple de l'inscrire avec un minimum d'effort.

  1. Évidemment, Nginx doit être installé dans le système avant de lancer les étapes de ce guide. Cependant, l'installation de Nginx ne suffit pas, car cela nécessite également l'installation de geo_ip_module. Maxmind avait l'habitude de publier sa base de données au format dat, mais depuis quelque temps, elle est publiée au format mmdb. Cela oblige Nginx à exiger un nouveau geo_ip_module appelé ngx_http_geoip2_module. Cependant, ce n'est pas nécessaire car l'ancienne base de données est toujours suffisante. Quoi qu'il en soit, si nginx n'est pas installé, configurez-le avec les deux commandes suivantes.
apt-get mise à jour
apt-get installer nginx
  1. Tapez la commande suivante pour vous assurer que le module http_geoip est installé.
nginx -V

  1. Il existe plusieurs façons d'acquérir/construire la base de données qui contient les adresses IP, et leurs pays respectifs, noms de ville. Installez la base de données geo_ip avec les commandes suivantes. L'utilisation de cette méthode facilite l'installation de la base de données geo_Ip dans le système. Cependant, le moyen le plus idéal est de télécharger une nouvelle copie car elles sont mises à jour avec les dernières informations. Alors, utilisez l'une des trois options ci-dessous. La première option est suffisante pour tout utilisateur moyen, la 2sd l'option est d'obtenir la dernière base de données de maxmind, la troisième option convertit la base de données mmdb dans son format de fichier dat respectif.
    C'est chronophage et gourmand en ressources, et donc déconseillé pour les serveurs faibles. Cependant, si la base de données mise à jour est toujours nécessaire, utilisez l'option 2. Cela permet d'économiser du temps et de l'argent lors de la conversion du fichier, mais la sécurité ne peut pas être garantie car il est converti par quelqu'un d'autre, pas par une partie officielle. L'option 3 nécessite 3 packages pip, setuptools, ipaddr, dcryptit. Et il utilise python 2 pour traiter le script. La dernière ligne convertit l'archive zip en .fichier de données. Même s'il est mentionné à propos de la conversion du format de fichier mmdb en .dat, ici, il convertit en fait un fichier CSV en un .dat, et nécessite donc geoname2fips.csv fourni avec le groupe de fichiers de conversion.

Option 1

apt-get install geoip-database libgeoip1

Option 2

cd /usr/share/GeoIP
wget -o maxmind.dat.gz https://bit.ly/2Gh3gTZ
gunzip maxmind.dat.gz

Option 3

cd /accueil/
mkdir geolite2legacy/
git clone https://github.com/sherpya/geolite2legacy
apt-get installer python
apt-get installer python-pip
pip installer setuptools
pip installer ipaddr
pip installer dcryptit
cd /usr/share/
mkdir GeoIP/
cd /usr/share/GeoIP/
wget https://geolite.maxmental.com/download/geoip/database/GeoLite2-Country-CSV.Zip *: français
pyton /home/geolite2legacy/geolite2legacy.py -i /usr/share/GeoIP/GeoLite2-Country-CSV.zip -f
/accueil/geolite2legacy/geoname2fips.csv -o /usr/share/GeoIP/GeoLite2-Country.dat
  1. Configurez le fichier de configuration Nginx comme suit. Tapez la commande dans la première ligne du terminal Linux comme d'habitude et copiez le reste des lignes dans le nginx.fichier de configuration. Assurez-vous que le nom mentionné dans /usr/share/GeoIP/GeoIP.dat correspond au fichier dat stocké dans le dossier usr/share/GeoIP. Même si dans l'exemple suivant, il ne spécifie qu'un seul pays, plusieurs codes de pays peuvent être spécifiés comme exemple donné avec une ligne par code de pays. La liste des codes de pays disponibles pour les pays peut être située à cet endroit. http://www.maxmental.com/app/iso3166.
nano /etc/nginx/nginx.conf
geoip_country /usr/share/GeoIP/GeoIP.date;
carte $geoip_country_code $allowed_country
par défaut oui ;
LK non ;
  1. Ouvrez le fichier par défaut via n'importe quel éditeur de texte (nano est préféré car il est assez facile à éditer avec), puis ajoutez le contenu depuis 2sd ligne entre n'importe où dans le bloc d'emplacement dans le fichier par défaut. Le code fonctionne comme ceci, lorsqu'un visiteur fait une demande au serveur Web, nginx récupère leurs adresses IP et correspond à ses enregistrements pour trouver le code de pays respectif, si le pays mentionné dans le bloc de carte correspond, le non est attribué au $allowed_country variable, et ainsi vérifier le $allowed_country permet de manipuler la réponse. Dans ce guide, il utilise non, et donc le visiteur est refusé de voir le contenu. S'il y a plusieurs domaines comme .com, .lk, ou nucuta.com ou nucuta.net ajoute le code depuis la ligne 3 à chaque "domaine".conf aussi. Si nginx est bien configuré, le fichier du domaine respectif se trouve dans le dossier des sites disponibles.
nano /etc/nginx/sites-available/default
if ($allowed_country = no)
retour 444;
  1. Redémarrez le serveur nginx avec la commande suivante. Par la suite, l'accès au serveur Web à partir de n'importe quel domaine sri lankais (LK) fait que le serveur Web ne renvoie rien, comme le montrent les captures d'écran suivantes. 444 dans nginx ne représente rien. Tout autre code tel que 302, 301, 404 peut également être utilisé ici à la place. Si 302 301 sont spécifiés, une URL pour rediriger le visiteur doit également être spécifiée.
systemctl redémarrer nginx

Conclusion

Le blocage des visiteurs en fonction de leur géographie est essentiel pour le fonctionnement de certaines entreprises en raison de diverses règles et réglementations régionales. Nginx répond à ces besoins avec son module geo_ip. Il utilise les bases de données maxmind pour trouver le pays par l'adresse IP du visiteur. La base de données fonctionne à la fois avec IPv4 et ipv6. Depuis que maxmind a abandonné son ancien format de base de données dat, le seul moyen d'utiliser ses données est de convertir le nouveau format de fichier en fichier dat ou d'en utiliser un déjà converti ou d'utiliser un module tiers pour que Nginx prenne en charge le format de fichier mmdb. Le script python fourni ici est idéal pour la conversion même s'il faut un certain temps pour voir le résultat. Maxmind garantit une précision de plus de 99 % dans la recherche du pays en fonction de l'IP ; c'est donc un outil indispensable pour toute entreprise.

Comment capturer et diffuser votre session de jeu sur Linux
Dans le passé, jouer à des jeux n'était considéré qu'un passe-temps, mais avec le temps, l'industrie du jeu a connu une croissance énorme en termes de...
Meilleurs jeux à jouer avec le suivi des mains
Oculus Quest a récemment introduit l'idée géniale du suivi manuel sans contrôleurs. Avec un nombre toujours croissant de jeux et d'activités qui exécu...
Comment afficher la superposition OSD dans les applications et jeux Linux en plein écran
Jouer à des jeux en plein écran ou utiliser des applications en mode plein écran sans distraction peut vous couper des informations système pertinente...