Diferencia entre revisiones de «Usuario:ManuelRomero/modulo APACHE/Directivas»

De WikiEducator
Saltar a: navegación, buscar
Línea 155: Línea 155:
 
#ExecCGI: permita la ejecución de script CGI  usando mod_cgi  
 
#ExecCGI: permita la ejecución de script CGI  usando mod_cgi  
 
#FollowSymLinks: El servidor puede seguir enlaces simbólicos en ese directorio.
 
#FollowSymLinks: El servidor puede seguir enlaces simbólicos en ese directorio.
#Includes:  
+
#SymLinksIfOwnerMatch: Solo seguirá enlaces simbólicos si el directorio de destino es del mismo usuario que el enlace.
#IncludesNOEXEC:
+
#Includes: Permite ''server-side includes''.Esto es permiten a un fichero HTML incluir otros ficheros.
Server-side includes son permitidos, pero el # exec cmd y # exec cgi están deshabilitados. Todavía es posible incluir # virtuales scripts CGI desde directorios ScriptAliased.
+
#IncludesNOEXEC: En este caso deshabilita el # exec cmd y # exec cgi.
Índices
+
#Indixes:  Muestra una lista formateada del contenido de los directorios, si no existe el DirectoryIndex (como el index.html) en el directorio solicitado. Por razones de seguridad, esto no debería establecerse, y desde luego no en el directorio indicado por DocumentRoot.Esta opción debe de estar habilitada con cuidado (y sólo para ciertos directorios) sólo si esta seguro de querer que los usuarios vean todo el contenido del directorio.
Si una dirección URL que se asigna a un directorio se solicita, y no hay DirectoryIndex (por ejemplo, index.html) en ese directorio, entonces mod_autoindex devolverá una lista con formato de la guía.
+
#MultiViews Soporte para vistas múltiples negociadas por contenido; esta opción está desactivada de forma predeterminada por motivos de seguridad.
MultiViews
+
El contenido negociado "MultiViews" se permite el uso mod_negotiation.
+
nota
+
  
Esta opción es ignorada si se define en otro lugar que <Directory>, como mod_negotiation necesita recursos reales para comparar y evaluar contra de.
+
====AllowOverride====
SymLinksIfOwnerMatch
+
AllowOverride All|None|tipo_directorio [tupo_directorio] ...
El servidor sólo sigue los enlaces simbólicos para que es propiedad del archivo o el directorio en el mismo ID de usuario que el enlace.
+
*Especifica el tipo de directorios que pueden ser incluidos en el fichero .htaccess.
nota
+
*El valor de ''tipo_directorio'' puede tener uno de los siguientes valores
 +
#None Ignora el fichero '''''.htaccess'''''
 +
#AuthConf Permite usar directivas de autorización (AuthName, AuthType, ...)
 +
#FileInf  Se pueden usar directivas que controlan el tipo de documentos SetInputFilter, SetOutputFilter, )
 +
#Indexes para gestionar el listado de ficheros y directorios
 +
#Limit establecer directivas que controlan el acceso (Allow, deny y order)
 +
#Options=[Option,..-] Permitir el uso de directivas que controlan funciones específicas del directorio.
  
Esta opción se ignora si se establece dentro de una sección <Location>.
+
====Order====
Esta opción no se debe considerar una restricción de seguridad, ya que las pruebas enlace simbólico está sujeta a las condiciones de carrera que lo hacen circumventable.
+
Order lista_permisos
Normalmente, si múltiples opciones podría aplicarse a un directorio, entonces el que sea más específica, y otros son ignorados, las opciones no se mezclan. (Ver secciones cómo se combinan.) Sin embargo, si todas las opciones de la directiva opciones van precedidas de una o símbolo -, las opciones se fusionan. Cualquiera de las opciones precedidas por una se añaden a las opciones actualmente en vigor, y las opciones precedidas por una - se retiran de las opciones actualmente en vigor.
+
*Controla el orden en el cual se aplicarán los permisos a un directorio  
 +
*Lista_permisos puede tener los siguientes valores
 +
#Allow,Deny: Primero se evalúan todas las directivas ''Allow'' , y acontinuación son evaluadas las directivas 'Deny''. Si la solicitud no coindice con ninguna premisa establecida, por defecto es rechazado
 +
