Nginx

Bloque NGINX basado en ubicación geográfica

Bloque NGINX basado en ubicación geográfica
Nginx es un servidor web de código abierto, liviano y de alto rendimiento disponible para el público de forma gratuita. Tiene una gran cantidad de características valiosas en comparación con otros servidores ligeros. Una de esas características es su geoip_module, que se utiliza para identificar la ubicación geográfica de donde viene el visitante. De forma predeterminada, se utiliza en combinación con los datos proporcionados por maxmind para averiguar la ubicación geográfica del visitante. La ventaja de identificar la ubicación geográfica es hacer cumplir diferentes políticas en diferentes ubicaciones geográficas, por ejemplo, si una empresa solo está disponible para países de América del Norte, con geoip_module puede bloquear a todos los demás visitantes que vienen de otras regiones. Esto garantiza que la empresa no tenga que cumplir con las reglas y regulaciones impuestas por diferentes regiones, como GDPR (Reglamento general de protección de datos).

Implementación

Aunque hay muchas formas de implementar la solución en el sistema, esta guía muestra la forma más sencilla de inscribirla con el mínimo esfuerzo.

  1. Obviamente, Nginx debe estar instalado en el sistema antes de iniciar los pasos de esta guía. Sin embargo, tener Nginx instalado no es suficiente, ya que también requiere la instalación de geo_ip_module. Maxmind solía lanzar su base de datos en formato dat, pero desde hace un tiempo se lanza en formato mmdb. Esto hace que Nginx requiera un nuevo geo_ip_module llamado ngx_http_geoip2_module. Sin embargo, no es necesario ya que la antigua base de datos dat todavía es suficiente. De todos modos, si nginx no está instalado, configúrelo con los siguientes dos comandos.
apt-get update
apt-get install nginx
  1. Escriba el siguiente comando para asegurarse de que el módulo http_geoip esté instalado.
nginx -V

  1. Hay varias formas de adquirir / construir la base de datos que contiene direcciones IP y sus respectivos países, nombres de ciudades. Instale la base de datos geo_ip con los siguientes comandos. El uso de este método facilita la instalación de la base de datos geo_Ip en el sistema. Sin embargo, la forma más ideal es descargar una copia nueva, ya que se actualizan con la información más reciente. Entonces, use una de las tres opciones que se detallan a continuación. La primera opción es suficiente para cualquier usuario medio, la 2Dakota del Norte la opción es obtener la última base de datos de maxmind, la tercera opción convierte la base de datos mmdb a su formato de archivo dat respectivo.
    Es tiempo y consume recursos y, por lo tanto, no se recomienda para servidores débiles. Sin embargo, si aún se necesita una base de datos actualizada, utilice la opción 2. Ahorra tiempo y dinero al convertir el archivo, pero la seguridad no se puede garantizar, ya que la convierte otra persona, no una entidad oficial. La opción 3 requiere paquetes de 3 pip, setuptools, ipaddr, dcryptit. Y usa Python 2 para procesar el script. La última línea convierte el archivo zip a .archivo dat. Aunque se menciona la conversión del formato de archivo mmdb a .dat, aquí realmente convierte un archivo CSV en un .formato de archivo .dat, por lo que requiere geoname2fips.csv que viene junto con el paquete de archivos de conversión.

Opción 1

apt-get install geoip-database libgeoip1

opcion 2

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

Opcion 3

