Upload
alessandra-benavides-mendoza
View
222
Download
0
Embed Size (px)
Citation preview
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
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/').
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.
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
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á.
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
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
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.