Opciones sobre directorios

žA continuación veremos una serie de opciones aplicables sobre entradas <Directory> en cualquier archivo de configuración, es decir, que podemos aplicar sobre directorios sueltos o sobre partes del servidor según las necesitemos. Las opciones de los directorios indican la prohibición o permiso expreso para poder hacer determinadas operaciones sobre los mismos, de forma que puedan activarse o desactivarse a nivel de servidor completo, host virtual (una sola web concreta) o bien un directorio particular). Las posibles opciones son (más información en http://httpd.apache.org/docs/2.2/en/mod/core.html#options):

  • Desactivar la navegación por directorios:Options –Indexes". Si un usuario accede a un directorio del servidor donde no hay un documento por defecto ni el usuario lo especifica, entonces se mostrará un listado de ficheros existentes en dicho directorio (si está operativo mod_autoindex). Esto en la mayoría de casos es dar demasiada información, por lo que conviene desactivarlo salvo que sea estrictamente necesario.
  • Desactivar los Server Side Includes: Options –Includes", que es una tecnología que permite incluir en páginas web el contenido de otros archivos. Conviene desactivarla si no se va a usar. La variante IncludesNOEXEC desactiva la ejecución de comandos (mediante #exec cmd y #exec cgi) desde páginas que usen esta tecnología.
  • Desactivar la ejecución de programas CGI:Options –ExecCGI”. Al igual que se dijo para IIS, es conveniente por temas de seguridad desactivar esta opción en todos los directorios de la web, salvo en uno concreto destinado a alojar todos los ejecutables, donde se activará. De esta forma minimizaremos la posibilidad de que un atacante ejecute código a su voluntad a través de un error en cualquier directorio de la aplicación.
  • No permitir a Apache seguir enlaces simbólicos: Options –FollowSymLinks”. Es importante porque un enlace simbólico malicioso puede llevarnos a acceder a archivos fuera de la estructura de directorios de la web, con el riesgo de manipularlos o destruirlos.
  • SymLinksIfOwnerMatch: Sirve para que el servidor siga los enlaces simbólicos en los que el fichero o directorio final pertenezca al mismo usuario que el propio enlace.
  • MultiViews: Habilita este elemento definido por mod_negotiation.
  • Si queremos desactivar todas las posibles opciones, usaremos “Options None”. Si queremos desactivar unas pocas, podemos poner “-” sólo delante de las que queramos desactivar (Ej.: Options -Indexes). Si queremos activarlas todas salvo MultiViews (algo poco aconsejable en la mayoría de casos), debemos usar Options All.

Uso de Options

Todo esto es aplicable tanto a nivel de servidor completo, de virtual host (web concreta del servidor) o carpeta individual, siguiendo la precedencia antes mencionada. De esta forma podríamos detallar esta configuración con el nivel de grano que deseemos en cada momento.


Last modified: Saturday, 31 July 2010, 1:11 AM