En primer lugar, voy a suponer que te refieres a Apache 2.4 a pesar de la etiqueta "apache-2.2" ya que la sintaxis que has publicado es de 2.4.
De la documentación de Apache:
ip.address es una dirección IP, una dirección IP parcial, un par de red / máscara de red o una especificación CIDR de red / nnn.
Supongo que quiere decir que desea permitir un / 24 ya que la Clase D son direcciones de multidifusión, y las redes con clase murieron en los años 90. Para permitir un / 24, puede usar cualquiera de los siguientes:
Require ip 123.123.123
Require ip 123.123.123.0/255.255.255.0
Require ip 123.123.123.0/24
Personalmente, creo que el último es menos ambiguo que el primero y más fácil de leer que el segundo.
Puede encontrar útil esta sección de la documentación: http://httpd.apache.org/docs/2.4/howto/access.html#host
Require
tiene un soporte limitado en Apache 2.2, Apache 2.2 no es compatible con cualquiera de los dosRequire ip
o<RequireAny>
. Como se señaló en la Descripción general de las nuevas características en Apache HTTP Server 2.4 , "La lógica de autorización avanzada ahora se puede especificar utilizando laRequire
directiva y las directivas de contenedor relacionadas, como<RequireAll>
". Las primeras se encuentran entre las mejoras agregadas a Apache 2.4.En Apache 2.2 y versiones posteriores, puede trabajar con:
en su .htacess, directamente en el nivel base (no dentro de ninguno
<directive>
).A partir de Apache 2.4 y superior, aquí tienes:
(todos los números son ficticios, no te preocupes ;-).
Lo uso desde hace muchos años, para proteger mis carpetas de back-end contra el 99% de los usuarios potenciales. (Funciona muy bien, a menos que sea un ávido blogger mientras viaja. Si es un usuario de gmail: "última actividad de la cuenta" El enlace en la parte inferior es una manera cómoda de descubrir sus propios "hábitos IP").
fuente
Require ip 2a02:4126:2aa4::/48
yRequire ip 2a02:4126:2aa4::
? Ambos no producen errores de sintaxis para mí, pero solo el primero funciona.Tomando nota de que ahora se haya confirmado utilizando Apache 2.2 , Apache 2.2 no es compatible con cualquiera
Require ip
o<RequireAny>
. Como se señaló en la Descripción general de las nuevas características en Apache HTTP Server 2.4 , "La lógica de autorización avanzada ahora se puede especificar utilizando laRequire
directiva y las directivas de contenedor relacionadas, como<RequireAll>
". Las primeras se encuentran entre las mejoras agregadas a Apache 2.4.Para lidiar con esto en Apache 2.2, probablemente deba hacer algo como:
que obtendrá todo el rango especificado.
fuente
Nota: estoy dejando esto aquí ya que otros podrían beneficiarse de él; No es una respuesta directa a la pregunta.
Por ejemplo:
Requerir ip 192.168.100.0/22
funciona, mientras
Requerir ip 192.168.100.0/22 #localnetwork
falla!
Reinicio de salidas httpd:
El trabajo para httpd.service falló porque el proceso de control salió con el código de error. Consulte "estado de systemctl httpd.service" y "journalctl -xe" para más detalles.
Entonces, parece que no se permiten comentarios en esa línea .
fuente
La directiva Requerir de Apache se usa durante la fase de autorización para garantizar que un usuario tenga permiso o no acceso a un recurso. mod_authz_host extiende los tipos de autorización con ip, host, forward-dns y local. También se pueden usar otros tipos de autorización, pero pueden requerir que se carguen módulos de autorización adicionales.
Estos proveedores de autorización afectan qué hosts pueden acceder a un área del servidor. El acceso puede controlarse por nombre de host, dirección IP o rango de direcciones IP.
Desde v2.4.8, las expresiones admitidas en el host requieren directivas. Requerir ip
El proveedor de ip permite controlar el acceso al servidor en función de la dirección IP del cliente remoto. Cuando se especifica Requerir dirección IP IP, entonces se permite el acceso a la solicitud si la dirección IP coincide.
Una dirección IP completa:
Una dirección IP de un host con acceso permitido
Una dirección IP parcial:
Los primeros 1 a 3 bytes de una dirección IP, para restricción de subred.
Un par de red / máscara de red:
Una red abcd y una máscara de red wxyz Para una restricción de subred más precisa.
Una especificación de red / nnn CIDR:
Similar al caso anterior, excepto que la máscara de red consiste en nnn 1 bits de orden superior.
Tenga en cuenta que los últimos tres ejemplos anteriores coinciden exactamente con el mismo conjunto de hosts.
Las direcciones IPv6 y las subredes IPv6 se pueden especificar como se muestra a continuación:
Nota: Como las direcciones IP se analizan al inicio, las expresiones no se evalúan en el momento de la solicitud.
Fuente: https://httpd.apache.org/docs/trunk/mod/mod_authz_host.html
fuente