#Deny,Allow: Se realiza las evaluaciones en orden inverso
 +
*Veamos un ejemplo
 +
:En la siguiente especiviación todos los host del dominio enlaces.es tienen acceso, rechando cualquier acceso de cualquier otra ubicación de solicitud.
  
Advertencia
+
Order Deny,Allow
 +
Deny from all
 +
Allow from enlaces.es
 +
====Deny====
  
Opciones de mezcla con una o - con los que no tienen sintaxis no es válida, y puede causar resultados inesperados.
 
Por ejemplo, sin ninguna y - símbolos:
 
  
  
 +
<hr/>
 +
===<font color=green>UserDir</font>
 +
*Indica si se debe permitir que cada usuario de nuestro sistema tenga su porpia carpeta personal en el servidor web, estableciendo cual será la ruta desde el servidor para acceder a dicha carpeta.
 +
*Activando esta opción, se puede conseguir que cada uno tenga su propia web personal.
 +
*Una opción frecuente sería
 +
UserDir public_html
 +
*Con esta opción se crearía en nuestro servidor rutas para cada usuario.
 +
*Por ejemplo usuarios Luis, Maria , Sonia, establecería las rutas
 +
www.enlaces.es/~Luis
 +
www.enlaces.es/~Maria
 +
www.enlaces.es/~Sonia
 +
*Por otro lado cada usuario tendría en su home un subdirectorio ''public_html'' para publicar ahí las páginas web
 +
*Si queremos deshabilitarlo (opción por defecto)
 +
UserDir disable
 +
*Por seguridad no deberíamos permitir acceso a ninguna carpeta del home de root
 +
Userdir disabled root
  
  
====AllowOverride====
 
====Order====
 
====Deny====
 
 
 
<hr/>
 
<h4>UserDir</h4>
 
 
<hr/>
 
<hr/>
 
<h4>DirectoryIndex</h4>
 
<h4>DirectoryIndex</h4>

Revisión de 23:18 9 ene 2013



Qué son las directivas

  • Las directivas son variables predefinidas que utiliza el fichero/s de configuración de del servidor Apache
  • Gracias a ellas podemos personalizar el comportamiento del servidor web
  • Son muchas las directivas existentes, veremos algunas de ellas en el presente wiki
  • Dentro del fichero de configuración el signo # indica un comentario (se ignora esa línea)


Icon preknowledge.gif

Conocimiento previo

Cualquier cambio en la configuración del servidor tendrá efecto después de reniciarlo


Referencias

  1. Fichero de configuracion comentado y con referencias a la web
  2. Referencias relacionadas con apache
  3. Directivas de apache. Lista completa en la página oficial
  4. Formas de uso de las directivas de la página oficial
  5. Terminos usados para describir el uso de directivas

Directivas

ServerRoot

Corresponde al directorio donde se ha instalado el apache
No se debería cambiar (Si se cambia el servidor no deja de funcionar)
Posteriormente podemos hacer referencia a este directoria a través de la referencia %SeverRoot%
ServerRoot /var/
Cuando se especifican rutas relativas siempre se tomarán respecto a la ubicación de ServerRoot

PidFile

Ubicación del fichero donde el servidor guarda su ID de proceso
Por defecto se ubica en %ServerRoot%/logs/httpd.pid
PidFile logs/httpd.pid

Timeout

Tiempo en segundos en los que se esperan las respuestas en la comunicación
Pasado este tiempo se entiende que la comunicación se ha cortado
Por defecto se estable a valor de 300
Timeout 300

===KeepAlive MaxKeepAliveRequest KeepAliveTimeout===

Permitir o no varias peticiones por conexión
KeepAlive off
Establecerlo a on puede hacer que un cliente sature a un servidor.
Si se establece a on es muy recomendado usar las siguientes directivas.
MaxKeepAliveRequest para limitar el número de peticiones en cada conexión.
KeepAliveTimeout establece el tiempo que el servidor espera antes de atender una nueva petición de la misma conexión.

ifModule


