<-
Apache > Servidor HTTP > Documentaci�n > Versi�n 2.4 > How-To / Tutoriales

Control de Acceso

Idiomas disponibles:  en  |  es  |  fr 

El control de acceso, hace referencia a todos los medios que proporcionan una forma de controlar el acceso a cualquier recurso. Esta parte est� separada de autenticaci�n y autorizaci�n.

Support Apache!

Consulte tambi�n

top

M�dulos y Directivas relacionados

El control de acceso puede efectuarse mediante diferentes m�dulos. Los m�s importantes de �stos son mod_authz_core y mod_authz_host. Tambi�n se habla en este documento de el control de acceso usando el m�dulo mod_rewrite.

top

Control de Acceso por host

Si lo que se quiere es restringir algunas zonas del sitio web, bas�ndonos en la direcci�n del visitante, esto puede ser realizado de manera f�cil con el m�dulo mod_authz_host.

La directiva Require proporciona una variedad de diferentes maneras de permitir o denegar el acceso a los recursos. Adem�s puede ser usada junto con las directivas:RequireAll, RequireAny, y RequireNone, estos requerimientos pueden ser combinados de forma compleja y arbitraria, para cumplir cualquiera que sean tus pol�ticas de acceso.

Las directivas Allow, Deny, y Order, proporcionadas por mod_access_compat, est�n obsoletas y ser�n quitadas en futuras versiones. Deber� evitar su uso, y tambi�n los tutoriales desactualizaos que recomienden su uso.

El uso de estas directivas es:

Require host address 
Require ip ip.address

En la primera l�nea, address es el FQDN de un nombre de dominio (o un nombre parcial del dominio); puede proporcionar m�ltiples direcciones o nombres de dominio, si se desea.

En la segunda l�nea, ip.address es la direcci�n IP, una direcci�n IP parcial, una red con su m�scara, o una especificaci�n red/nnn CIDR. Pueden usarse tanto IPV4 como IPV6.

Consulte tambi�n la documentaci�n de mod_authz_host para otros ejemplos de esta sintaxis.

Puede ser insertado not para negar un requisito en particular. Note que, ya que not es una negaci�n de un valor, no puede ser usado por si solo para permitir o denegar una petici�n, como not true que no contituye ser false. En consecuencia, para denegar una visita usando una negaci�n, el bloque debe tener un elemento que se eval�a como verdadero o falso. Por ejemplo, si tienes a alguien espameandote tu tabl�n de mensajes, y tu quieres evitar que entren o dejarlos fuera, puedes realizar lo siguiente:

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

Los visitantes que vengan desde la IP que se configura (10.252.46.165) no tendr�n acceso al contenido que cubre esta directiva. Si en cambio, lo que se tiene es el nombre de la m�quina, en vez de la IP, podr�s usar:

Require not host host.example.com
    

Y, Si lo que se quiere es bloquear el acceso desde dominio especifico, podr�s especificar parte de una direcci�n o nombre de dominio:

Require not ip 192.168.205
Require not host phishers.example.com moreidiots.example
Require not host gov

Uso de las directivas RequireAll, RequireAny, y RequireNone pueden ser usadas para forzar requisitos m�s complejos.

top

Control de acceso por variables arbitrarias.

Haciendo el uso de <If>, puedes permitir o denegar el acceso basado en variables de entrono arbitrarias o en los valores de las cabeceras de las peticiones. Por ejemplo para denegar el acceso bas�ndonos en el "user-agent" (tipo de navegador as� como Sistema Operativo) puede que hagamos lo siguiente:

<If "%{HTTP_USER_AGENT} == 'BadBot'">
    Require all denied
</If>

Usando la sintaxis de Require expr , esto tambi�n puede ser escrito de la siguiente forma:

Require expr %{HTTP_USER_AGENT} != 'BadBot'

Advertencia:

El control de acceso por User-Agent es una t�cnica poco fiable, ya que la cabecera de User-Agent puede ser modificada y establecerse al antojo del usuario.

Vea tambi�n la p�gina de expresiones para una mayor aclaraci�n de que sintaxis tienen las expresiones y que variables est�n disponibles.

top

Control de acceso con mod_rewrite

El flag [F] de RewriteRule causa una respuesta 403 Forbidden para ser enviada. USando esto, podr� denegar el acceso a recursos bas�ndose en criterio arbitrario.

Por ejemplo, si lo que desea es bloquear un recurso entre las 8pm y las 7am, podr� hacerlo usando mod_rewrite:

RewriteEngine On
RewriteCond "%{TIME_HOUR}" ">=20" [OR]
RewriteCond "%{TIME_HOUR}" "<07"
RewriteRule "^/fridge"     "-"       [F]

Esto devolver� una respuesta de error 403 Forbidden para cualquier petici�n despu�s de las 8pm y antes de las 7am. Esta t�cnica puede ser usada para cualquier criterio que desee usar. Tambi�n puede redireccionar, o incluso reescribir estas peticiones, si se prefiere ese enfoque.

La directiva <If>, a�adida en la 2.4, sustituye muchas cosas que mod_rewrite tradicionalmente sol�a hacer, y deber� comprobar estas antes de recurrir a

top

M�s informaci�n

El motor de expresiones le da una gran capacidad de poder para hacer una gran variedad de cosas basadas en las variables arbitrarias del servidor, y debe consultar este documento para m�s detalles.

Tambi�n, deber� leer la documentaci�n de mod_authz_core para ejemplos de combinaciones de m�ltiples requisitos de acceso y especificar c�mo interact�an.

Vea tambi�n los howtos de Authenticaci�n y Autorizaci�n

Idiomas disponibles:  en  |  es  |  fr 

top

Comentarios

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.