8
8/18/2019 Configuracion y Ajuste Del Servidor Apache http://slidepdf.com/reader/full/configuracion-y-ajuste-del-servidor-apache 1/8 Curso online Servidor Web APACHE Autor: Francisco Illeras (ETSIIT-Universidad de Granada)  Versión 1.0 Fecha: 01/03/2012

Configuracion y Ajuste Del Servidor Apache

Embed Size (px)

Citation preview

Page 1: Configuracion y Ajuste Del Servidor Apache

8/18/2019 Configuracion y Ajuste Del Servidor Apache

http://slidepdf.com/reader/full/configuracion-y-ajuste-del-servidor-apache 1/8

Curso online 

Servidor Web APACHE

Autor: Francisco Illeras

(ETSIIT-Universidad de Granada)

  Versión 1.0

Fecha: 01/03/2012

Page 2: Configuracion y Ajuste Del Servidor Apache

8/18/2019 Configuracion y Ajuste Del Servidor Apache

http://slidepdf.com/reader/full/configuracion-y-ajuste-del-servidor-apache 2/8

Autor: Francisco Illeras (ETSIIT de Granada) http://www.digitallearning.es

1. Funcionamiento de un servidor de páginas

web. Apache.

1.4. Elección del software para el cliente y

servidor.A continuación nos centraremos en identificar el software que precisa el equipo informático cliente y el

servidor. Como ya avanzamos al principio de este tema el equipo cliente precisa de un 'navegador de

internet'. Todos los sistemas operativos actuales poseen su propio navegador (Windows → Internet

Explorer; Linux → Firefox). El usuario medio conoce su funcionamiento y configuración. Conviene recordar

que aunque en la mayoría de los foros de la red se habla habitualmente de 'Internet Explorer', 'Mozilla

Firefox' y últimamente de 'Google Chrome' porque son los más utilizados, lo cier to es que existen otros

muchos navegadores de calidad. Algunos ejemplos son Safari, Opera o Konqueror. Pruebe alguno de ellos

si tiene oportunidad.

Ilustración 5: Navegadores de

internet.

Hablemos ahora de la aplicación que necesitamos en nuestro equipo servidor. Como comentamos

anteriormente, necesitamos de una aplicación que sea capaz de presentar documentos HTML (en realidad,

nuestro servidor web estará preparado para mostrar archivos de otros muchos formatos y extensiones,pero usaremos la expresión 'documento HTML' por ser el tipo más representativo) que sean accesibles

desde la red. Ejemplos de 'Servidores web' son: Internet Information Server (IIS) o Apache (recuerde,

existen otros servidores pero éstos son los más utilizados; para más información visite la URL

'http://www.cherokee-project.com/').

Page 3: Configuracion y Ajuste Del Servidor Apache

8/18/2019 Configuracion y Ajuste Del Servidor Apache

http://slidepdf.com/reader/full/configuracion-y-ajuste-del-servidor-apache 3/8

Autor: Francisco Illeras (ETSIIT de Granada) http://www.digitallearning.es

Ilustración 6: Internet Information Server y Apache son los servidores

Web preferidos.

No intentaré convencerle de que Apache es mejor que Internet Information Server, tendrá la oportunidad

de realizar un ejercicio que le mostrará las bondades de cada uno de ellos; lo que si haré es mostrarle

información que muestra al servidor web Apache como el más utilizado en la red.

Ilustración 7: Porcentaje de uso del Servidor de páginas web “Apache”.

Le recomiendo realizar el ejercicio 1 de este tema.

3. Configuración y ajuste del servidor.

Page 4: Configuracion y Ajuste Del Servidor Apache

8/18/2019 Configuracion y Ajuste Del Servidor Apache

http://slidepdf.com/reader/full/configuracion-y-ajuste-del-servidor-apache 4/8

Autor: Francisco Illeras (ETSIIT de Granada) http://www.digitallearning.es

3.3. Archivo “apache2.conf”.