cd / inicio /
mkdir geolite2legacy /
clon de git https: // github.com / sherpya / geolite2legacy
apt-get install python
apt-get install python-pip
pip install setuptools
pip instalar ipaddr
pip instalar dcryptit
cd / usr / compartir /
mkdir GeoIP /
cd / usr / share / GeoIP /
wget https: // geolita.maxmind.com / download / geoip / database / GeoLite2-Country-CSV.Código Postal
pyton / inicio / geolite2legacy / geolite2legacy.py -i / usr / share / GeoIP / GeoLite2-Country-CSV.zip -f
/ inicio / geolite2legacy / geoname2fips.csv -o / usr / share / GeoIP / GeoLite2-Country.eso
  1. Configure el archivo de configuración de Nginx de la siguiente manera. Escriba el comando en la primera línea en la terminal de Linux como de costumbre y copie el resto de las líneas en el nginx.conf archivo. Asegúrese de que el nombre mencionado en / usr / share / GeoIP / GeoIP.eso coincide con el archivo dat almacenado en la carpeta usr / share / GeoIP. Aunque en el siguiente ejemplo, especifica solo un país, se pueden especificar varios códigos de país como el ejemplo dado con una línea por código de país. La lista de códigos de países disponibles para países se puede encontrar en esta ubicación. http: // www.maxmind.com / app / iso3166.
nano / etc / nginx / nginx.conf
geoip_country / usr / share / GeoIP / GeoIP.dat;
mapa $ geoip_country_code $ allowed_country
por defecto sí;
LK no;
  1. Abra el archivo predeterminado a través de cualquier editor de texto (se prefiere nano ya que es bastante fácil de editar con él), luego agregue el contenido desde 2Dakota del Norte línea a entre en cualquier lugar del bloque de ubicación en el archivo predeterminado. El código funciona así, cuando un visitante realiza una solicitud al servidor web, nginx busca sus direcciones IP y las coincide con sus registros para encontrar el código de país respectivo, si el país mencionado en el bloque del mapa coincide, el no se asigna al $ allowed_country variable y, por lo tanto, la verificación de $ allowed_country permite manipular la respuesta. En esta guía se usa no, por lo que el visitante no puede ver el contenido. Si hay varios dominios como .com, .lk o nucuta.com o nucuta.net agregue el código desde la línea 3 a cada "dominio".conf archivo también. Si nginx está bien configurado, el archivo al dominio respectivo se encuentra en la carpeta de sitios disponibles.
nano / etc / nginx / sites-available / default
si ($ país_permitido = no)
return 444;
  1. Reinicie el servidor nginx con el siguiente comando. De ahora en adelante, acceder al servidor web desde cualquier dominio de Sri Lanka (LK) hace que el servidor web no devuelva nada como se ve en las siguientes capturas de pantalla. 444 en nginx no representa nada. Cualquier otro código, como 302, 301, 404, también se puede utilizar aquí. Si se especifica 302,301, también se debe especificar una URL para redirigir al visitante.
systemctl reiniciar nginx

Conclusión

El bloqueo de visitantes en función de su geografía es fundamental para el funcionamiento de algunas empresas debido a diversas reglas y regulaciones regionales. Nginx satisface tales necesidades con su módulo geo_ip. Utiliza bases de datos maxmind para encontrar el país por la dirección IP del visitante. La base de datos funciona tanto con Ipv4 como con ipv6. Dado que maxmind descontinuó su formato de base de datos dat heredado, la única forma de hacer uso de sus datos es convertir el nuevo formato de archivo a un archivo dat o usar uno ya convertido o usar un módulo de terceros para que Nginx admita el formato de archivo mmdb. La secuencia de comandos de Python que se proporciona aquí es ideal para la conversión a pesar de que lleva un tiempo ver el resultado. Maxmind garantiza más del 99% de precisión para encontrar el país en función de la IP; por lo tanto, es una herramienta imprescindible para cualquier negocio.

Cómo capturar y transmitir su sesión de juego en Linux
En el pasado, los juegos solo se consideraban un pasatiempo, pero con el tiempo la industria del juego experimentó un gran crecimiento en términos de ...
Los mejores juegos para jugar con el seguimiento de manos
Oculus Quest presentó recientemente la gran idea del seguimiento manual sin controladores. Con un número cada vez mayor de juegos y actividades que ej...
Cómo mostrar la superposición de OSD en aplicaciones y juegos de Linux en pantalla completa
Jugar juegos en pantalla completa o usar aplicaciones en modo de pantalla completa sin distracciones puede aislarlo de la información relevante del si...