Bloquear direcciones IP con Nginx

 

Generalidades

Este artículo explica cómo crear un archivo de configuración personalizado para controlar el acceso IP a tu sitio web que se ejecuta en un servidor Nginx. Esto se logra utilizando el módulo location de Nginx.

Los usuarios cuya dirección IP esté bloqueada verán un error 403 Forbidden cuando visiten tu sitio web.

Requisitos previos

Este artículo asume que has completado los siguientes pasos:

Crear el archivo de configuración

Los siguientes pasos crean un archivo llamado access.conf, que se utiliza para agregar los ejemplos de código en este artículo.

  1. Revisa el artículo Ubicaciones de archivos de configuración de Nginx para crear tu directorio local /nginx/example.com.
  2. Cambia a este directorio:
    [server]$ cd ~/nginx/example.com
  3. Crea un archivo llamado access.conf.
  4. Agrega el código de uno de los ejemplos a continuación.
  5. Recarga Nginx para que los cambios surtan efecto.

Ejemplos de código

Los siguientes ejemplos se pueden agregar a tu archivo access.conf según sea necesario.

Para ver las direcciones IP que han visitado tu sitio web, revisa el archivo access.log del mismo.

Bloquear una IP a tu sitio

El siguiente código bloquea la dirección IP 1.2.3.4 para que no acceda a tu sitio web.

  • La barra diagonal / indica todo tu sitio web.
  • La directiva deny controla qué se bloquea.
location / {
  deny 1.2.3.4;
}

Bloquear una IP a un subdirectorio

El siguiente código bloquea la dirección IP de 1.2.3.4 para que no acceda a un subdirectorio de tu sitio llamado /blog:

location /blog/ {
  deny 1.2.3.4;
}

Permitir que solo una única dirección IP acceda a tu sitio web

El siguiente código permite que solo la dirección IP 1.2.3.4 acceda a tu sitio web, bloqueando todas las demás. Esto puede ser útil si estás construyendo tu sitio web y no deseas que nadie lo vea mientras está en desarrollo.

La línea deny all; debe aparecer después de todas las direcciones IP en la lista.

Si está en la primera línea, TODAS las direcciones IP serán bloqueadas.

location / {
  allow 1.2.3.4;
  deny all;
}

Múltiples reglas

También puedes combinar múltiples reglas. El siguiente ejemplo permite que una sola dirección IP acceda al subdirectorio /blog mientras bloquea a todas las demás desde la URL principal del sitio web:

location /blog {
  allow 1.2.3.4;
  deny all;
}

location / {
  deny all;
}

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?