
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.218
en 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 granted
bloquea 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
Require
directiva puede anularse mediante el uso de lanot
opción. Al igual que con la otra directiva de autorización denegada<RequireNone>
,CuandoRequire
se 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.