> Manuales > Instalación y configuración de Apache

El módulo de control de acceso de apache permite controlar el acceso a los diferentes directorios y ficheros del servidor dependiendo del nombre de la máquina o dirección IP del cliente.

Las directivas que proporciona este módulo se pueden utilizar dentro de los elementos , y del fichero de configuración httpd.conf, o bien dentro de ficheros .htaccess ubicados dentro de las carpetas.

Las directivas con las que cuenta el módulo para permitir o denegar el acceso son:

  • Allow: controla los servidores que tendrán acceso al contenido, por ejemplo:
    Allow from desarrolloweb.comPermite el acceso desde desarrolloweb.com
    Allow from 192.168.0.1Permite el acceso desde 192.168.0.1
    Allow from 192.168Permite el acceso desde todas las direcciones Ip que comienzan por 192.168
    Allow from allPermitir todas
  • Deny: controla los servidores a los que se denegará el acceso, por ejemplo:
    Deny from desarrolloweb.comDeniega el acceso desde desarrolloweb.com
    Deny from 192.168.0.1Deniega el acceso desde 192.168.0.1
    Deny from 192.168Deniega el acceso desde todas las direcciones Ip que comienzan por 192.168
    Deny from allDenegar todas
  • Order: determina el orden en el que se leerán los permisos, por ejemplo para leer primero los permitidos y luego los no permitidos se pondrá "Allow,Deny" en este caso si un servidor esta en la lista de permitidos, y en la de denegados, el acceso al mismo será denegado, ya que la entrada dentro de la opción Deny sobrescribirá la de la entrada Allow.

Hay que tener en cuenta que el uso de order junto con Allow from all ó Deny from all, permite especificar configuraciones como, permitir desde una máquina x y denegar del resto, de una forma muy sencilla.

Adicionalmente, mediante la directiva SetEnvIf del módulo mod_setenvif, se pueden establecer variables de entorno que determinen el funcionamiento de Allow o Deny de la misma forma que se utilizan números IP ó nombres de máquinas. Por ejemplo, utilizando Allow from env=entrada permitirá el acceso a todas las peticiones que tengan definida la variable de entorno "entrada".

Controlar acceso dependiendo del navegador con Apache

Mediante el uso conjunto de las directivas Allow, Deny, Order y SetEnvIf se puede restringir el acceso a un sitio dependiendo del tipo de navegador. Para realizarlo simplemente basta con crear una variable de entorno dependiendo del tipo del navegador, y permitir el acceso a las peticiones que cuenten con esta variable de entorno denegándoselo al resto.
Para ello la configuración necesaria es la siguiente:

SetEnvId User-Agent googlebot entrar
Order Deny, Allow
Deny from all
Allow from env=entrar

En la primera línea se especifica que se creará una variable de entorno llamada entrar cuando el navegador sea el motor de indexación de google.

En la segunda línea se especifica el orden en el que se utilizará la lista de servidores, primero los denegados y luego los permitidos.
En la cuarta línea se especifica que se deniega el acceso a cualquier petición
En la quinta línea se especifica que se permite el acceso a las peticiones que tienen definida la variable de entorno entrar.

En el caso de que entre el motor de indexación de google, primero se leerá la línea en que se deniegan todas las peticiones, para a continuación leer la línea en la línea en la que se permite el acceso desde las peticiones que tienen definida la variable entrar, como el navegador que lo hace es el googlebot, esta variable estará definida y entrará.
En el caso en que la petición sea realizada por cualquier otro navegador, primero se leerá la línea en la que se deniegan las peticiones, y como no satisface la línea en que lo permite, no entrará

Carlos Luis Cuenca

Carlos es ingeniero informático por la UPM (Politécnico de Madrid), especializad...

Manual