Cargando



Nginx - Bloquear acceso por dirección IP

En este tutorial veremos como bloquear el acceso por dirección IP en Nginx para poder restringir el acceso a nuestro servicio para los terminales que deseemos que consuman nuestros recursos.


jun 21 2014 20:57
Profesional
ago 08 2016 20:44

Con el curso del tiempo cuando tenemos un sitio en vivo utilizando Nginx nos vamos dando cuenta de algunos comportamientos extraños por parte de algunas direcciones IP, generalmente estas direcciones pertenecen a robots o a agentes maliciosos que atacan nuestro servicio.

 

Si bien hemos visto como bloquear el acceso y el trafico utilizando el módulo GeoIP, también existe una forma más sencilla y directa de realizar este tipo de bloqueos, gracias a esto si no tenemos el módulo GeoIP disponible podemos hacer un buen set de reglas que nos permitan regular el acceso a nuestro sitio.

 

 

Lista Negra


El llevar la administración de un servidor conlleva que tengamos ciertas políticas que garanticen la seguridad de nuestros datos además de velar por el correcto rendimiento de nuestros recursos, un obstáculo que enfrentamos son los ataques y las consultas masivas por parte de bots, scripts exploradores o también de agentes maliciosos.

 

Por las causas anteriores debemos manejar una lista negra que nos permita bloquear direcciones IP que sabemos que tienen una estructura y que no pertenecen a tráfico orgánico para nuestros sitios servidos por Nginx.

 

Para construir estas listas negras podemos realizar bloqueos por IP o por conjunto de direcciones IP, de esta forma podremos paliar un poco la situación y tener un desarrollo del servicio más saludable.

 

¿Cómo Construir la Lista Negra?


Para construir nuestra lista negra debemos utilizar las reglas deny y allow de forma que podamos especificar los rangos de las IPs a bloquear o simplemente colocar direcciones específicas, esto debemos hacerlo con mucho cuidado ya que podemos bloquear a más usuarios de los deseados si no colocamos la regla correctamente.

 

Veamos en la siguiente imagen un código ejemplo de cómo hacer una configuración básica de bloqueo de acceso:

 

nginx_bloquear_acceso.jpg

 

En el código vemos como utilizamos deny para especificar una IP particular y luego con allow especificamos un rango de direcciones utilizando la sub-mascara /24, este ejemplo es muy utilizado cuando estamos segmentando un servicio dentro de una red local, de forma que un departamento no pueda conectarse al servicio que hospeda Nginx.

 

Importante
Otro de los aspectos que podemos combinar al utilizar este tipo de bloqueos es saber que error les debemos arrojar, por ejemplo si estamos bloqueando posibles ataques lo mejor es arrojar un error 404 de página no encontrada a fin de no estimular un ataque más fuerte si el atacante sabe que le están negando la entrada, pero en un entorno de red local tal vez lo más ideal sea que le indiquemos con un 403 que está accediendo a una zona restringida.

 

Para finalizar este tutorial vemos que realizar este tipo de bloqueo es muy sencillo y no dependemos de otros módulos, gracias a esto con una instalación estándar o reducida de Nginx podremos implementar nuestras políticas de seguridad.


¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X