Sin lugar a dudas, es el f ichero más importante de Apache, puesto que en él se definirá el comportamiento

general del servidor de páginas web y además, es el encargado de acceder a los distintos módulos que

amplían la funcionalidad del servidor.

Como ya hemos comentado, el archivo “apache2.conf” se encuentra en el directorio “/etc/apache2”, y al

tratarse de un fichero de texto podrá editarlo fácilmente (por ejemplo, con nuestro editor preferido “joe”).

Dentro del archivo de configuración encontraremos dos partes bien diferenciadas:

1) Variables globales del servidor: variables que definen el funcionamiento general del servidor. Las más

importantes son (siempre podrá completar la información que le suministro con la que posee en la propia

web de Apache, el lugar donde encontrará la documentación es “http://httpd.apache.org/docs/2.0/es/”):

Directiva Descripción

ServerRoot “/etc/apache2”

Indica la ubicación de los ficheros de configuración del servidor

Apache.

ServerName

“miservidor.ugr.es”Indica el nombre del servidor.

PidFile ${APACHE_PID_FILE}

Fichero en el que se almacenará el número de proceso con el que

se esta ejecutando el servidor Apache. Fíjese que no se indica un

directorio o ubicación sino que se le asigna el valor de la variable

 “APACHE_PID_FILE”. Más adelante comprobará que esa variable

esta definida en el archivo de configuración “envvars”.

Timeout 300

MaxKeepAliveRequests 100

KeepAliveTimeout 15

Todas estas directivas están relacionadas con el tiempo de espera

de las conexiones con los cl ientes.

User ${APACHE_RUN_USER}

Group ${APACHE_RUN_GROUP}

Aunque nosotros hemos instalado el servidor Apache como

administradores (root), la aplicación no podrá ejecutarse con estos

privilegios porque provocaría muchos problemas de seguridad. En

lugar de ello, el servidor Apache dispondrá de su propio usuario y

grupo con el que se ejecutará. De nuevo hace referencia a unos

valores almacenados en las variables APACHE_RUN_USER Y

APACHE_RUN_GROUP que podrá localizar en el archivo “envvars”.

AccessFileName .htaccessIndica el nombre (“.htaccess”) que deberá tener el f ichero local de

un directorio en el que se almacenen directivas de acceso.

ErrorLog

/var/log/apache2/error.log

Indica el nombre del directorio del sistema en el que se guardarán

los registros de error del servidor Apache.

A la vista de la tabla anterior parecería que Apache es un servidor que no es muy complejo de configurar,

porque no posee muchas opciones. La realidad es que no es muy complejo de configurar, pero estas son

solo un número muy pequeño de las opciones que posee Apache, ya que mayoría de las variables de

configuración se encuentra repartida entre otros pequeños ficheros de configuración (módulos) guardados

en “mods-available” (pero esto lo veremos más adelante).

En este momento solo tiene que preocuparse de que el nombre de nuestro servidor este bien indicado

mediante la variable “ServerName” para que cualquier redirección o referencia existente en nuestros

Page 5: Configuracion y Ajuste Del Servidor Apache

8/18/2019 Configuracion y Ajuste Del Servidor Apache

http://slidepdf.com/reader/full/configuracion-y-ajuste-del-servidor-apache 5/8

Autor: Francisco Illeras (ETSIIT de Granada) http://www.digitallearning.es

documentos HTML funcionen bien. Y el resto de las variables no tendrá que tocarle puesto que por defecto

vienen con los valores adecuados, salvo la parte correspondiente a “AccessFileName”. Lo explicaré de una

manera más detallada.

.htaccess es un archivo de texto oculto (por esa razón comienza por “.”) que permite personalizar el

funcionamiento del servidor Apache un directorio concreto sin necesidad de modificar el fichero de

configuración principal “apache2.conf”.

Cuando un cliente web solicita un archivo al servidor, este busca desde el directorio raíz hasta el

subdirectorio que contiene el archivo solicitado el archivo .htaccess y tiene en cuenta las directivas

contenidas en el mismo antes de proceder con la petición.

Los usos principales del .htaccess son:

Impedir el listado de los archivos de un directorio.

Redireccionar el tráfico Web.

Personalizar las páginas de error.

Restringir el acceso a determinados archivos.

Impedir el acceso a determinadas IPs o rangos de IP.

En el apartado de comunicaciones seguras de este mismo tema lo veremos con más detenimiento.

2) Ampliación de funcionalidades: relacionado con las llamadas a otros módulos y archivos deconfiguración. Todas las directivas relacionadas con este punto vendrán precedidas por la palabra

 “Include".

