"Requerir no ip" .htaccess no funciona en una sola ip

"Requerir no ip" .htaccess no funciona en una sola ip

Tengo problemas para bloquear una IP en .htaccess

He puesto

Require not ip 192.168.20.218

Funciona, pero bloquea toda la red en lugar de bloquear una única IP.

¿Alguien puede resolver este problema?

Estoy ejecutando Apache 2.4 usando Ubuntu 14.04.3 LTS

ACTUALIZAR:El escenario es así, estoy usando IP 192.168.20.218en mi computadora, estoy intentando hacer una prueba para bloquear esta dirección IP, intenté:

<RequireAll> 
Require all granted 
Require not ip 192.168.20.218 
</RequireAll>

Lo cual se supone que bloquea mi acceso, pero aún así me permite acceder a la página. Si lo saco, Require all grantedbloquea toda la red.

Respuesta1

No puedes usar unnegadodirectiva por sí sola para autorizar el acceso. Como se señala enla documentación:

El resultado de la Requiredirectiva puede anularse mediante el uso de la notopción. Al igual que con la otra directiva de autorización denegada <RequireNone>,Cuando Requirese niega la directiva, sólo puede fallar o devolver un resultado neutral y, por lo tanto, nunca puede autorizar de forma independiente una solicitud..

Deberías hacer algo como lo siguiente en su lugar:

<RequireAll>
Require all granted
Require not ip 192.168.20.218
</RequireAll>

Por lo tanto, permite a todos y excluye una dirección IP en particular.

El <RequireAll>contenedor, como su nombre indica, requiere que se cumplan todas las directivas contenidas.

Respuesta2

Tuve este problema. Olvidé que tenía un proxy inverso nginx. La IP que entró en Apache fue la IP del proxy inverso de nginx. En cambio, tuve que configurar un encabezado personalizado en el proxy inverso que contuviera la IP verdadera y luego verificar este encabezado en .htaccess en lugar de verificar la IP.

información relacionada