Descripción: Controla qué hosts pueden acceder a un área del servidor Sintaxis: Permitir desde todos|host|env=env-variable [host|env=env-variable]...
Contexto: directorio, .htaccess
Cobertura: Límite
Estado: Base
Módulo: mod_access
La directiva Allow afecta qué hosts pueden acceder a un área del servidor. El acceso se puede controlar utilizando las características de solicitud del cliente capturadas en nombres de host, direcciones IP, rangos de direcciones IP u otras variables de entorno.
El primer parámetro de esta directiva es siempre from. Los parámetros siguientes pueden adoptar tres formas diferentes. Si se especifica Permitir desde todos, se permite el acceso a todos los hosts, lo que requiere que se configuren las directivas Denegar y Ordenar como se explica a continuación. Para permitir que solo un subconjunto específico de hosts o grupos de hosts accedan al servidor, el host se puede especificar en cualquiera de los siguientes formatos:
Un nombre de dominio (parte)
Ejemplo: Permitir desde apache.org
Permitir el acceso a hosts cuyos nombres coincidan o terminen con la cadena dada. Solo coinciden los componentes del nombre completo, por lo que el ejemplo anterior coincidirá con foo.apache.org pero no con fooapache.org. Dicha configuración hará que el servidor realice una operación de búsqueda inversa de nombres de dominio en la dirección IP del cliente independientemente de si la directiva HostnameLookups establece la dirección IP completa. Ejemplo: Permitir desde 10.1.2.3.
Permitir el acceso desde una dirección IP de un host.
Algunos ejemplos de direcciones IP: Permitir desde 10.1
Los primeros 1 a 3 bytes de la dirección IP se utilizan para restricciones de subred.
Ejemplo de par de red/máscara: Permitir desde 10.1.0.0/255.255.0.0
una red abcd y una máscara wxyz. Para restricciones de subred más precisas.
Network/nnn Sin ejemplo de especificación de enrutamiento dentro del área: Permitir desde 10.1.0.0/16
Similar al caso anterior, excepto que la máscara consta de nnn bytes 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 así:
Permitir desde fe80::a00:20ff:fea7:ccea
Permitir desde fe80::a00:20ff:fea7:ccea/10
El tercer formato de parámetro de la directiva Allow permite el acceso al servidor especificado por una extensión de la variable de entorno. Cuando se especifica Permitir desde env=env-variable, la solicitud de acceso se permite si la variable de entorno env-variable existe. Utilizando las directivas proporcionadas por mod_setenvif, el servidor brinda la capacidad de configurar variables de entorno de manera flexible según las solicitudes del cliente. Por lo tanto, esta directiva se puede utilizar para permitir el acceso basado en campos como User-Agent (tipo de navegador), Referer u otros campos de encabezado de solicitud HTTP.
ejemplo:
SetEnvIf Usuario-Agente ^KnockKnock/2.0 let_me_in
<Directorio /docroot>
Orden denegar, permitir
Negar de todos
Permitir desde env=let_me_in
</Directorio>
En este caso, se permitirá el acceso a los navegadores que envíen identificadores de agente de usuario que comiencen con KnockKnock/2.0, mientras que se bloquearán todos los demás navegadores.
Descripción de la instrucción Denegar: controla qué hosts tienen prohibido acceder al servidor Sintaxis: Denegar desde todos|host|env=env-variable [host|env=env-variable]...
Contexto: directorio, .htaccess
Cobertura: Límite
Estado: Base
Módulo: mod_access
Esta directiva permite restringir el acceso al servidor según el nombre de host, la dirección IP o las variables de entorno. La configuración de los parámetros del comando Denegar es exactamente la misma que la del comando Permitir.
Descripción de la instrucción de orden: controla el estado de acceso predeterminado y el orden en que se evalúan las instrucciones Permitir y Denegar.
Sintaxis: ordenar pedidos
Valor predeterminado: Orden denegada, Permitir
Contexto: directorio, .htaccess
Cobertura: Límite
Estado: Base
Módulo: mod_access
La directiva Orden controla el estado de acceso predeterminado y el orden en que se evalúan las directivas Permitir y Denegar. Realizar un pedido es uno de los siguientes ejemplos:
Denegar, Permitir
Las instrucciones de denegar se evalúan antes que las instrucciones de permitir. Todo el acceso está permitido de forma predeterminada. Cualquier cliente que no coincida con la directiva Deny o que coincida con la directiva Allow puede acceder al servidor.
Permitir, denegar
La directiva Allow se evalúa antes que la directiva Deny. Todo acceso está prohibido de forma predeterminada. Cualquier cliente que no coincida con la directiva Permitir o coincida con la directiva Denegar tendrá prohibido acceder al servidor.
fracaso mutuo
Solo se permite el acceso a los hosts que aparecen en la lista Permitir y no en la lista Denegar. Esta orden tiene el mismo efecto que Permitir, Denegar Orden y está en desuso. ¿Qué configuración incluye?
Las palabras clave sólo pueden estar separadas por comas; no puede haber espacios entre ellas. Tenga en cuenta que cada declaración directiva Permitir y Denegar se evaluará en todos los casos.
En el siguiente ejemplo, se permite el acceso a todos los hosts del dominio apache.org, mientras que se deniega el acceso a cualquier otro host.
Orden denegar, permitir
Negar de todos
Permitir desde apache.org
En el siguiente ejemplo, se permite el acceso a todos los hosts del dominio apache.org, excepto a los hosts contenidos en el subdominio foo.apache.org, a los que se les deniega el acceso. Todos los hosts que no estén en el dominio apache.org no pueden acceder, porque el estado predeterminado es denegar el acceso al servidor.
Orden Permitir, Denegar
Permitir desde apache.org
Denegar desde foo.apache.org
Por otro lado, si la directiva Orden en el ejemplo anterior se cambia a Denegar, Permitir, se permitirá el acceso desde todos los hosts. Esto se debe a que, independientemente del orden real de las directivas en el archivo de configuración, la directiva Permitir de apache.org se evaluará en último lugar y sobrescribirá la directiva Denegar de foo.apache.org anterior. A todos los hosts que no estén en el dominio apache.org también se les permite el acceso porque el estado predeterminado se ha cambiado para permitir.
Incluso si no va acompañada de instrucciones Permitir y Denegar, la existencia de una instrucción Orden afectará el acceso a una determinada parte del servidor. Esto se debe a su impacto en el estado de acceso predeterminado. Por ejemplo,
<Directorio /www>
Orden Permitir, Denegar
</Directorio>
Esto deshabilitará todo acceso al directorio /www, ya que el estado predeterminado será denegar.
La directiva Orden controla el procesamiento de instrucciones de acceso solo dentro de cada segmento de la configuración del servidor. Esto significa que, por ejemplo, una directiva Permitir o Denegar que aparece en una sección <Ubicación> siempre se evaluará después de una directiva Permitir o Denegar que aparece en una sección <Directorio> o archivo .htaccess, independientemente de la configuración en la directiva Orden. Por qué. Para obtener detalles sobre cómo fusionar secciones de configuración, consulte Cómo funcionan las secciones Directorio, Ubicación y Archivos.