Verifica la existencia de un determinado módulo
En caso de que exista el módulo se establece un bloque de opciones
Existe la posibilidad de establecer el bloque de opciones en caso de que no exista dicho módulo con la exclamación !
<ifModule nombre_modulo>
 Definiciones a tener en cuenta si está cargado el módulo nombre_modulo
</ifModule>
<!ifModule nombre_modulo>
 Definiciones a tener en cuenta si no está cargado el módulo nombre_modulo
</ifModule>

StartServer MaxClient MaxRequestsPerChild


Número de servidores que se crearán al arrancar el servicio
StartServer 5 
#Abrimos 5 servidores al arrancar el servidor http Apache
MaxClient clientes que el servidor puede atender de forma concurrente
MaxRequestsPerChild establece el número máximo de peticiones que un proceso hijo puede atender.
Despues de atender este número de peticiones el proceso es eliminado
En caso de tener el valor 0 (valor por defecto) no se limita el número de peticiones que un proceso hijo puede atender

Port


Puerto que abre el servidor web para atender las solicitudes
Si no se especifica se asigna el puerto 80
#establecemos el puert 7900 en lugar del puerto 80
Port 7900 

Listen


Direcciones IP y puertos en los que escucha el servidor además de los puertos por defecto
#Listen [IP-address:]portnumber
#Establecer el valor por defecto 
Listen 127.0.0.1:80
#Aquí establecemos que además del puerto 80, escuche también por el puerto 8080
Listen 8080

LoadModule


Esta directiva permita cargar nuevos módulos como si se tratara de ensambar un nuevo componente sin tener que volver a compilar los fuentes
Apache normalmente viene con la opcion DSO Dinamic Shared Object, por lo que podemos agregar nuevos módulos
Los módulos con los que se compilaron los fuentes no hacen falta volver a cargarlos. Sólo sería para añadir nuevos módulos que queramos incorporar

User Group


Estas directivas especifican el identificador de usuario, grupo con el que el servidor responderá a las peticiones. Es decir el usuario,grupo, propietario del proceso hijo que atiende las solicitudes del cliente
Para usar esta directiva, el servidor debe haber sido iniciado como root.
Si se inicia Apache con un usario distinto de root, no se podrá cambiar a un usuario con menores privilegios, y el servidor continuará ejecutándose con el usuario original.
Si inicia el servidor como root, entonces es normal que el procedimiento padre siga ejecutándose como root.
Un nombre de ususario, se refiere al usuario dado por su nombre.
# seguido por un número de usuario.
Se refiere al usuario que corresponde a ese número.
User nombre_usuario
User #num_id_usuario
Group nombre_usuario
Group #num_id_usuario


ServerAdmin

ServerAdmin direccion_email|URL
  • Permite especificar la dirección del administrador que se mostrará al cliente en caso de que se produzca un error

ServerName

  • Especifica el nombre del servidor
ServerName nombre_basado_dominio[:port]
  • Es recomendado utilizarlo, si no se utiliza se intentará deducirlo a partir de la ip y de una resolución inversa con el DNS

DocumentRoot

DocumentRoot directorio
  • Valor por defecto: DocumentRoot /usr/local/apache/htdocs
  • Especificamos el directorio raíz donde queremos colgar las páginas web
  • Si dentro de este directorio creamos subdirectorios, podremos acceder a ellos y ver su contendido
  • Una vez especificado el DocumentRoot, deberemos detallar su accesibilidad del directorio en la directiva Directory
DocumentRoot /www/myWebs/
....
<Directory "/www/myWebs">
...

Directory

<Directory directory-path>
 ...  #opciones de acceso y comportamiento
</Directory>
  • Configuramos el comportamiento y permisos de un directorio especificado
  • Si nos se especifica de forma explícita dicho comportamiento será aplicado de forma recursiva a los subdirectorios
  • Por defecto aparece en dos ocasiones una muy restrictiva para el directorio raiz y otra más permisiva para el directorio donde comparitimos los ficheros
<Directory />
 Options FollowSymLinks
 AllowOverride  None
 Order deny,allow
 Deny form all
</Directory>

<Directory />
 Options FollowSymLinks
 AllowOverride  None
 Order deny,allow
 Deny form all
</Directory>
  • A continuación vemos las diferentes opciones utilizadas

