Nginx

Blocco NGINX basato sulla posizione geografica

Blocco NGINX basato sulla posizione geografica
Nginx è un server web ad alte prestazioni, leggero e open source disponibile al pubblico gratuitamente. Ha un numero enorme di funzioni preziose rispetto ad altri server leggeri. Una di queste caratteristiche è il suo geoip_module, che viene utilizzato per identificare la posizione geografica da cui proviene il visitatore. Per impostazione predefinita, utilizza in combinazione con i dati forniti da maxmind per scoprire la posizione geografica del visitatore. Il vantaggio di identificare la posizione geografica è quello di applicare politiche diverse a diverse posizioni geografiche, ad esempio se un'attività è disponibile solo per i paesi del nord America, con geoip_module può bloccare tutti gli altri visitatori provenienti da altre regioni. Ciò garantisce che l'azienda non debba conformarsi a regole e regolamenti applicati da diverse regioni, come il GDPR (regolamento generale sulla protezione dei dati).

Implementazione

Anche se ci sono molti modi per implementare la soluzione nel sistema, questa guida mostra il modo più semplice per registrarla con il minimo sforzo.

  1. Ovviamente, Nginx deve essere installato nel sistema prima di iniziare i passaggi in questa guida. Tuttavia, avere Nginx installato non è sufficiente, poiché richiede anche l'installazione di geo_ip_module. Maxmind era solito rilasciare il proprio database in formato dat, ma da qualche tempo è stato rilasciato in formato mmdbd. Questo fa sì che Nginx richieda un nuovo geo_ip_module chiamato ngx_http_geoip2_module. Tuttavia, non è necessario poiché il vecchio database di dati è ancora sufficiente. Ad ogni modo, se nginx non è installato configuralo con i seguenti due comandi.
apt-get update
apt-get install nginx
  1. Digita il seguente comando per assicurarti che il modulo http_geoip sia installato.
nginx -V

  1. Esistono diversi modi per acquisire/creare il database che contiene gli indirizzi IP e i rispettivi nomi di paesi e città. Installa il database geo_ip con i seguenti comandi. L'utilizzo di questo metodo semplifica l'installazione del database geo_Ip nel sistema. Tuttavia, il modo più ideale è scaricare una nuova copia man mano che vengono aggiornate con le informazioni più recenti. Quindi, usa una delle tre opzioni fornite di seguito. La prima opzione è sufficiente per qualsiasi utente medio, il 2nd l'opzione è ottenere l'ultimo database di maxmind, la terza opzione converte il database mmdb nel rispettivo formato di file dat.
    Richiede tempo e risorse e quindi non è consigliato per server deboli. Tuttavia, se è ancora necessario aggiornare il database, utilizzare l'opzione 2. Risparmia tempo e denaro nella conversione del file, ma la sicurezza non può essere garantita poiché viene convertito da qualcun altro, non da una parte ufficiale. L'opzione 3 richiede 3 pacchetti pip, setuptools, ipaddr, dcryptit. E usa Python 2 per elaborare lo script. L'ultima riga converte l'archivio zip in .dat file. Anche se è stato menzionato la conversione del formato file mmdb in .dat, qui in realtà converte un file CSV in a .dat, e quindi richiede geoname2fips.csv che viene fornito con il pacchetto di file di conversione.

opzione 1

apt-get install geoip-database libgeoip1

opzione 2

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

Opzione 3

cd /home/
mkdir geolite2legacy/
git clone https://github.com/sherpya/geolite2legacy
apt-get install python
apt-get install python-pip
pip install setuptools
pip install ipaddr
pip install dcryptit
cd /usr/condividi/
mkdir GeoIP/
cd /usr/share/GeoIP/
wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-Country-CSV.cerniera lampo
pyton /home/geolite2legacy/geolite2legacy.py -i /usr/share/GeoIP/GeoLite2-Country-CSV.zip -f
/home/geolite2legacy/geoname2fips.csv -o /usr/share/GeoIP/GeoLite2-Country.data
  1. Configura il file di configurazione di Nginx come segue. Digita il comando nella prima riga nel terminale Linux come al solito e copia il resto delle righe su nginx.conf file. Assicurati che il nome menzionato in /usr/share/GeoIP/GeoIP.data corrisponde al file dat memorizzato nella cartella usr/share/GeoIP. Anche se nell'esempio seguente viene specificato un solo paese, è possibile specificare più codici paese come nell'esempio fornito con una riga per codice paese. L'elenco dei codici paese disponibile per i paesi può essere situato in questa posizione. http://www.maxmind.com/app/iso3166.
