Nginx bloquear peticiones segun ubicacion geografica con GeoIP

Nginx 9 de dic. de 2018

hola a todos hoy vemos algo que estaba probando con nginx en un servidor asi que les comparto este experimento.

bueno para que funcione tienes que tener un servidor con nginx ya instalado.

mas informacion esta en el siguiente enlace que les dejo aca click

bueno ahora para ver un ejemplo rapido hacemos lo siguiente.

El módulo GeoIP (ngx_http_geoip_module) necesita unas bases de datos precompiladas de MaxMind que contiene los rangos de IPs por países y ciudades. Para utilizarlas, primero tenemos que descargar las BBDD (bases de datos) en la carpeta /etc/nginx/geoip:

mkdir /etc/nginx/geoip
cd /etc/nginx/geoip

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

gunzip GeoIP.dat.gz
gunzip GeoLiteCity.dat.gz

bueno ahora lo que hacemos es agregar unas lineas de geoip en nginx.conf

http {
 #GeoIP
 geoip_country /etc/nginx/geoip/GeoIP.dat;
 geoip_city /etc/nginx/geoip/GeoLiteCity.dat;
 }

y ahora definimos paises o ciudades a bloquear

http {

 map $geoip_country_code $paises_permitidos {
     default no;
     BO yes;
     # Si quereis añadir mas paises, los podeis añadir aqui
 }

De esta manera, solo estariamos permitiendo el acceso a las IPs de nuestro pais.

$geoip_country_code → es una variable del modulo GeoIP, nos devuelve un codigo de pais de dos letras, por ejemplo, “RU”, “US”

$paises_permitidos → es la variable que estamos creando con los paises permitidos

Si quieres bloquear por ciudades tendrias que utilizar $geoip_city en vez de $geoip_country_code ver la siguiente documentacion

bueno hay muchas mas opciones asi que solo comparto esta parte hasta otro post !

Etiquetas

¿Te gustó el contenido o lo que hacemos? ¡Cualquier colaboración es agradecida para mantener los servidores o crear proyectos!

Owen-Wilson

Siempre Aprendiendo de uno mismo y de los demás !!

Comentarios:

¡Genial! Te has suscrito con éxito.
¡Genial! Ahora, completa el checkout para tener acceso completo.
¡Bienvenido de nuevo! Has iniciado sesión con éxito.
Éxito! Su cuenta está totalmente activada, ahora tienes acceso a todo el contenido.