Options

  • Establece la opciones que va a tener el servidor al acceder a un directorio en concreto.
  • Puede tomar uno de los siguientes valores
  1. None : No se activa ninguna de las caracteristicas adicionales
  2. All :Se activan todas las características expceto la de MultiView
  3. ExecCGI: permita la ejecución de script CGI usando mod_cgi
  4. FollowSymLinks: El servidor puede seguir enlaces simbólicos en ese directorio.
  5. SymLinksIfOwnerMatch: Solo seguirá enlaces simbólicos si el directorio de destino es del mismo usuario que el enlace.
  6. Includes: Permite server-side includes.Esto es permiten a un fichero HTML incluir otros ficheros.
  7. IncludesNOEXEC: En este caso deshabilita el # exec cmd y # exec cgi.
  8. Indixes: Muestra una lista formateada del contenido de los directorios, si no existe el DirectoryIndex (como el index.html) en el directorio solicitado. Por razones de seguridad, esto no debería establecerse, y desde luego no en el directorio indicado por DocumentRoot.Esta opción debe de estar habilitada con cuidado (y sólo para ciertos directorios) sólo si esta seguro de querer que los usuarios vean todo el contenido del directorio.
  9. MultiViews Soporte para vistas múltiples negociadas por contenido; esta opción está desactivada de forma predeterminada por motivos de seguridad.

AllowOverride

AllowOverride All|None|tipo_directorio [tupo_directorio] ...
  • Especifica el tipo de directorios que pueden ser incluidos en el fichero .htaccess.
  • El valor de tipo_directorio puede tener uno de los siguientes valores
  1. None Ignora el fichero .htaccess
  2. AuthConf Permite usar directivas de autorización (AuthName, AuthType, ...)
  3. FileInf Se pueden usar directivas que controlan el tipo de documentos SetInputFilter, SetOutputFilter, )
  4. Indexes para gestionar el listado de ficheros y directorios
  5. Limit establecer directivas que controlan el acceso (Allow, deny y order)
  6. Options=[Option,..-] Permitir el uso de directivas que controlan funciones específicas del directorio.

Order

Order lista_permisos
  • Controla el orden en el cual se aplicarán los permisos a un directorio
  • Lista_permisos puede tener los siguientes valores
  1. Allow,Deny: Primero se evalúan todas las directivas Allow , y acontinuación son evaluadas las directivas 'Deny. Si la solicitud no coindice con ninguna premisa establecida, por defecto es rechazado
  2. Deny,Allow: Se realiza las evaluaciones en orden inverso
  • Veamos un ejemplo
En la siguiente especiviación todos los host del dominio enlaces.es tienen acceso, rechando cualquier acceso de cualquier otra ubicación de solicitud.

Order Deny,Allow Deny from all Allow from enlaces.es

Deny


===UserDir

  • Indica si se debe permitir que cada usuario de nuestro sistema tenga su porpia carpeta personal en el servidor web, estableciendo cual será la ruta desde el servidor para acceder a dicha carpeta.
  • Activando esta opción, se puede conseguir que cada uno tenga su propia web personal.
  • Una opción frecuente sería
UserDir public_html
  • Con esta opción se crearía en nuestro servidor rutas para cada usuario.
  • Por ejemplo usuarios Luis, Maria , Sonia, establecería las rutas
www.enlaces.es/~Luis
www.enlaces.es/~Maria
www.enlaces.es/~Sonia
  • Por otro lado cada usuario tendría en su home un subdirectorio public_html para publicar ahí las páginas web
  • Si queremos deshabilitarlo (opción por defecto)
UserDir disable
  • Por seguridad no deberíamos permitir acceso a ninguna carpeta del home de root
Userdir disabled root



DirectoryIndex


AccessFileName


Files


UseCanonicalName


TypesConfig


DefaultType


HostNameLookups


ErrorLog


LogLevel


LogFormat


CustonLog
ServerSignature
Alias
IndexOptions AddIconByEncoding AddIconByType AddIcon DefaultIcon ReadmeName HeaderName IndexIgnore
AddEncoding
AddLenguage
LenguagePriority
AddCharset
AddDefaultCharset
BrowserMatch