nano /etc/nginx/nginx.conf
geoip_country /usr/share/GeoIP/GeoIP.data;
mappa $geoip_country_code $allowed_country
predefinito sì;
LK no;
  1. Apri il file predefinito tramite qualsiasi editor di testo (è preferibile nano in quanto è abbastanza facile da modificare con esso), quindi aggiungi il contenuto dal 2nd riga in mezzo a qualsiasi punto del blocco di posizione nel file predefinito. Il codice funziona in questo modo, quando un visitatore effettua una richiesta al server web, nginx recupera i loro indirizzi IP e li abbina ai suoi record per trovare il rispettivo codice del paese, se il paese menzionato nel blocco della mappa corrisponde, il no viene assegnato al $allowed_country variabile, e quindi il controllo di $allowed_country consente di manipolare la risposta. In questa guida si usa no, e quindi al visitatore è negato di vedere il contenuto. Se ci sono più domini come .come, .lk, o nucuta.com, o nucuta.net aggiungi il codice dalla riga 3 a ciascun "dominio".anche il file conf. Se nginx è configurato correttamente, il file del rispettivo dominio si trova nella cartella dei siti disponibili.
nano /etc/nginx/sites-available/default
if ($allowed_country = no)
ritorno 444;
  1. Riavvia il server nginx con il seguente comando. In seguito, l'accesso al server Web da qualsiasi dominio dello Sri Lanka (LK) fa sì che il server Web non restituisca nulla come mostrato nelle schermate seguenti. 444 in nginx non rappresenta nulla. Qualsiasi altro codice come 302, 301, 404 può essere utilizzato anche qui. Se vengono specificati 302.301, deve essere specificato anche un URL per reindirizzare il visitatore.
systemctl riavvia nginx

Conclusione

Il blocco dei visitatori in base alla loro area geografica è fondamentale per il funzionamento di alcune aziende a causa di varie norme e regolamenti regionali. Nginx soddisfa tali esigenze con il suo modulo geo_ip. Utilizza i database maxmind per trovare il paese in base all'indirizzo IP del visitatore. Il database funziona sia con IPv4 che con ipv6. Poiché maxmind ha interrotto il suo formato di database di dati legacy, l'unico modo per utilizzare i propri dati è convertire il nuovo formato di file in file dat o utilizzarne uno già convertito o utilizzare un modulo di terze parti per Nginx per supportare il formato di file mmdb. Lo script Python fornito qui è l'ideale per la conversione anche se ci vuole un po' di tempo per vedere il risultato. Maxmind garantisce una precisione superiore al 99% nel trovare il paese in base all'IP; quindi è uno strumento indispensabile per qualsiasi attività commerciale.

Aggiungi i gesti del mouse a Windows 10 utilizzando questi strumenti gratuiti
Negli ultimi anni computer e sistemi operativi si sono notevolmente evoluti greatly. C'è stato un tempo in cui gli utenti dovevano usare i comandi per...
Controlla e gestisci il movimento del mouse tra più monitor in Windows 10
Gestore mouse con doppio display ti consente di controllare e configurare il movimento del mouse tra più monitor, rallentando i suoi movimenti vicino ...
WinMouse ti consente di personalizzare e migliorare il movimento del puntatore del mouse su PC Windows
Se vuoi migliorare le funzioni predefinite del puntatore del mouse, usa freeware WinMouse. Aggiunge più funzionalità per aiutarti a ottenere il massim...