Nginx

Bloco NGINX com base na localização geográfica

Bloco NGINX com base na localização geográfica
Nginx é um servidor da web de alto desempenho, leve e de código aberto, disponível ao público gratuitamente. Ele tem um número enorme de recursos valiosos em comparação com outros servidores leves. Um desses recursos é seu geoip_module, que é usado para identificar a localização geográfica de onde o visitante vem. Por padrão, ele usa em combinação com os dados fornecidos pelo maxmind para descobrir a localização geográfica do visitante. A vantagem de identificar a localização geográfica é aplicar políticas diferentes para localizações geográficas diferentes, por exemplo, se uma empresa está disponível apenas para países da América do Norte, com geoip_module pode bloquear todos os outros visitantes vindos de outras regiões. Isso garante que a empresa não precise cumprir as regras e regulamentos impostos por diferentes regiões, como o GDPR (Regulamento geral de proteção de dados).

Implementação

Embora haja muitas maneiras de implementar a solução no sistema, este guia demonstra a maneira mais fácil de inscrevê-la com o mínimo de esforço.

  1. Obviamente, o Nginx deve ser instalado no sistema antes de iniciar as etapas neste guia. No entanto, ter o Nginx instalado não é suficiente, pois também requer a instalação de geo_ip_module. A Maxmind costumava lançar seu banco de dados em formato dat, mas desde há algum tempo é lançado em formato mmdb. Isso faz com que o Nginx exija um novo geo_ip_module chamado ngx_http_geoip2_module. No entanto, não é necessário, pois o banco de dados dat antigo ainda é suficiente. De qualquer forma, se o nginx não estiver instalado, configure-o com os dois comandos a seguir.
apt-get update
apt-get install nginx
  1. Digite o seguinte comando para se certificar de que o módulo http_geoip está instalado.
nginx -V

  1. Existem várias maneiras de adquirir / construir o banco de dados que contém endereços IP e seus respectivos países, nomes de cidades. Instale o banco de dados geo_ip com os seguintes comandos. O uso deste método facilita a instalação do banco de dados geo_Ip no sistema. No entanto, a maneira mais ideal é fazer o download de uma nova cópia à medida que são atualizados com as informações mais recentes. Portanto, use uma das três opções fornecidas abaixo. A primeira opção é suficiente para qualquer usuário médio, o 2WL opção é obter o banco de dados mais recente do maxmind, a terceira opção converte o banco de dados mmdb para seu respectivo formato de arquivo dat.
    É tempo e consome recursos e, portanto, não é recomendado para servidores fracos. No entanto, se o banco de dados atualizado ainda for necessário, use a opção 2. Isso economiza tempo e dinheiro na conversão do arquivo, mas a segurança não pode ser garantida, pois é convertido por outra pessoa, não por qualquer parte oficial. A opção 3 requer 3 pacotes pip, setuptools, ipaddr, dcryptit. E usa python 2 para processar o script. A última linha converte o arquivo zip para .arquivo dat. Embora seja mencionado sobre a conversão do formato de arquivo mmdb para .dat, aqui ele realmente converte um arquivo CSV em um .formato de arquivo dat e, portanto, requer geoname2fips.arquivo csv que vem junto com o pacote de arquivos de conversão.

Opção 1

apt-get install banco de dados geoip libgeoip1

opção 2

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

Opção 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 / share /
mkdir GeoIP /
cd / usr / share / GeoIP /
wget https: // geolite.maxmind.com / download / geoip / database / GeoLite2-Country-CSV.fecho eclair
pyton / home / geolite2legacy / geolite2legacy.py -i / usr / share / GeoIP / GeoLite2-Country-CSV.zip -f
/ home / geolite2legacy / geoname2fips.csv -o / usr / share / GeoIP / GeoLite2-Country.dat
  1. Configure o arquivo de configuração Nginx da seguinte forma. Digite o comando na primeira linha no terminal Linux como de costume e copie o resto das linhas para o nginx.arquivo conf. Certifique-se de que o nome mencionado em / usr / share / GeoIP / GeoIP.dat corresponde ao arquivo dat armazenado na pasta usr / share / GeoIP. Embora no exemplo a seguir especifique apenas um país, vários códigos de país podem ser especificados como o exemplo fornecido com uma linha por código de país. A lista de códigos de países disponíveis pode ser localizada neste local. http: // www.maxmind.com / app / iso3166.
nano / etc / nginx / nginx.conf
geoip_country / usr / share / GeoIP / GeoIP.dat;
map $ geoip_country_code $ allowed_country
padrão sim;
LK não;
  1. Abra o arquivo padrão por meio de qualquer editor de texto (o nano é preferível, pois é muito fácil de editar com ele) e, em seguida, adicione o conteúdo desde 2WL linha para qualquer lugar no bloco de localização no arquivo padrão. O código funciona assim, quando um visitante faz uma solicitação ao servidor web, o nginx busca seus endereços IP e combina com seus registros para encontrar o respectivo código do país, se o país mencionado no bloco do mapa corresponder, o não é atribuído ao A variável $ allowed_country, e assim verificar a $ allowed_country permite manipular a resposta. Neste guia, ele usa não e, portanto, o visitante é impedido de ver o conteúdo. Se houver vários domínios como .com, .lk ou nucuta.com ou nucuta.net adicione o código desde a linha 3 para cada “domínio”.arquivo conf também. Se o nginx estiver bem configurado, o arquivo para o respectivo domínio estará localizado na pasta disponível nos sites.
nano / etc / nginx / sites-available / default
if ($ allowed_country = no)
return 444;
  1. Reinicie o servidor nginx com o seguinte comando. A partir de agora, acessar o servidor web a partir de qualquer domínio sri lankan (LK) faz com que o servidor web não retorne nada, como visto nas seguintes imagens. 444 no nginx não representa nada. Qualquer outro código como 302, 301, 404 também pode ser usado aqui. Se 302.301 forem especificados, um URL para redirecionar o visitante também deverá ser especificado.
systemctl restart nginx

Conclusão

Bloquear visitantes com base em sua geografia é fundamental para o funcionamento de algumas empresas devido a várias regras e regulamentações regionais. Nginx atende a essas necessidades com seu módulo geo_ip. Ele usa bancos de dados maxmind para encontrar o país pelo endereço IP do visitante. O banco de dados funciona com Ipv4 e ipv6. Uma vez que maxmind descontinuou seu formato de banco de dados legado, a única maneira de fazer uso de seus dados é converter o novo formato de arquivo em arquivo dat ou usar um já convertido ou usar um módulo de terceiros para Nginx para suportar o formato de arquivo mmdb. O script python fornecido aqui é ideal para conversão, embora demore um pouco para ver o resultado. A Maxmind garante mais de 99% de precisão na localização do país com base no IP; portanto, é uma ferramenta obrigatória para qualquer negócio.

Jogos HD Remasterizados para Linux que nunca tiveram uma versão Linux anterior
Muitos desenvolvedores e editores de jogos estão apresentando remasterização em HD de jogos antigos para estender a vida da franquia, por favor, os fã...
Como usar o AutoKey para automatizar jogos Linux
AutoKey é um utilitário de automação de desktop para Linux e X11, programado em Python 3, GTK e Qt. Usando sua funcionalidade de script e MACRO, você ...
Como mostrar o contador de FPS em jogos Linux
Os jogos Linux tiveram um grande impulso quando a Valve anunciou o suporte Linux para o cliente Steam e seus jogos em 2012. Desde então, muitos jogos ...