Directiva Descripción

Include /etc/apache2/mods-

enabled/*.load

Include /etc/apapche2/mods-

enabled/*.conf 

Incluirá todos los módulos existentes en el directorio

 “/etc/apache2/mods-enabled/”. Esto significa que todas las

directivas que se encuentren en los archivos de este directorio

serán tenidas en cuenta para el funcionamiento del servidor. Todos

estos ficheros son funcionalidades extra del servidor.

Include

/etc/apache2/ports.conf 

Incluirá las directivas incluidas en el archivo “ports.conf”, que

hacen referencia al puerto por el que se dará servicio

(normalmente el puerto 80).

Include /etc/apache2/sites-

enabled/

Incluye el directorio “/etc/apache2/sites-enabled”, que es el lugar

donde se definirán los distintos dominios virtuales que deseemos

ofrecer con nuestro servidor. Lo veremos más adelante.

Si aún no se ha hecho una idea mental de cómo esta conformado el servidor Apache, la siguiente imagen le

ayudará.

Page 6: Configuracion y Ajuste Del Servidor Apache

8/18/2019 Configuracion y Ajuste Del Servidor Apache

http://slidepdf.com/reader/full/configuracion-y-ajuste-del-servidor-apache 6/8

Autor: Francisco Illeras (ETSIIT de Granada) http://www.digitallearning.es

Ilustración 1: Estructura del servidor Apache2.

Hasta ahora ha aprendido que el archivo de configuración principal de Apache 2 se llama “apache2.conf” y

se encuentra en el directorio “/etc/apache2”. Ya sabe como indicar el nombre del servidor, que el usuario y

grupo con el que se ejecuta el servidor Apache se llama www-data, y que se cargarán todos los módulos

que se encuentren almacenados en los directorios de configuración “mods-enabled” y “sites-enabled”.

5. Comunicaciones seguras del servicio Web.

Certificados.

5.2. Acceso restringido a la información.

Aunque el servicio de páginas web es el más indicado para presentar información de manera pública en la

red, en ocasiones también es el medio elegido para facili tar el acceso a información confidencial o privada,

sobre todo, porque el equipo cliente solo precisa de un navegador como herramienta para llegar a la

misma.

En estos casos necesitamos de algún mecanismo que solicite una identificación del usuario para garantizar

que la información solo será accesible para quienes están autorizados; ahora bien, este mecanismo no es

un impedimento para que la información sea capturada por un atacante, por lo que podemos pasar a un

nivel superior de seguridad mediante el cifrado de la información.

En este apartado hablaremos de distintos mecanismos de control de acceso, desde los más básicos (donde

se solicitará un nombre de usuario y contraseña) hasta los más elaborados, utilizando para ello cif rado

basado en SSL (Security Socket Layer).

Todos estos mecanismos se harán dentro de una 'directiva de bloque' que aparecerá en el fichero de

configuración del sitio web (es decir, en el fichero que encontraremos en “/etc/apache2/sites-enabled”), y

lógicamente, asociada a una determinada carpeta.

5.3. Autenticación Básica.

El primero de los mecanismos de control de acceso más básicos que podemos encontrar en Apache 2 es

Page 7: Configuracion y Ajuste Del Servidor Apache

8/18/2019 Configuracion y Ajuste Del Servidor Apache

http://slidepdf.com/reader/full/configuracion-y-ajuste-del-servidor-apache 7/8

Autor: Francisco Illeras (ETSIIT de Granada) http://www.digitallearning.es

aquel en el que se solicitará una nombre de usuario y contraseña que no esta cifrada (viaja en texto plano,

y por tanto, si la información fuese capturada en la red se podría ver su contenido).

Para explicar mejor su funcionamiento veamos el siguiente archivo de configuración de nuestro sitio web.

Ilustración 1: Ejemplo de Autenticación básica de usuario.

Fíjese en la última directiva de bloque referente al directorio “/var/www/restringido”, en ella se dan todos

los elementos necesarios para definir un mecanismo de autenticación básico. Comentaremos a continuación

dichos elementos:

- <Directory /var/www/restringido> : lo primero es identificar el directorio sobre el que se aplicará el

control de acceso, algo que haremos mediante la directiva Directory que delimita el bloque.

- AuthType Basic : AuthType es la directive que indicará el tipo de autenticación utilizada. En este caso

 “Basic” que es la más básica.

- AuthUserFile /usr/documentos/users : la directiva AuthUserFile se utiliza para indicar el nombre y

ubicación del archivo que contienen la contraseña para cada uno de los usuarios válidos. Su contenido tiene

el siguiente aspecto:

Ilustración 2: Fichero que contiene los usuarios y claves de acceso al directorio.

¿Qué significa ese conjunto de caracteres ilegibles?,¿Cómo se genera este archivo?

Todos esos caracteres ilegibles no son más que la clave de acceso de cada uno de los usuarios ('paco' y

'elisa') que aparece cif rada. Para poder generar este archivo necesitamos ejecutar los siguientes

comandos:

htpasswd –cm /usr/documentos/users paco

htpasswd –m /usr/documentos/users elisa

Ambas líneas comienzan con el comando htpasswd, el utilizado para generar la clave a partir de una

cadena de caracteres que se introducirá. Después del nombre del comando se indica el argumento “m” 

(indica que se cifrará con el algoritmo MD5, podrá encontrar más información sobre este algoritmo de

cifrado en 'http://es.wikipedia.org/wiki/MD5'), seguido del nombre del archivo que almacenará las claves

(/usr/documentos/users) y el nombre del usuario para el que se va a generar la clave. Fíjese que ambos

comandos solo se diferencian en el argumento “-c”, que es utilizado cuando aún no existe el fichero de

Page 8: Configuracion y Ajuste Del Servidor Apache

8/18/2019 Configuracion y Ajuste Del Servidor Apache

http://slidepdf.com/reader/full/configuracion-y-ajuste-del-servidor-apache 8/8

Autor: Francisco Illeras (ETSIIT de Granada) http://www.digitallearning.es

usuarios y se tiene que crear por primera vez (así que recuerde, la opción '-c' solo debe utilizarla la

primera vez).

NOTA: Este archivo que contiene las claves de usuario no podrán estar dentro del directorio de trabajo del

servidor Apache, porque sino ¡estaría disponible a través del navegador!

- AuthGroupFile /usr/documentos/groups : la directiva AuthGroupFile se utiliza para indicar el

nombre y ubicación del archivo que contiene los usuarios que pertenecen a cada grupo. Su contenido tiene

el siguiente aspecto:

Ilustración 3: Aspecto del archivo que contiene la definición de

grupos

Este archivo no es imprescindible, de manera que la autenticación básica podría realizarse únicamente con

el fichero de usuarios.

- require valid-user : directiva utilizada para indicar que es imprescindible indicar un nombre de usuario

existente entre los almacenados en el f ichero de usuarios.

Como puede apreciar, los nombres de usuario pertenecientes a cada grupo vendrán separados por espacios

en blanco (no por comas).

Esta sería una forma de implementar la autenticación básica en nuestro servidor Apache, aunque podría

completarse por ejemplo, con un control adicional de los equipos cliente que pueden acceder a dicho

directorio (esto ya lo vimos en apartados anteriores). Para el lo podríamos utilizar la directiva Allow from o

Deny from.