Restricciones de IP

Hasta el momento hemos visto como restringir los tipos de aplicaciones que Apache puede usar (con los módulos), que a su vez determina en gran medida el tipo de páginas que puede manejar y las tecnologías de creación de páginas web que puede gestionar (PHP, Java, Python, ...). También hemos hablado de los tipos de ficheros que Apache puede servir o no gracias a la gestión de los tipos MIME. En esta sección hablaremos de una tercera restricción adicional: como restringir quiénes pueden acceder a los contenidos, limitando los usuarios (o equipos) que pueden acceder a determinados contenidos.

—El módulo mod_access (renombrado a mod_authz_host a partir de la versión 2.2 de Apache) es el encargado de estas funciones, y proporciona control de acceso basado en el nombre del host, dirección IP u otras características de la petición del cliente (capturadas mediante variables de entorno).— Las directivas de mod_access pueden aplicarse dentro de secciones <Directory>, <Files>, <Location> y en ficheros .htaccess, permitiendo así limitar el acceso al nivel que deseemos. De esta forma, el acceso se puede controlar sólo en ciertas partes del servidor o en el servidor completo.

La gestión del acceso se hace mediante las siguientes directivas:

  • Allow y Deny: Especifican a qué clientes se les permite o no acceder a esa parte del servidor.
  • Order: Controla el estado de acceso por defecto y el orden de evaluación:
    • — Order allow,deny:
      • Primero se evalúan todas las directivas Allow
      • Al menos una debe encajar, en caso contrario se deniega el acceso
      • Después se evalúan todas las directivas Deny, si una encaja se deniega el acceso
      • Por último, todas las peticiones que no encajen con ninguna directiva anterior se deniegan por defecto
    • —Order deny,allow:
      • Primero se evalúan todas las directivas Deny
      • Si alguna encaja la petición se deniega salvo que encaje también en una directiva Allow
      • Todas las peticiones que no encajen con ninguna directiva son permitidas (¡CUIDADO!)
  • žDirectiva Satisfy: Si un sitio está protegido por el mecanismo que estamos describiendo y por password proveniente de un módulo de autenticación, especifica si se deben satisfacer ambas restricciones (autenticación o autorización) o solo una de ellas. Podemos encontrar más información en: http://httpd.apache.org/docs/2.2/mod/core.html#satisfy

žLa siguiente imagen muestra un ejemplo de cómo se usan estas directivas en el fichero apache2.conf de una instalación por defecto, en este caso para prohibir el acceso a los clientes de la web a los archivos .htaccess:

mod_access en apache2.conf

Finalmente, comentar que en general las directivas de control de acceso vistas se aplican a todos los métodos HTTP (GET, PUT, POST, etc.). Es posible no obstante restringir métodos concretos con secciones <Limit>, tal y como se indica en los siguientes enlaces, donde podemos encontrar más información del tema descrito:

žLa política de restricción de IPs puede y debe trabajar en colaboración con otras herramientas de bloqueo (firewalls, ACLs de routers, filtrado TCP/IP, …) para una mejor protección. En la siguiente actividad práctica se dan una serie de ejemplos de cómo gestionar estas directivas.

Última modificación: jueves, 19 de agosto de 2010, 11:20