Restricción de acceso a tu sitio con Nginx

Filtrado de IP, protección con contraseña y bloqueo de solicitudes — todo en un mismo lugar.

Controlar quién puede acceder a qué en tu servidor es una parte fundamental para mantener una aplicación web segura. Nginx te ofrece un conjunto de herramientas sólido: reglas simples basadas en IP, HTTP Basic Auth, políticas de acceso combinadas y mucho más.

Consejo

En los VPS y los servidores dedicados tienes control total sobre la configuración de Nginx y puedes aplicar cualquiera de los métodos descritos a continuación.

1. Bloquear el acceso a directorios sensibles

Para impedir el acceso directo a directorios como .svn que no deberían ser públicos:

location ~ /.svn/ {
    deny all;
}

2. Control de acceso basado en IP

Usa allow y deny para crear una lista blanca en secciones específicas de tu sitio:

location /server-status {
    allow 111.111.111.111;
    allow 11.11.11.11;
    deny all;
}

Solo las IPs listadas tienen acceso — el resto es rechazado.

3. Protección con contraseña (HTTP Basic Auth)

¿Necesitas poner una pantalla de login delante de una sección privada? Esta es la forma más directa:

location /admin/ {
    auth_basic "Enter password to access";
    auth_basic_user_file /etc/nginx/basic.auth;
}

4. Protección combinada: lista blanca de IP + contraseña

La directiva satisfy any permite el acceso a un visitante si supera cualquiera de las comprobaciones — IP de confianza o credenciales válidas. Útil cuando quieres que tu equipo acceda sin contraseña, pero también quieres dar acceso a quienes la conocen:

location /admin/ {
    satisfy any;
    allow 111.111.111.111;
    allow 11.11.11.11;
    deny all;

    auth_basic "Enter password to access";
    auth_basic_user_file /etc/nginx/basic.auth;
}

Nuestros servicios y productos

HostingFunciona en discos NVMe ultrarrápidos. Apto para sitios web de cualquier complejidad.
Pedir
VPSParámetros ajustables y configuración flexible del SO. Administración gratuita incluida.
Pedir
Servidores dedicadosDisponibles diversas configuraciones Supermicro con procesadores Intel y AMD.
Pedir

5. Devolver 404 para archivos estáticos inexistentes

Evita que Nginx filtre información sobre la estructura de tu servidor devolviendo un 404 limpio para cualquier archivo estático que no exista en disco:

location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
    try_files $uri =404;
}

6. Redirección basada en IP

Puedes redirigir visitantes de forma condicional según el origen de su solicitud:

location / {
    if ($remote_addr != 111.111.111.111) {
        return 301 https://$host$request_uri;
    }
}

Todas las solicitudes que no provengan de 111.111.111.111 serán redirigidas a https://$host$request_uri.

7. Protección contra fuerza bruta con iptables

Para una capa adicional de defensa a nivel de red, puedes usar iptables para bloquear temporalmente las IPs que bombardean tu servidor con demasiadas solicitudes:

iptables -A INPUT -p tcp --syn --dport 80 -i eth0 -m state --state NEW \
    -m recent --name bhttp --set
iptables -A INPUT -p tcp --syn --dport 80 -i eth0 -m state --state NEW \
    -m recent --name bhttp --update --seconds 120 \
    --hitcount 360 -j DROP
iptables -A INPUT -p tcp --syn --dport 80 -i eth0 -j ACCEPT

Esta regla bloquea cualquier IP que abra más de 360 nuevas conexiones en una ventana de 120 segundos.

Aplicar los cambios

Tras editar la configuración de Nginx, recarga el servicio para aplicar los cambios sin interrumpir las conexiones activas:

systemctl reload nginx
# o bien
service nginx reload

Ayuda

¿Tienes dudas o necesitas ayuda? Escríbenos a través del sistema de tickets — siempre estamos aquí para ayudarte!

¿Necesitas ayuda?Nuestros ingenieros te ayudarán gratuitamente con cualquier pregunta en minutosContáctanos