SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
SRI

SERVIDOR HTTP – APACHE2

Francisco José Cruz Jiménez 2º ASIR
Servidor HTTP – Apache2

INDICE :
Instalación del servicio HTTP en Debian Squeeze ............................................................. 3
Ejercicio 1 .............................................................................................................................. 4
Escenario 1: Configura dos VirtualHosts con distinto interfaz, mismo puerto ............. 4
 Descripción del escenario ...................................................................................... 4
 Configuración del escenario .................................................................................. 4
 Configuración del servicio .................................................................................... 7
Escenario 2: Configura dos VirtualHosts con mismo interfaz, diferente puerto. ....... 10
 Descripción del escenario .................................................................................... 10
 Configuración del escenario ................................................................................ 10
 Configuración del servicio .................................................................................. 10
Escenario 3: Configura dos VH con mismo interfaz y puerto y distinto nombre. ...... 12
 Descripción del escenario .................................................................................... 13
 Configuración del escenario ................................................................................ 13
 Configuración del servicio .................................................................................. 13
Ejercicio 2 ............................................................................................................................ 16
 Descripción del escenario .................................................................................... 16
 Configuración del escenario ................................................................................ 16
 Configuración del servicio .................................................................................. 16
Ejercicio 3 ............................................................................................................................ 26
 Módulo para comprimir: mod_deflate ................................................................ 26
 Módulo para cachear: mod_disk_cache ............................................................. 27
 mod_userdir .......................................................................................................... 29
Ejercicio 4 ............................................................................................................................ 30
 Mod_auth_basic ................................................................................................... 34
 Mod_auth_digest .................................................................................................. 35
Ejercicio 4 ............................................................................................................................ 36
 Awstats ................................................................................................................. 36
 Webalizer .............................................................................................................. 38

Francisco José Cruz Jiménez

2
Servidor HTTP – Apache2

Instalación del servicio HTTP en Debian Squeeze
Un servidor web sirve contenido a un navegador, este pide el recurso que sea, el
servidor carga el archivo (para contenido estático, por ejemplo HTML) o procesa la
aplicación y sirve el resultado (para contenidos dinámicos, por ejemplo PHP) y lo sirve
a través de la red al navegador del cliente. Este intercambio es mediado por el
navegador y el servidor que hablan el uno con el otro mediante HTTP, de ahí el nombre
servidor HTTP.
A continuación vamos a instalar un servidor web en nuestra máquina Debian
Squeeze, en concreto instalaremos Apache2, existen muchos servidores web
actualmente (Nginx, IIS, Cherokee, lighttpd,…), pero el más usado es Apache, las
estadísticas hablan de casi un 60% de los servidores web existentes son Apache. Para
instalarlo usaremos:
# apt-get install apac he2
Ahora comprobamos que la instalación ha sido satisfactoria observando que
existen procesos apache2, hay que resaltar que apache no solo tiene un proceso como
los servicios anteriormente vistos, sino que posee varios pares de ellos, dependiendo si
su MPM es Worker o Prefork (El modo Worker trabaja con hilos, esto hace que tenga
menos procesos que si fuese modo Prefork, que por cada petición crea un proceso).
# ps aux | egrep apache2

Además también comprobaremos que el puerto 80 está a la escucha.
# netstat –natup | egrep apac he2

Otra comprobación que podemos hacer es poner la dirección IP del servidor en
un navegador, si apache2 está correcto nos mostrara lo siguiente.

Francisco José Cruz Jiménez

3
Servidor HTTP – Apache2

Ejercicio 1

Escenario 1: Configura dos VirtualHosts con distinto interfaz, mismo
puerto
 Descripción del escenario

En esta escenario de la práctica necesitaremos una máquina con Debian Squeeze
para montar el servicio web, se utilizará una máquina virtual con dos interfaces
distintos, como dice el enunciado, y como cliente usaremos nuestra máquina real.

 Configuración del escenario

Como he explicado antes, en esta práctica usaremos una máquina Debian
Squeeze como servidor, se utilizará una máquina virtual con dos interfaces. La
configuración de red que hay que establecer en la MV será de las dos interfaces
configuradas como Adaptador Solo-Anfitrión, ya que tenemos que comunicarnos con la
máquina real por medio de las dos interfaces y seria poco serio establecer ambas
interfaces como Adaptador Puente. Para usar este modo de red hay que crear dos
adaptadores vbox, para esto vamos a Archivo  Preferencias  Red  Agregar

Francisco José Cruz Jiménez

4
Servidor HTTP – Apache2
adaptador solo-anfitrión. Estas son capturas de cómo configuramos ambos
adaptadores.
vboxnet 0

vboxnet 1

Ahora en la configuración de red de la MV elegimos un adaptador de los creados
anteriormente para cada interfaz (vboxnet0 para el adaptador 1 y vboxnet2 para el
adaptador 2) . Nos quedará así.

Francisco José Cruz Jiménez

5
Servidor HTTP – Apache2

También tenemos que tener en cuenta que necesitamos conexión a internet para
instalar desde los repositorios Apache2, para ello utilizaremos otro tercer interfaz que
configuraremos en Adaptador Puente o NAT. Esta configuración no la explicaré ya que
no es parte del escenario y también resulta un tanto trivial.
Para terminar con la configuración del escenario necesitamos configurar las IP
de las interfaces en la máquina Debian, para ello editamos el fichero de configuración
de interfaces y le daremos esta configuración.
# nano /etc/network/interf ac es

Para que tenga efecto estas modificaciones tenemos que reiniciar el servicio de
networking, además antes levantaremos la eth1, ya que está desactivada.
# ifup eth1
# s ervic e networking res tart

Francisco José Cruz Jiménez

6
Servidor HTTP – Apache2

 Configuración del servicio

Configuraremos dos VirtualHosts diferentes, cada uno escuchará en cada
interfaz, ambos por el mismo puerto, el 80.
Antes explicaré un poco Apache2. Tras la instalación, éste se sitúa por defecto
en /etc/apache2, en dicha carpeta se encuentran otras carpetas y archivos referentes a la
configuración de este servidor web. Existen cuatro carpetas realmente importantes,
sites-available, sites-enabled, mods-available y mods-enabled, en ellas encontramos los
módulos y sitios disponibles (available) y los habilitados (enabled), decir que nosotros
solo creamos los sitios en sites-available, lo que se encuentra en sites-enabled son
enlaces simbólicos que apuntan a los sitios de la anterior carpeta que estén habilitados,
lo mismo ocurre con los módulos. En cuanto a archivos de configuración, nosotros
tocaremos sobretodo ports.conf, donde configuraremos los puertos que están a la
escucha. En apache2.conf se encuentra la configuración general de Apache2.
Una vez introducido un poco la estructura del directorio de Apache2 vamos con
la configuración de los VirtualHost. Una vez que tenemos instalado Apache2,
crearemos ambos sitios en sites-available, la configuración que le vamos a dar es la
siguiente.
# nano /etc/apache2/sites -available/sitio1

# nano /etc/apache2/sites -available/sitio2

Francisco José Cruz Jiménez

7
Servidor HTTP – Apache2

Como podemos ver, he modificado donde añadir entradas al LOG y al ACCESS.
Lo haré para todos los sitios que cree en esta práctica. En ports.conf no tenemos que
realizar ningún cambio, ya q ambos puertos son el 80 y en este fichero de configuración
de puertos aparece por defecto que escuche por el puerto 80.
Para que nuestro sitio nos muestre algo cuando lo probemos crearemos un
index.html en los DocumentRoot de ambos sitios.
# mkdir /var/www/sitio1
# nano /var/www/sitio1/index.html

Y realizamos lo mismo pero en /var/www/sitio2.
# mkdir /var/www/sitio2
# nano /var/www/sitio2/index.html

Como dije antes, los sitios activados aparecen como enlaces simbólicos en sitesenabled, para habilitar sitios podemos hacerlo de dos modos, o bien hacemos nosotros
manualmente los enlaces con ln –s, o podemos usar a2ensite.
# a2ens ite sitio1

Francisco José Cruz Jiménez

8
Servidor HTTP – Apache2

# a2ens ite sitio2

Una vez realizadas las configuraciones tenemos que teiniciar el servidor para
que los cambios se realicen, para ello utilizamos lo siguiente.
# s ervic e apac he2 restart

Para cuando al teiniciar el servidor nos devuelva un error de sintaxis podemos
saber dónde está el error de sintaxis, para ello usamos:
# apache2c tl c onfigtes t
Para probar nuestros sitios nos vamos a un navegador en la máquina real,
ponemos la IP correspondiente a cada sitio en la barra de dirección y comprobamos que
lo que nos muestra es lo correspondiente a esos sitios.
http://192.168.51.2

http://192.168.52.2

Como vemos está todo correcto y funciona correctamente. Con esto acabamos
con este escenario.

Francisco José Cruz Jiménez

9
Servidor HTTP – Apache2

Escenario 2: Configura dos VirtualHosts con mismo interfaz, diferente
puerto.
 Descripción del escenario

En este segundo escenario de la práctica necesitaremos una máquina con Debian
Squeeze para montar el servicio web, se utilizará la máquina virtual anterior, pero con
una sola interfaz y como cliente usaremos nuestra máquina real.

 Configuración del escenario

En este escenario usaremos una máquina Debian Squeeze como servidor, como
el anterior escenario, la misma máquina, pero en cambio solo necesitamos una interfaz.
La configuración de red que vamos a establecer esta vez en la MV va a ser de
Adaptador Puente, aunque también podemos usar Adaptador Solo-Anfitrión, ya que
tenemos que comunicarnos con la máquina real por medio de esta interfaz y puede valer
las dos.

 Configuración del servicio

En este escenario configuraremos dos VirtualHosts diferentes, tal como lo
hicimos en el anterior escenario (los sitios serán los mismos, solo modificaré lo que sea
necesario), debemos configurarlos para que cada sitio escuche por un puerto distinto, ya
que la interfaz será la misma, es decir, para acceder al sitio tenemos que usar http:// IP :
puerto.
Para comenzar, modificaremos los sitios que tenemos del anterior escenario y
cambiaremos los puertos de escucha, para sitio1 usaremos el puerto 80 y para sitio2 el
puerto 8080.
# nano /etc/apache2/sites -available/sitio1

Francisco José Cruz Jiménez

10
Servidor HTTP – Apache2

# nano /etc/apache2/sites -available/sitio2

En este escenario si tenemos que modificar el archivo ports.conf, ya que
necesitamos añadir a la configuración de puertos que escuche por el 8080.
# nano /etc/apache2/ports.c onf

Francisco José Cruz Jiménez

11
Servidor HTTP – Apache2

Posteriormente reiniciamos el servidor y probamos en el navegador los dos
sitios, indicando cada puerto al que va.
# s ervic e apac he2 restart

http://192.168. 128.2

http://192.168.128.2:8080

Con esto ya tenemos configurado y funcionando el escenario número 2. Pasamos
al siguiente.

Escenario 3: Configura dos VirtualHosts con mismo interfaz, mismo
puerto y distinto nombre.

Francisco José Cruz Jiménez

12
Servidor HTTP – Apache2
 Descripción del escenario

En este tercer escenario de la práctica, como en los dos anteriores, necesitaremos
una máquina con Debian Squeeze para montar el servicio web, se utilizará una máquina
virtual con una interfaz y como cliente usaremos nuestra máquina real.

 Configuración del escenario

En este escenario usaremos la máquina Debian Squeeze anterior, de nuevo como
servidor, y con la misma la configuración de red.

 Configuración del servicio

En este escenario configuraremos dos VirtualHosts diferentes, tal como lo
hicimos en el anterior escenario (los sitios serán los mismos, solo modificaré lo que sea
necesario), debemos configurarlos para que cada sitio escuche el mismo puerto,
diferenciaremos ambos sitos por su nombre, es decir, para acceder al sitio tenemos que
usar http://sitio1.com.
Para comenzar, modificaremos los sitios que tenemos del anterior escenario y
añadiremos la directiva ServerName.
# nano /etc/apache2/sites -available/sitio1

# nano /etc/apache2/sites -available/sitio2

Francisco José Cruz Jiménez

13
Servidor HTTP – Apache2

En este escenario ya podemos quitar de la configuración de ports.conf el puerto
8080, ya no se usará. Posteriormente reiniciamos el servidor y probamos en el
navegador los dos sitio.
# s ervic e apac he2 restart

Para indicarle a que dirección queremos ir cuando introducimos el nombre de un
sitio tenemos que configurar un archivo de nuestra máquina real. En Ubuntu es el
siguiente.
# nano /etc/hosts

En Windows es este.
C:W indowsSystem32driversetchosts

Francisco José Cruz Jiménez

14
Servidor HTTP – Apache2
Ahora probamos los sitios.
http://sitio1

http://sitio2

Con esto ya tenemos configurado y funcionando el escenario número 3.

Francisco José Cruz Jiménez

15
Servidor HTTP – Apache2

Ejercicio 2
 Descripción del escenario

Manteniendo la última configuración del escenario anterior, montar una
plataforma Moodle en unos de los sitios anteriores y llamarlo moodle.misitio.com y en
el otro sitio montar el gestor de contenido Joomla y su nombre será www.misitio.com.
Posteriormente hacer funcionar Moodle por el puerto 443 y funcionando sobre https.

 Configuración del escenario

En este escenario usaremos la máquina Debian Squeeze anterior, de nuevo como
servidor, y con la misma la configuración de red.

 Configuración del servicio

Para empezar este escenario hay que instalar todos los paquetes necesarios para
montar Moodle y Joomla, ambas funcionan bajo PHP y necesitan una base de datos
entre otras cosas. Vamos a instalar lo siguiente:
# apt-get install php5 libapache2 -mod-php5
Con lo anterior instalaremos el módulo PHP5. Con el comando siguiente
instalaremos la base de datos MySQL, que es la que hemos elegido (existen otras
opciones como PostgreSQL por ejemplo).
# apt-get install mys ql-s erver mys ql-c lient
Lo siguiente que instalaremos es el conector necesario para PHP con MySQL.
Posteriormente también instalaremos la herramienta PHPMyAdmin, que sirve para
gestionar las bases de datos a través del navegador. Tambien necesitaremos php5-curl,
es una dependencia de Moodle, el cual también tiene una serie de dependencias, pero se
instalan automáticamente, lo podemos ver en la siguiente imagen.
# apt-get install php5-mysql
# apt-get install phpmyadmin
# apt-get install php5-c url

Francisco José Cruz Jiménez

16
Servidor HTTP – Apache2

Una vez instalado todas estos módulos y dependencias vamos a comenzar a
montar los sitios. Lo primero que haremos será decirle a nuestra máquina real los
nombres que vamos a usar junto con la IP que va dirigida, como hicimos anteriormente.
# nano /etc/hosts

A continuación vamos a configurar los sitios anteriores para asignarle lo que
vamos a montar en él. Le daremos a cada uno un ServerName, indicaremos donde se
ubicará Moodle y Joomla y además separaremos los archivos logs. Moodle lo
montaremos en sitio1 y Joomla en sitio2, así que sitio1 pasará a llamarse
moodle.misito.com y sitio2 www.misitio.com.
# nano /etc/apache2/sites -available/sitio1

Como se puede ver en la imagen anterior he añadido un Alias, este sirve para
poder acceder desde el navegador a PHPMyAdmin. Luego lo probaremos.

Francisco José Cruz Jiménez

17
Servidor HTTP – Apache2
# nano /etc/apache2/sites -available/sitio2

Ahora vamos a crear el directorio donde se ubicarán ambos recursos. Para ello
ponemos:
# mkdir /var/www/misitio
A continuación necesitamos los paquetes de Moodle y Joomla, como los
tenemos en la máquina real vamos a transferirlos a la máquina virtual.
$ scp J oomla. zip root@192.168.128.210:/var/www/misitio
$ scp Moodle.tgz root@ 192.168.128.210:/var/www/mis itio
Una vez que ya tenemos los paquetes, lo siguiente es desplegarlos. Para ello
hacemos cosas distintas para cada uno, ya que uno es un zip y el otro un tgz. Para el
paquete de Moodle (el paquete contiene ya la carpeta moodle):
# tar –xvf /var/www/misitio/Moodle.tgz /var/www/misitio
Para descomprimir el zip necesitamos dicho programa, para instarlo:
# apt-get install zip
# mkdir /var/www/misitio/joomla
# unzip J oomla.zip /var/www/misitio/joomla
Tras esto ya tenemos todo listo para empezar a instalar ambas aplicaciones. Para
que todos los cambios que se han realizado surtan efecto, reiniciamos apache.
# s ervic e apac he2 restart

Francisco José Cruz Jiménez

18
Servidor HTTP – Apache2
Comenzaremos con Joomla, para acceder introducimos www.misitio.com.

Tras un par de pasos lo tendremos configurado y activo.

Francisco José Cruz Jiménez

19
Servidor HTTP – Apache2
Para configurar la plataforma Moodle nos dirigimos a moodle.misitio.com

En la siguiente imagen vemos que tenemos que crear una carpeta y darle los
correspondientes permiso de escritura.

# mkdir /var/www/misitio/moodle/moodledata
# chmod 777 /var/www/mis itio/moodle/moodledata
A continuación seleccionamos el controlador de base de datos que instalamos y
que vamos a usar.

Francisco José Cruz Jiménez

20
Servidor HTTP – Apache2

Tras estos pasos ya tendremos Moodle configurado y activo:

Francisco José Cruz Jiménez

21
Servidor HTTP – Apache2
Para probar PHPMyAdmin
192.168.128.210/phpmuadmin.

ponemos

en

el

navegador

la

dirección

Para completar este ejercicio solo nos quedar hacer seguro el sitio moodle,
funcionando por https y por el puerto 443. Para empezar habilitaremos el módulo ssl.
# a2enmod ssl

Luego generaremos un certificado que usaremos posteriormente, aunque
también podemos usar en el que trae por defecto.
# openssl req –new –x509 –days 365 –nodes –out httpd.pem –keyout
httpd.key

Francisco José Cruz Jiménez

22
Servidor HTTP – Apache2
Luego en la configuración del módulo ssl ponemos las rutas al certificado
generado anteriormente.
# nano /etc/apache2/mods -available/ssl.c onf

A continuación modificamos (o generamos un sitio nuevo para no perder el
anterior, y posteriormente lo habilitamos, deshabilitando el anterior) el sitio de Moodle,
para que escuche por el puerto 443, además añadiremos unas nuevas directivas.
# nano /etc/apache2/sites -available/moodle__ssl

Activamos el sitio nuevo y deshabilitamos el sitio antiguo.
Francisco José Cruz Jiménez

23
Servidor HTTP – Apache2
# a2ens ite moodle__ssl
# a2dissite sitio1
Para configurar Moodle para que nos redirija a https ponemos la siguiente
directiva:
# nano /var/www/misitio/moodle/c onfig.php

Tras esto reiniciamos apache y comprobamos que todo está correcto accediendo
a https://moodle.misitio.com. A continuación aceptamos el certificado.
# s ervic e apac he2 restart

Francisco José Cruz Jiménez

24
Servidor HTTP – Apache2

Para que cuando introduzcamos moodle.misitio,com y que nos redirija a
https://moodle.misitio.com necesitamos un módulo, en concreto rewrite. Lo
habilitamos. Luego añadimos en el sitio de moodle unas directivas.
# a2enmod rewrite
# nano /etc/apache2/sites -available/moodle__ssl
# s ervic e apac he2 restart

Luego comprobamos que nos redirije correctamente.

Francisco José Cruz Jiménez

25
Servidor HTTP – Apache2

Ejercicio 3
 Módulo para comprimir: mod_deflate

Este módulo para el servidor Apache2 permite comprimir el contenido de las
páginas web y todos los resultados que se devuelve a los clientes, esto reduce el uso de
ancho de banda por el servidor web y, también aumentar la velocidad de la entrega de
contenido. Para habilitarlo:
# a2enmod def late

Luego en /etc/mod-enable/deflate.conf comprobamos que tenemos lo siguiente,
si no lo añadimos.
AddOutputFilterByT ype DEFLATE text/plain
AddOutputFilterByT ype DEFLATE text/html
AddOutputFilterByT ype DEFLATE text/xml
AddOutputFilterByT ype DEFLATE text/css
AddOutputFilterByT ype DEFLATE text/javascript
AddOutputFilterByT ype DEFLATE image/s vg+xml
AddOutputFilterByT ype DEFLATE image/x-ic on
AddOutputFilterByT ype DEFLATE applic ation/xml
AddOutputFilterByT ype DEFLATE applic ation/xhtml+xml
AddOutputFilterByT ype DEFLATE applic ation/rss+xml
AddOutputFilterByT ype DEFLATE applic ation/javascript
AddOutputFilterByT ype DEFLATE applic ation/x -javascript
Una vez hecho, reiniciamos Apache.
# s ervic e apac he2 restart
Para comprobar si funciona correctamente podemos comprobarlo con cualquier
sniffer, con este en funcionamiento hacemos una petición de cualquier recurso que
nuestro servidor sirva, y tras esto, buscamos el paquete en cuestión en el sniffer y
veremos lo siguiente:
Francisco José Cruz Jiménez

26
Servidor HTTP – Apache2

 Módulo para cachear: mod_disk_cache

Sin embargo, parece una tarea un poco tonta que el servidor web tenga que estar
comprimiendo una y otra vez los mismos contenidos. Supone estar forzando al
procesador a usar ciclos que pueden sernos necesarios para otra tarea en algo que
debería de poder evitarse. Para eso existe unos módulos con los podemos conseguir
evitar esta sobrecarga inútil para el servidor. Existen tres:
El mod_file_cache es el menos flexible de los tres. Sirve para cachear ficheros
concretos en disco o memoria, pero si modificamos alguno de dichos ficheros sólo
podremos conseguir que Apache sirva la versión actualizada con un reinicio del gestor.
El mod_mem_cache nos permite cachear los ficheros en memoria. Sin
embargo, lo que teóricamente podría suponer una gran mejora de rendimiento del
servidor, nuestro servidor puede quedarse incluso con más trabajo que sin cachear.
El mod_disk_cache va almacenando en un directorio los documentos que se van
solicitando, así como sus cabeceras. Si el mod_deflate está activo y hay unos clientes
que aceptan compresión y otros que no, se cacheará el documento comprimido y sin
comprimir.
De estos tres módulos vamos a elegir el mod_disk_cache, ya es más eficiente.
Para habilitarlo, usaremos:
# a2enmod dis k_c ache.

Francisco José Cruz Jiménez

27
Servidor HTTP – Apache2

Luego en /etc/apache2/mod-enable/disk_cache.conf habilitamos CacheEnable
disk / .La carpeta donde se almacenará todo la cacheado es por defecto
/var/cache/apache2/mod_disk_cache, de todas formas se puede cambiar en este
archivo.
# nano /etc/apache2/mod-enable/dis k_c ac he.c onf

Además también en la configuración de nuestros sitios podemos añadir esta
misma directiva. Una vez hecho, reiniciamos Apache.
# s ervic e apac he2 restart
Para comprobar si funciona correctamente podemos comprobarlo haciendo una
petición de un recurso, luego hacemos una búsqueda y vemos si hay cosas en el
directorio de la cache.
# find /var/c ache/apac he2/mod_disk_c ac he

Francisco José Cruz Jiménez

28
Servidor HTTP – Apache2
 mod_userdir

El módulo userdir de Apache permite a los visitantes acceder a sitios web en su
servidor al escribir un hostname o dominio, seguido de (~) y el nombre de usuario del
dueño del sitio web. Ejemplo:
http://mis itio.c om/~nombredeusuario
Se usa mayormente como un sistema temporero de URL, que le permite a los
usuarios ver sus sitios web aún cuando no se ha configurado el DNS o no apunta hacia
el servidor. Para habilitar:
# a2enmod us erdir

En la configuración del módulo:
# nano /etc/apache2/mods -enabled/us erdir.c onf

Posteriormente crear el public_html que se mostrará cuando accedamos, en el
home del usuario en cuestión y dar permisos correspondiente.
# nano /home/usuario/public _html
Una vez reiniciado el servidor ya podemos acceder al sitio del usuario con:
http://mis itio.c om/~usuario
Como podemos imaginar no es para nada recomendable hacerlo como root,
siempre hacerlo con un usuario corriente.

Francisco José Cruz Jiménez

29
Servidor HTTP – Apache2

Ejercicio 4
Vamos a configurar un nuevo sitio para que contenga un directorio "privado" al
que sólo puedan acceder usuarios autorizados. Vamos a usar el tipo de autenticación
básica, y realizarlo usando el archivo htaccess para configurar las directivas de
seguridad y crear un archivo de usuarios/contraseñas. Luego indicaré cómo se realizaría
utilizando el tipo de autenticación "digest".
Primero vamos a “jugar” con algunas directivas nuevas. Primero creamos un
nuevo sitio llamado privamo.
# nano /etc/apache2/sites -available/privad o

Creamos su carpeta correspondiente y su html de bienvenida.

Habilitamos el sitio, reiniciamos y probamos. Tambien tenemos que añadir en
hosts privado.misitio.com
# a2ens ite privado
# s ervic e apac he2 restart

Francisco José Cruz Jiménez

30
Servidor HTTP – Apache2

Una vez que ya tenemos el sitio activo, vamos a probar unas nuevas directivas,
la primera va a ser indexes, esto hace q nos muestre un índice de todo los que contiene
la dirección, para probarlo renombramos el archivo html ( index.html ).
#mv /var/www/privado/index.html / var/www/privado/privado.index.html
Y probamos el resultado.

Como vemos, nos muestra un índice de lo que contiene la carpeta privado, para eso
la opción indexes debe estar activa en el directorio. Para evitar esto, le indicamos un -.

Francisco José Cruz Jiménez

31
Servidor HTTP – Apache2

A continuación creamos una carpeta apuntes en privado. Dentro de esta creamos
uno.doc y dos.doc.
# mkdir /var/www/privado/apuntes
# nano /var/www/privado/apuntes/uno.doc
# nano /var/www/privad o/apuntes /dos.doc

En la configuración del sitio hacemos unos cambios. Añadimos el directorio
apuntes y le decimos que indexes y que el documento que debe mostrar cuando
accedemos tiene que ser inicio.html, esto lo hacemos con la directiva Directoryindex.
# nano /etc/apache2/sites -available/privad o

Luego creamos inicio.html, que quedaría asi:

Francisco José Cruz Jiménez

32
Servidor HTTP – Apache2

Reiniciamos el servidor y comprobamos que nos muestra en el navegador.

Ahora estos últimos cambios vamos a ubicarlos en un archivo llamado .htaccess,
este nos va a permitir realizar los cambios sin tener que reiniciar el servicio, algo muy
útil. Para ello copiamos las dos directivas de la carpeta apuntes a este archivo nombrado
anteriormente (lo crearemos).
# nano /var/www/privad o/apuntes /.htacc ess

En sustitución de estas directivas, en la configuración del sitio pondremos:
# nano /etc/apache2/sites -available/privad o

Y probamos sin reiniciar.

Francisco José Cruz Jiménez

33
Servidor HTTP – Apache2

 Mod_auth_basic

Ahora pondremos el acceso al directorio anterior bajo una autentificación, como
pide le ejercicio 4 en sí. Para ello habilitamos el módulo.
# a2enmod auth_basic
A continuación tenemos que crear un archivo donde almacenar usuario y
contraseña.
# mkdir /etc /apac he2/c laves
# htpass wd –c pass .txt fran
Esto lo usamos para crear una clave encriptada. Luego añadimos al archivo
htaccess unas directivas. Posteriormente probamos.

# nano /var/www/privad o/apuntes /.htacc ess

Francisco José Cruz Jiménez

34
Servidor HTTP – Apache2

 Mod_auth_digest

Usando mod_digest de Apache podemos implementar una forma mucho más
segura de restringir el acceso a determinados lugares de un sitio web que la anterior,
Basic Authentication. Para habilitar el módulo usamos:
# a2enmod auth_digest
Luego, como en la configuración anterior, en .htaccess del sitio en cuestión
ponemos lo siguiente.
# nano /var/www/privad o/ apuntes /.htacc ess
AuthType Digest
AuthName "apuntes"
AuthDigestDomain /apuntesr/ privado.misitio.com/apuntes/
AuthDigestFile /etc/ apache2/passwd
Require valid-user
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On

Para crear el archivo con las contraseñas passwd usamos:
htdigest -c pass wd apuntes fran

Francisco José Cruz Jiménez

35
Servidor HTTP – Apache2

Ejercicio 4
 Awstats

AWStats es un programa que genera estadísticas para servidores web. Lo que
hace es mostrar el contenido del archivo de log del servidor web de forma gráfica. Entre
las cosas que muestra están el número de visitas, navegadores usados, sistemas
operativos... Para poder usarlo es necesario tener acceso de lectura al fichero de log del
servidor y poder ejecutar scripts hechos en Perl. Para instalar:
# apt-get install aws tats
Una vez instalado vamos a configurarlo. El fichero de configuración que
tocaremos será awstats.conf. Lo primero que vamos a modificar es el idioma, para ello:
# nano /etc/awstats/awstats.c onf

Francisco José Cruz Jiménez

36
Servidor HTTP – Apache2
Para que las imágenes que contiene la página que se va a generar se vean
correctamente, hay que indicarle a Awstats donde las ubicamos. Para ello disponemos
de la directiva DirIcons en el archivo de configuración Esta directiva se caracteriza
porque la ruta que indiquemos va a resulta relativa a la ubicación de la página web. Por
ello no debemos poner “DirIcons="/etc/awstats/icon/", porque estaría intentando
acceder a ”http://misitio.com/etc/awstats/icon/icon_name.png”. La solución a este
inconveniente es utilizar alias de nuestro servidor Apache. Simplemente tenemos que
añadir la siguiente línea al archivo de configuración de apache o sitio Alias /awstatsicon/ /usr/share/awstats/icon/.

Con la siguiente directiva seleccionaremos los dominios de los cuales queremos
analizar las estadísticas.

Mediante la siguiente directiva daremos la ubicación de los log de acceso de los
dominios, podemos usar el principal de apache, o en nuestro caso, como tenemos
separado los archivos log de cada dominio, indicaremos ambos.

En el navegador, ponemos nuestra dirección seguido de /cgi-bin/awstats/ y
veremos las estadísticas.
Francisco José Cruz Jiménez

37
Servidor HTTP – Apache2

Para actualizar las estadísticas:
# /usr/lib/cgi-bin/awstats.pl -c onfig=misitio.c om –update
Como podemos pensar, no vamos a estar continuamente ejecutando lo anteror
para que se actualicen los datos. Para automatizar esta tarea la agregaremos al cron.
# crontab –e

 Webalizer

Este es otra herramienta para generar estadisticas de nuestros sitios, para
instalar:
# apt-get install webalizer

Francisco José Cruz Jiménez

38
Servidor HTTP – Apache2
El archivo de configuración es webalizer.conf, es bastante parecido al anterior,
tenemos que modificar lo mismo que antes.
# nano /etc/webalizer/webalizer.c onf

Webalizer genera los reportes en formato HTML, que al igual que Awstats,
podemos observar en un navegador, pero sólo genera estos reportes las veces que
ejecutemos el programa. Por lo tanto añadiremos al cron la ejecución del programa,
como hicimos con el anterior. Para ver estadísticas:

Francisco José Cruz Jiménez

39

Más contenido relacionado

La actualidad más candente

Instalación de dns en centos
Instalación de dns en centos Instalación de dns en centos
Instalación de dns en centos
Gerson Zapata
 
Tutorial linux centos configuraciones básicas
Tutorial linux centos configuraciones básicasTutorial linux centos configuraciones básicas
Tutorial linux centos configuraciones básicas
UTP
 
Manual intalación DHCP en Centos 6
Manual intalación DHCP en Centos 6Manual intalación DHCP en Centos 6
Manual intalación DHCP en Centos 6
K-milo Rivera
 
Instalacion del servicio dns en centos
Instalacion del servicio dns en centosInstalacion del servicio dns en centos
Instalacion del servicio dns en centos
Magiss Vasquez
 
Instalación de Centos y Configuración de Samba
Instalación de Centos y Configuración de SambaInstalación de Centos y Configuración de Samba
Instalación de Centos y Configuración de Samba
María Eugenia
 
Sg t3 practica_vpn-ssh
Sg t3 practica_vpn-sshSg t3 practica_vpn-ssh
Sg t3 practica_vpn-ssh
garciadebora
 
Manual de squid creado por juanextk
Manual de squid creado por juanextkManual de squid creado por juanextk
Manual de squid creado por juanextk
juanextk
 
Red t4 practica_ftp1
Red t4 practica_ftp1Red t4 practica_ftp1
Red t4 practica_ftp1
garciadebora
 

La actualidad más candente (20)

Instalación de dns en centos
Instalación de dns en centos Instalación de dns en centos
Instalación de dns en centos
 
Tutorial linux centos configuraciones básicas
Tutorial linux centos configuraciones básicasTutorial linux centos configuraciones básicas
Tutorial linux centos configuraciones básicas
 
Servidor FTP en CentOS 6.5
Servidor FTP en CentOS 6.5Servidor FTP en CentOS 6.5
Servidor FTP en CentOS 6.5
 
Instalación y configuración de Nagios
Instalación y configuración de NagiosInstalación y configuración de Nagios
Instalación y configuración de Nagios
 
CentOS 6.4 como DNS, Apache, SSL...
CentOS 6.4 como DNS, Apache, SSL...CentOS 6.4 como DNS, Apache, SSL...
CentOS 6.4 como DNS, Apache, SSL...
 
Manual intalación DHCP en Centos 6
Manual intalación DHCP en Centos 6Manual intalación DHCP en Centos 6
Manual intalación DHCP en Centos 6
 
PROXY CENTOS 6.5
PROXY CENTOS 6.5PROXY CENTOS 6.5
PROXY CENTOS 6.5
 
Configuración del servidor smtp centos
Configuración del servidor smtp centosConfiguración del servidor smtp centos
Configuración del servidor smtp centos
 
Servidor DHCP en Centos 6.5
Servidor DHCP en Centos 6.5Servidor DHCP en Centos 6.5
Servidor DHCP en Centos 6.5
 
Manual redhat
Manual redhatManual redhat
Manual redhat
 
Guía de instalación dns en centos 6.2
Guía de instalación dns en centos 6.2Guía de instalación dns en centos 6.2
Guía de instalación dns en centos 6.2
 
Instalacion del servicio dns en centos
Instalacion del servicio dns en centosInstalacion del servicio dns en centos
Instalacion del servicio dns en centos
 
Manual de instalacion servicios en red hat
Manual de instalacion servicios en red hatManual de instalacion servicios en red hat
Manual de instalacion servicios en red hat
 
Configuracion basica de centos 6.3 linux v1
Configuracion basica de centos 6.3 linux v1Configuracion basica de centos 6.3 linux v1
Configuracion basica de centos 6.3 linux v1
 
Instalación de Centos y Configuración de Samba
Instalación de Centos y Configuración de SambaInstalación de Centos y Configuración de Samba
Instalación de Centos y Configuración de Samba
 
Dhcp en centos
Dhcp en centosDhcp en centos
Dhcp en centos
 
Sg t3 practica_vpn-ssh
Sg t3 practica_vpn-sshSg t3 practica_vpn-ssh
Sg t3 practica_vpn-ssh
 
Instalación y configuración de postfix y squirrel
Instalación y configuración de postfix y squirrelInstalación y configuración de postfix y squirrel
Instalación y configuración de postfix y squirrel
 
Manual de squid creado por juanextk
Manual de squid creado por juanextkManual de squid creado por juanextk
Manual de squid creado por juanextk
 
Red t4 practica_ftp1
Red t4 practica_ftp1Red t4 practica_ftp1
Red t4 practica_ftp1
 

Destacado

Tema 10 excepciones
Tema 10 excepcionesTema 10 excepciones
Tema 10 excepciones
jbersosa
 
Excepciones
ExcepcionesExcepciones
Excepciones
rilara
 
Clase 6 excepciones
Clase 6   excepcionesClase 6   excepciones
Clase 6 excepciones
Jorge Gamez
 

Destacado (20)

Apache: Servidores web virtuales (por IP y puerto)
Apache: Servidores web virtuales (por IP y puerto)Apache: Servidores web virtuales (por IP y puerto)
Apache: Servidores web virtuales (por IP y puerto)
 
Manual de uso de estadisticas webalizer
Manual de uso de estadisticas webalizerManual de uso de estadisticas webalizer
Manual de uso de estadisticas webalizer
 
Servidor ftp
Servidor ftpServidor ftp
Servidor ftp
 
Manual Apache 2,Awstats,Webalizer
Manual Apache 2,Awstats,WebalizerManual Apache 2,Awstats,Webalizer
Manual Apache 2,Awstats,Webalizer
 
Unidad 5: Excepciones Ejercicio 1
Unidad 5: Excepciones Ejercicio 1Unidad 5: Excepciones Ejercicio 1
Unidad 5: Excepciones Ejercicio 1
 
Java exceptions
Java exceptionsJava exceptions
Java exceptions
 
Tema 10 excepciones
Tema 10 excepcionesTema 10 excepciones
Tema 10 excepciones
 
Curso Java Inicial 7 Excepciones
Curso Java Inicial   7 ExcepcionesCurso Java Inicial   7 Excepciones
Curso Java Inicial 7 Excepciones
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en java
 
Exceptions (2)
Exceptions (2)Exceptions (2)
Exceptions (2)
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Unidad 5: Excepciones Ejercicio 2
Unidad 5: Excepciones Ejercicio 2Unidad 5: Excepciones Ejercicio 2
Unidad 5: Excepciones Ejercicio 2
 
Gestion de errores en java
Gestion de errores en javaGestion de errores en java
Gestion de errores en java
 
J2EE Struts with Hibernate Framework
J2EE Struts with Hibernate FrameworkJ2EE Struts with Hibernate Framework
J2EE Struts with Hibernate Framework
 
Unidad 6: Flujos y Archivos Ejercicio 4
Unidad 6: Flujos y Archivos Ejercicio 4Unidad 6: Flujos y Archivos Ejercicio 4
Unidad 6: Flujos y Archivos Ejercicio 4
 
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-20065. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
 
Manual servicio Dhcp en Linux y Windows
Manual servicio Dhcp en Linux y WindowsManual servicio Dhcp en Linux y Windows
Manual servicio Dhcp en Linux y Windows
 
Clase 6 excepciones
Clase 6   excepcionesClase 6   excepciones
Clase 6 excepciones
 
excepciones_java en www.fiec.espol.edu.ec
excepciones_java  en www.fiec.espol.edu.ecexcepciones_java  en www.fiec.espol.edu.ec
excepciones_java en www.fiec.espol.edu.ec
 
2. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-20062. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-2006
 

Similar a Servidor HTTP Apache

Gestion de nubes de servidores
Gestion de nubes de servidoresGestion de nubes de servidores
Gestion de nubes de servidores
rossykeles
 
Gestion de nubes d
Gestion de nubes dGestion de nubes d
Gestion de nubes d
rossykeles
 
Gestion de nubes de servidores
Gestion de nubes de servidoresGestion de nubes de servidores
Gestion de nubes de servidores
rossykeles
 
Servidores cent os final
Servidores cent os finalServidores cent os final
Servidores cent os final
Steven Restrepo
 
Instalación de servidor DHCP en Ubuntu Server 12.04
Instalación de servidor DHCP en Ubuntu Server 12.04Instalación de servidor DHCP en Ubuntu Server 12.04
Instalación de servidor DHCP en Ubuntu Server 12.04
Totus Muertos
 
Instalacion de osc inventory en ubuntu
Instalacion de osc inventory en ubuntuInstalacion de osc inventory en ubuntu
Instalacion de osc inventory en ubuntu
Ecuteb Gv
 
Memoria sere jpiris
Memoria sere jpirisMemoria sere jpiris
Memoria sere jpiris
fjpiris
 
8699418 manual-de-instalacion-y-configuracion-del-servidor-de-correo-postfix-
8699418 manual-de-instalacion-y-configuracion-del-servidor-de-correo-postfix-8699418 manual-de-instalacion-y-configuracion-del-servidor-de-correo-postfix-
8699418 manual-de-instalacion-y-configuracion-del-servidor-de-correo-postfix-
Sonia Garcia
 
Practica 2 FTP
Practica 2 FTPPractica 2 FTP
Practica 2 FTP
Terrafx9
 

Similar a Servidor HTTP Apache (20)

Gestion de nubes de servidores
Gestion de nubes de servidoresGestion de nubes de servidores
Gestion de nubes de servidores
 
Gestion de nubes d
Gestion de nubes dGestion de nubes d
Gestion de nubes d
 
Gestion de nubes de servidores
Gestion de nubes de servidoresGestion de nubes de servidores
Gestion de nubes de servidores
 
01intalacion de apache
01intalacion de apache01intalacion de apache
01intalacion de apache
 
Servidor web Apache
Servidor web ApacheServidor web Apache
Servidor web Apache
 
Servidores cent os final
Servidores cent os finalServidores cent os final
Servidores cent os final
 
Bulma 441
Bulma 441Bulma 441
Bulma 441
 
Servidorweb casero
Servidorweb caseroServidorweb casero
Servidorweb casero
 
Instalación de servidor DHCP en Ubuntu Server 12.04
Instalación de servidor DHCP en Ubuntu Server 12.04Instalación de servidor DHCP en Ubuntu Server 12.04
Instalación de servidor DHCP en Ubuntu Server 12.04
 
Instalacion de osc inventory en ubuntu
Instalacion de osc inventory en ubuntuInstalacion de osc inventory en ubuntu
Instalacion de osc inventory en ubuntu
 
Configuración maquinas virtuales
Configuración maquinas virtualesConfiguración maquinas virtuales
Configuración maquinas virtuales
 
CACTI herramienta de monitoreo
CACTI herramienta de monitoreoCACTI herramienta de monitoreo
CACTI herramienta de monitoreo
 
SSH en Ubuntu - Transferencia Segura
SSH en Ubuntu - Transferencia SeguraSSH en Ubuntu - Transferencia Segura
SSH en Ubuntu - Transferencia Segura
 
Vps local virtualbox
Vps local virtualboxVps local virtualbox
Vps local virtualbox
 
Edison guaraca
Edison guaracaEdison guaraca
Edison guaraca
 
Laboratorio Nº 9.1.pdf
Laboratorio Nº 9.1.pdfLaboratorio Nº 9.1.pdf
Laboratorio Nº 9.1.pdf
 
Instalacion servicio web en debian
Instalacion servicio web en debianInstalacion servicio web en debian
Instalacion servicio web en debian
 
Memoria sere jpiris
Memoria sere jpirisMemoria sere jpiris
Memoria sere jpiris
 
8699418 manual-de-instalacion-y-configuracion-del-servidor-de-correo-postfix-
8699418 manual-de-instalacion-y-configuracion-del-servidor-de-correo-postfix-8699418 manual-de-instalacion-y-configuracion-del-servidor-de-correo-postfix-
8699418 manual-de-instalacion-y-configuracion-del-servidor-de-correo-postfix-
 
Practica 2 FTP
Practica 2 FTPPractica 2 FTP
Practica 2 FTP
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Último (15)

presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 

Servidor HTTP Apache

  • 1. SRI SERVIDOR HTTP – APACHE2 Francisco José Cruz Jiménez 2º ASIR
  • 2. Servidor HTTP – Apache2 INDICE : Instalación del servicio HTTP en Debian Squeeze ............................................................. 3 Ejercicio 1 .............................................................................................................................. 4 Escenario 1: Configura dos VirtualHosts con distinto interfaz, mismo puerto ............. 4  Descripción del escenario ...................................................................................... 4  Configuración del escenario .................................................................................. 4  Configuración del servicio .................................................................................... 7 Escenario 2: Configura dos VirtualHosts con mismo interfaz, diferente puerto. ....... 10  Descripción del escenario .................................................................................... 10  Configuración del escenario ................................................................................ 10  Configuración del servicio .................................................................................. 10 Escenario 3: Configura dos VH con mismo interfaz y puerto y distinto nombre. ...... 12  Descripción del escenario .................................................................................... 13  Configuración del escenario ................................................................................ 13  Configuración del servicio .................................................................................. 13 Ejercicio 2 ............................................................................................................................ 16  Descripción del escenario .................................................................................... 16  Configuración del escenario ................................................................................ 16  Configuración del servicio .................................................................................. 16 Ejercicio 3 ............................................................................................................................ 26  Módulo para comprimir: mod_deflate ................................................................ 26  Módulo para cachear: mod_disk_cache ............................................................. 27  mod_userdir .......................................................................................................... 29 Ejercicio 4 ............................................................................................................................ 30  Mod_auth_basic ................................................................................................... 34  Mod_auth_digest .................................................................................................. 35 Ejercicio 4 ............................................................................................................................ 36  Awstats ................................................................................................................. 36  Webalizer .............................................................................................................. 38 Francisco José Cruz Jiménez 2
  • 3. Servidor HTTP – Apache2 Instalación del servicio HTTP en Debian Squeeze Un servidor web sirve contenido a un navegador, este pide el recurso que sea, el servidor carga el archivo (para contenido estático, por ejemplo HTML) o procesa la aplicación y sirve el resultado (para contenidos dinámicos, por ejemplo PHP) y lo sirve a través de la red al navegador del cliente. Este intercambio es mediado por el navegador y el servidor que hablan el uno con el otro mediante HTTP, de ahí el nombre servidor HTTP. A continuación vamos a instalar un servidor web en nuestra máquina Debian Squeeze, en concreto instalaremos Apache2, existen muchos servidores web actualmente (Nginx, IIS, Cherokee, lighttpd,…), pero el más usado es Apache, las estadísticas hablan de casi un 60% de los servidores web existentes son Apache. Para instalarlo usaremos: # apt-get install apac he2 Ahora comprobamos que la instalación ha sido satisfactoria observando que existen procesos apache2, hay que resaltar que apache no solo tiene un proceso como los servicios anteriormente vistos, sino que posee varios pares de ellos, dependiendo si su MPM es Worker o Prefork (El modo Worker trabaja con hilos, esto hace que tenga menos procesos que si fuese modo Prefork, que por cada petición crea un proceso). # ps aux | egrep apache2 Además también comprobaremos que el puerto 80 está a la escucha. # netstat –natup | egrep apac he2 Otra comprobación que podemos hacer es poner la dirección IP del servidor en un navegador, si apache2 está correcto nos mostrara lo siguiente. Francisco José Cruz Jiménez 3
  • 4. Servidor HTTP – Apache2 Ejercicio 1 Escenario 1: Configura dos VirtualHosts con distinto interfaz, mismo puerto  Descripción del escenario En esta escenario de la práctica necesitaremos una máquina con Debian Squeeze para montar el servicio web, se utilizará una máquina virtual con dos interfaces distintos, como dice el enunciado, y como cliente usaremos nuestra máquina real.  Configuración del escenario Como he explicado antes, en esta práctica usaremos una máquina Debian Squeeze como servidor, se utilizará una máquina virtual con dos interfaces. La configuración de red que hay que establecer en la MV será de las dos interfaces configuradas como Adaptador Solo-Anfitrión, ya que tenemos que comunicarnos con la máquina real por medio de las dos interfaces y seria poco serio establecer ambas interfaces como Adaptador Puente. Para usar este modo de red hay que crear dos adaptadores vbox, para esto vamos a Archivo  Preferencias  Red  Agregar Francisco José Cruz Jiménez 4
  • 5. Servidor HTTP – Apache2 adaptador solo-anfitrión. Estas son capturas de cómo configuramos ambos adaptadores. vboxnet 0 vboxnet 1 Ahora en la configuración de red de la MV elegimos un adaptador de los creados anteriormente para cada interfaz (vboxnet0 para el adaptador 1 y vboxnet2 para el adaptador 2) . Nos quedará así. Francisco José Cruz Jiménez 5
  • 6. Servidor HTTP – Apache2 También tenemos que tener en cuenta que necesitamos conexión a internet para instalar desde los repositorios Apache2, para ello utilizaremos otro tercer interfaz que configuraremos en Adaptador Puente o NAT. Esta configuración no la explicaré ya que no es parte del escenario y también resulta un tanto trivial. Para terminar con la configuración del escenario necesitamos configurar las IP de las interfaces en la máquina Debian, para ello editamos el fichero de configuración de interfaces y le daremos esta configuración. # nano /etc/network/interf ac es Para que tenga efecto estas modificaciones tenemos que reiniciar el servicio de networking, además antes levantaremos la eth1, ya que está desactivada. # ifup eth1 # s ervic e networking res tart Francisco José Cruz Jiménez 6
  • 7. Servidor HTTP – Apache2  Configuración del servicio Configuraremos dos VirtualHosts diferentes, cada uno escuchará en cada interfaz, ambos por el mismo puerto, el 80. Antes explicaré un poco Apache2. Tras la instalación, éste se sitúa por defecto en /etc/apache2, en dicha carpeta se encuentran otras carpetas y archivos referentes a la configuración de este servidor web. Existen cuatro carpetas realmente importantes, sites-available, sites-enabled, mods-available y mods-enabled, en ellas encontramos los módulos y sitios disponibles (available) y los habilitados (enabled), decir que nosotros solo creamos los sitios en sites-available, lo que se encuentra en sites-enabled son enlaces simbólicos que apuntan a los sitios de la anterior carpeta que estén habilitados, lo mismo ocurre con los módulos. En cuanto a archivos de configuración, nosotros tocaremos sobretodo ports.conf, donde configuraremos los puertos que están a la escucha. En apache2.conf se encuentra la configuración general de Apache2. Una vez introducido un poco la estructura del directorio de Apache2 vamos con la configuración de los VirtualHost. Una vez que tenemos instalado Apache2, crearemos ambos sitios en sites-available, la configuración que le vamos a dar es la siguiente. # nano /etc/apache2/sites -available/sitio1 # nano /etc/apache2/sites -available/sitio2 Francisco José Cruz Jiménez 7
  • 8. Servidor HTTP – Apache2 Como podemos ver, he modificado donde añadir entradas al LOG y al ACCESS. Lo haré para todos los sitios que cree en esta práctica. En ports.conf no tenemos que realizar ningún cambio, ya q ambos puertos son el 80 y en este fichero de configuración de puertos aparece por defecto que escuche por el puerto 80. Para que nuestro sitio nos muestre algo cuando lo probemos crearemos un index.html en los DocumentRoot de ambos sitios. # mkdir /var/www/sitio1 # nano /var/www/sitio1/index.html Y realizamos lo mismo pero en /var/www/sitio2. # mkdir /var/www/sitio2 # nano /var/www/sitio2/index.html Como dije antes, los sitios activados aparecen como enlaces simbólicos en sitesenabled, para habilitar sitios podemos hacerlo de dos modos, o bien hacemos nosotros manualmente los enlaces con ln –s, o podemos usar a2ensite. # a2ens ite sitio1 Francisco José Cruz Jiménez 8
  • 9. Servidor HTTP – Apache2 # a2ens ite sitio2 Una vez realizadas las configuraciones tenemos que teiniciar el servidor para que los cambios se realicen, para ello utilizamos lo siguiente. # s ervic e apac he2 restart Para cuando al teiniciar el servidor nos devuelva un error de sintaxis podemos saber dónde está el error de sintaxis, para ello usamos: # apache2c tl c onfigtes t Para probar nuestros sitios nos vamos a un navegador en la máquina real, ponemos la IP correspondiente a cada sitio en la barra de dirección y comprobamos que lo que nos muestra es lo correspondiente a esos sitios. http://192.168.51.2 http://192.168.52.2 Como vemos está todo correcto y funciona correctamente. Con esto acabamos con este escenario. Francisco José Cruz Jiménez 9
  • 10. Servidor HTTP – Apache2 Escenario 2: Configura dos VirtualHosts con mismo interfaz, diferente puerto.  Descripción del escenario En este segundo escenario de la práctica necesitaremos una máquina con Debian Squeeze para montar el servicio web, se utilizará la máquina virtual anterior, pero con una sola interfaz y como cliente usaremos nuestra máquina real.  Configuración del escenario En este escenario usaremos una máquina Debian Squeeze como servidor, como el anterior escenario, la misma máquina, pero en cambio solo necesitamos una interfaz. La configuración de red que vamos a establecer esta vez en la MV va a ser de Adaptador Puente, aunque también podemos usar Adaptador Solo-Anfitrión, ya que tenemos que comunicarnos con la máquina real por medio de esta interfaz y puede valer las dos.  Configuración del servicio En este escenario configuraremos dos VirtualHosts diferentes, tal como lo hicimos en el anterior escenario (los sitios serán los mismos, solo modificaré lo que sea necesario), debemos configurarlos para que cada sitio escuche por un puerto distinto, ya que la interfaz será la misma, es decir, para acceder al sitio tenemos que usar http:// IP : puerto. Para comenzar, modificaremos los sitios que tenemos del anterior escenario y cambiaremos los puertos de escucha, para sitio1 usaremos el puerto 80 y para sitio2 el puerto 8080. # nano /etc/apache2/sites -available/sitio1 Francisco José Cruz Jiménez 10
  • 11. Servidor HTTP – Apache2 # nano /etc/apache2/sites -available/sitio2 En este escenario si tenemos que modificar el archivo ports.conf, ya que necesitamos añadir a la configuración de puertos que escuche por el 8080. # nano /etc/apache2/ports.c onf Francisco José Cruz Jiménez 11
  • 12. Servidor HTTP – Apache2 Posteriormente reiniciamos el servidor y probamos en el navegador los dos sitios, indicando cada puerto al que va. # s ervic e apac he2 restart http://192.168. 128.2 http://192.168.128.2:8080 Con esto ya tenemos configurado y funcionando el escenario número 2. Pasamos al siguiente. Escenario 3: Configura dos VirtualHosts con mismo interfaz, mismo puerto y distinto nombre. Francisco José Cruz Jiménez 12
  • 13. Servidor HTTP – Apache2  Descripción del escenario En este tercer escenario de la práctica, como en los dos anteriores, necesitaremos una máquina con Debian Squeeze para montar el servicio web, se utilizará una máquina virtual con una interfaz y como cliente usaremos nuestra máquina real.  Configuración del escenario En este escenario usaremos la máquina Debian Squeeze anterior, de nuevo como servidor, y con la misma la configuración de red.  Configuración del servicio En este escenario configuraremos dos VirtualHosts diferentes, tal como lo hicimos en el anterior escenario (los sitios serán los mismos, solo modificaré lo que sea necesario), debemos configurarlos para que cada sitio escuche el mismo puerto, diferenciaremos ambos sitos por su nombre, es decir, para acceder al sitio tenemos que usar http://sitio1.com. Para comenzar, modificaremos los sitios que tenemos del anterior escenario y añadiremos la directiva ServerName. # nano /etc/apache2/sites -available/sitio1 # nano /etc/apache2/sites -available/sitio2 Francisco José Cruz Jiménez 13
  • 14. Servidor HTTP – Apache2 En este escenario ya podemos quitar de la configuración de ports.conf el puerto 8080, ya no se usará. Posteriormente reiniciamos el servidor y probamos en el navegador los dos sitio. # s ervic e apac he2 restart Para indicarle a que dirección queremos ir cuando introducimos el nombre de un sitio tenemos que configurar un archivo de nuestra máquina real. En Ubuntu es el siguiente. # nano /etc/hosts En Windows es este. C:W indowsSystem32driversetchosts Francisco José Cruz Jiménez 14
  • 15. Servidor HTTP – Apache2 Ahora probamos los sitios. http://sitio1 http://sitio2 Con esto ya tenemos configurado y funcionando el escenario número 3. Francisco José Cruz Jiménez 15
  • 16. Servidor HTTP – Apache2 Ejercicio 2  Descripción del escenario Manteniendo la última configuración del escenario anterior, montar una plataforma Moodle en unos de los sitios anteriores y llamarlo moodle.misitio.com y en el otro sitio montar el gestor de contenido Joomla y su nombre será www.misitio.com. Posteriormente hacer funcionar Moodle por el puerto 443 y funcionando sobre https.  Configuración del escenario En este escenario usaremos la máquina Debian Squeeze anterior, de nuevo como servidor, y con la misma la configuración de red.  Configuración del servicio Para empezar este escenario hay que instalar todos los paquetes necesarios para montar Moodle y Joomla, ambas funcionan bajo PHP y necesitan una base de datos entre otras cosas. Vamos a instalar lo siguiente: # apt-get install php5 libapache2 -mod-php5 Con lo anterior instalaremos el módulo PHP5. Con el comando siguiente instalaremos la base de datos MySQL, que es la que hemos elegido (existen otras opciones como PostgreSQL por ejemplo). # apt-get install mys ql-s erver mys ql-c lient Lo siguiente que instalaremos es el conector necesario para PHP con MySQL. Posteriormente también instalaremos la herramienta PHPMyAdmin, que sirve para gestionar las bases de datos a través del navegador. Tambien necesitaremos php5-curl, es una dependencia de Moodle, el cual también tiene una serie de dependencias, pero se instalan automáticamente, lo podemos ver en la siguiente imagen. # apt-get install php5-mysql # apt-get install phpmyadmin # apt-get install php5-c url Francisco José Cruz Jiménez 16
  • 17. Servidor HTTP – Apache2 Una vez instalado todas estos módulos y dependencias vamos a comenzar a montar los sitios. Lo primero que haremos será decirle a nuestra máquina real los nombres que vamos a usar junto con la IP que va dirigida, como hicimos anteriormente. # nano /etc/hosts A continuación vamos a configurar los sitios anteriores para asignarle lo que vamos a montar en él. Le daremos a cada uno un ServerName, indicaremos donde se ubicará Moodle y Joomla y además separaremos los archivos logs. Moodle lo montaremos en sitio1 y Joomla en sitio2, así que sitio1 pasará a llamarse moodle.misito.com y sitio2 www.misitio.com. # nano /etc/apache2/sites -available/sitio1 Como se puede ver en la imagen anterior he añadido un Alias, este sirve para poder acceder desde el navegador a PHPMyAdmin. Luego lo probaremos. Francisco José Cruz Jiménez 17
  • 18. Servidor HTTP – Apache2 # nano /etc/apache2/sites -available/sitio2 Ahora vamos a crear el directorio donde se ubicarán ambos recursos. Para ello ponemos: # mkdir /var/www/misitio A continuación necesitamos los paquetes de Moodle y Joomla, como los tenemos en la máquina real vamos a transferirlos a la máquina virtual. $ scp J oomla. zip root@192.168.128.210:/var/www/misitio $ scp Moodle.tgz root@ 192.168.128.210:/var/www/mis itio Una vez que ya tenemos los paquetes, lo siguiente es desplegarlos. Para ello hacemos cosas distintas para cada uno, ya que uno es un zip y el otro un tgz. Para el paquete de Moodle (el paquete contiene ya la carpeta moodle): # tar –xvf /var/www/misitio/Moodle.tgz /var/www/misitio Para descomprimir el zip necesitamos dicho programa, para instarlo: # apt-get install zip # mkdir /var/www/misitio/joomla # unzip J oomla.zip /var/www/misitio/joomla Tras esto ya tenemos todo listo para empezar a instalar ambas aplicaciones. Para que todos los cambios que se han realizado surtan efecto, reiniciamos apache. # s ervic e apac he2 restart Francisco José Cruz Jiménez 18
  • 19. Servidor HTTP – Apache2 Comenzaremos con Joomla, para acceder introducimos www.misitio.com. Tras un par de pasos lo tendremos configurado y activo. Francisco José Cruz Jiménez 19
  • 20. Servidor HTTP – Apache2 Para configurar la plataforma Moodle nos dirigimos a moodle.misitio.com En la siguiente imagen vemos que tenemos que crear una carpeta y darle los correspondientes permiso de escritura. # mkdir /var/www/misitio/moodle/moodledata # chmod 777 /var/www/mis itio/moodle/moodledata A continuación seleccionamos el controlador de base de datos que instalamos y que vamos a usar. Francisco José Cruz Jiménez 20
  • 21. Servidor HTTP – Apache2 Tras estos pasos ya tendremos Moodle configurado y activo: Francisco José Cruz Jiménez 21
  • 22. Servidor HTTP – Apache2 Para probar PHPMyAdmin 192.168.128.210/phpmuadmin. ponemos en el navegador la dirección Para completar este ejercicio solo nos quedar hacer seguro el sitio moodle, funcionando por https y por el puerto 443. Para empezar habilitaremos el módulo ssl. # a2enmod ssl Luego generaremos un certificado que usaremos posteriormente, aunque también podemos usar en el que trae por defecto. # openssl req –new –x509 –days 365 –nodes –out httpd.pem –keyout httpd.key Francisco José Cruz Jiménez 22
  • 23. Servidor HTTP – Apache2 Luego en la configuración del módulo ssl ponemos las rutas al certificado generado anteriormente. # nano /etc/apache2/mods -available/ssl.c onf A continuación modificamos (o generamos un sitio nuevo para no perder el anterior, y posteriormente lo habilitamos, deshabilitando el anterior) el sitio de Moodle, para que escuche por el puerto 443, además añadiremos unas nuevas directivas. # nano /etc/apache2/sites -available/moodle__ssl Activamos el sitio nuevo y deshabilitamos el sitio antiguo. Francisco José Cruz Jiménez 23
  • 24. Servidor HTTP – Apache2 # a2ens ite moodle__ssl # a2dissite sitio1 Para configurar Moodle para que nos redirija a https ponemos la siguiente directiva: # nano /var/www/misitio/moodle/c onfig.php Tras esto reiniciamos apache y comprobamos que todo está correcto accediendo a https://moodle.misitio.com. A continuación aceptamos el certificado. # s ervic e apac he2 restart Francisco José Cruz Jiménez 24
  • 25. Servidor HTTP – Apache2 Para que cuando introduzcamos moodle.misitio,com y que nos redirija a https://moodle.misitio.com necesitamos un módulo, en concreto rewrite. Lo habilitamos. Luego añadimos en el sitio de moodle unas directivas. # a2enmod rewrite # nano /etc/apache2/sites -available/moodle__ssl # s ervic e apac he2 restart Luego comprobamos que nos redirije correctamente. Francisco José Cruz Jiménez 25
  • 26. Servidor HTTP – Apache2 Ejercicio 3  Módulo para comprimir: mod_deflate Este módulo para el servidor Apache2 permite comprimir el contenido de las páginas web y todos los resultados que se devuelve a los clientes, esto reduce el uso de ancho de banda por el servidor web y, también aumentar la velocidad de la entrega de contenido. Para habilitarlo: # a2enmod def late Luego en /etc/mod-enable/deflate.conf comprobamos que tenemos lo siguiente, si no lo añadimos. AddOutputFilterByT ype DEFLATE text/plain AddOutputFilterByT ype DEFLATE text/html AddOutputFilterByT ype DEFLATE text/xml AddOutputFilterByT ype DEFLATE text/css AddOutputFilterByT ype DEFLATE text/javascript AddOutputFilterByT ype DEFLATE image/s vg+xml AddOutputFilterByT ype DEFLATE image/x-ic on AddOutputFilterByT ype DEFLATE applic ation/xml AddOutputFilterByT ype DEFLATE applic ation/xhtml+xml AddOutputFilterByT ype DEFLATE applic ation/rss+xml AddOutputFilterByT ype DEFLATE applic ation/javascript AddOutputFilterByT ype DEFLATE applic ation/x -javascript Una vez hecho, reiniciamos Apache. # s ervic e apac he2 restart Para comprobar si funciona correctamente podemos comprobarlo con cualquier sniffer, con este en funcionamiento hacemos una petición de cualquier recurso que nuestro servidor sirva, y tras esto, buscamos el paquete en cuestión en el sniffer y veremos lo siguiente: Francisco José Cruz Jiménez 26
  • 27. Servidor HTTP – Apache2  Módulo para cachear: mod_disk_cache Sin embargo, parece una tarea un poco tonta que el servidor web tenga que estar comprimiendo una y otra vez los mismos contenidos. Supone estar forzando al procesador a usar ciclos que pueden sernos necesarios para otra tarea en algo que debería de poder evitarse. Para eso existe unos módulos con los podemos conseguir evitar esta sobrecarga inútil para el servidor. Existen tres: El mod_file_cache es el menos flexible de los tres. Sirve para cachear ficheros concretos en disco o memoria, pero si modificamos alguno de dichos ficheros sólo podremos conseguir que Apache sirva la versión actualizada con un reinicio del gestor. El mod_mem_cache nos permite cachear los ficheros en memoria. Sin embargo, lo que teóricamente podría suponer una gran mejora de rendimiento del servidor, nuestro servidor puede quedarse incluso con más trabajo que sin cachear. El mod_disk_cache va almacenando en un directorio los documentos que se van solicitando, así como sus cabeceras. Si el mod_deflate está activo y hay unos clientes que aceptan compresión y otros que no, se cacheará el documento comprimido y sin comprimir. De estos tres módulos vamos a elegir el mod_disk_cache, ya es más eficiente. Para habilitarlo, usaremos: # a2enmod dis k_c ache. Francisco José Cruz Jiménez 27
  • 28. Servidor HTTP – Apache2 Luego en /etc/apache2/mod-enable/disk_cache.conf habilitamos CacheEnable disk / .La carpeta donde se almacenará todo la cacheado es por defecto /var/cache/apache2/mod_disk_cache, de todas formas se puede cambiar en este archivo. # nano /etc/apache2/mod-enable/dis k_c ac he.c onf Además también en la configuración de nuestros sitios podemos añadir esta misma directiva. Una vez hecho, reiniciamos Apache. # s ervic e apac he2 restart Para comprobar si funciona correctamente podemos comprobarlo haciendo una petición de un recurso, luego hacemos una búsqueda y vemos si hay cosas en el directorio de la cache. # find /var/c ache/apac he2/mod_disk_c ac he Francisco José Cruz Jiménez 28
  • 29. Servidor HTTP – Apache2  mod_userdir El módulo userdir de Apache permite a los visitantes acceder a sitios web en su servidor al escribir un hostname o dominio, seguido de (~) y el nombre de usuario del dueño del sitio web. Ejemplo: http://mis itio.c om/~nombredeusuario Se usa mayormente como un sistema temporero de URL, que le permite a los usuarios ver sus sitios web aún cuando no se ha configurado el DNS o no apunta hacia el servidor. Para habilitar: # a2enmod us erdir En la configuración del módulo: # nano /etc/apache2/mods -enabled/us erdir.c onf Posteriormente crear el public_html que se mostrará cuando accedamos, en el home del usuario en cuestión y dar permisos correspondiente. # nano /home/usuario/public _html Una vez reiniciado el servidor ya podemos acceder al sitio del usuario con: http://mis itio.c om/~usuario Como podemos imaginar no es para nada recomendable hacerlo como root, siempre hacerlo con un usuario corriente. Francisco José Cruz Jiménez 29
  • 30. Servidor HTTP – Apache2 Ejercicio 4 Vamos a configurar un nuevo sitio para que contenga un directorio "privado" al que sólo puedan acceder usuarios autorizados. Vamos a usar el tipo de autenticación básica, y realizarlo usando el archivo htaccess para configurar las directivas de seguridad y crear un archivo de usuarios/contraseñas. Luego indicaré cómo se realizaría utilizando el tipo de autenticación "digest". Primero vamos a “jugar” con algunas directivas nuevas. Primero creamos un nuevo sitio llamado privamo. # nano /etc/apache2/sites -available/privad o Creamos su carpeta correspondiente y su html de bienvenida. Habilitamos el sitio, reiniciamos y probamos. Tambien tenemos que añadir en hosts privado.misitio.com # a2ens ite privado # s ervic e apac he2 restart Francisco José Cruz Jiménez 30
  • 31. Servidor HTTP – Apache2 Una vez que ya tenemos el sitio activo, vamos a probar unas nuevas directivas, la primera va a ser indexes, esto hace q nos muestre un índice de todo los que contiene la dirección, para probarlo renombramos el archivo html ( index.html ). #mv /var/www/privado/index.html / var/www/privado/privado.index.html Y probamos el resultado. Como vemos, nos muestra un índice de lo que contiene la carpeta privado, para eso la opción indexes debe estar activa en el directorio. Para evitar esto, le indicamos un -. Francisco José Cruz Jiménez 31
  • 32. Servidor HTTP – Apache2 A continuación creamos una carpeta apuntes en privado. Dentro de esta creamos uno.doc y dos.doc. # mkdir /var/www/privado/apuntes # nano /var/www/privado/apuntes/uno.doc # nano /var/www/privad o/apuntes /dos.doc En la configuración del sitio hacemos unos cambios. Añadimos el directorio apuntes y le decimos que indexes y que el documento que debe mostrar cuando accedemos tiene que ser inicio.html, esto lo hacemos con la directiva Directoryindex. # nano /etc/apache2/sites -available/privad o Luego creamos inicio.html, que quedaría asi: Francisco José Cruz Jiménez 32
  • 33. Servidor HTTP – Apache2 Reiniciamos el servidor y comprobamos que nos muestra en el navegador. Ahora estos últimos cambios vamos a ubicarlos en un archivo llamado .htaccess, este nos va a permitir realizar los cambios sin tener que reiniciar el servicio, algo muy útil. Para ello copiamos las dos directivas de la carpeta apuntes a este archivo nombrado anteriormente (lo crearemos). # nano /var/www/privad o/apuntes /.htacc ess En sustitución de estas directivas, en la configuración del sitio pondremos: # nano /etc/apache2/sites -available/privad o Y probamos sin reiniciar. Francisco José Cruz Jiménez 33
  • 34. Servidor HTTP – Apache2  Mod_auth_basic Ahora pondremos el acceso al directorio anterior bajo una autentificación, como pide le ejercicio 4 en sí. Para ello habilitamos el módulo. # a2enmod auth_basic A continuación tenemos que crear un archivo donde almacenar usuario y contraseña. # mkdir /etc /apac he2/c laves # htpass wd –c pass .txt fran Esto lo usamos para crear una clave encriptada. Luego añadimos al archivo htaccess unas directivas. Posteriormente probamos. # nano /var/www/privad o/apuntes /.htacc ess Francisco José Cruz Jiménez 34
  • 35. Servidor HTTP – Apache2  Mod_auth_digest Usando mod_digest de Apache podemos implementar una forma mucho más segura de restringir el acceso a determinados lugares de un sitio web que la anterior, Basic Authentication. Para habilitar el módulo usamos: # a2enmod auth_digest Luego, como en la configuración anterior, en .htaccess del sitio en cuestión ponemos lo siguiente. # nano /var/www/privad o/ apuntes /.htacc ess AuthType Digest AuthName "apuntes" AuthDigestDomain /apuntesr/ privado.misitio.com/apuntes/ AuthDigestFile /etc/ apache2/passwd Require valid-user BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On Para crear el archivo con las contraseñas passwd usamos: htdigest -c pass wd apuntes fran Francisco José Cruz Jiménez 35
  • 36. Servidor HTTP – Apache2 Ejercicio 4  Awstats AWStats es un programa que genera estadísticas para servidores web. Lo que hace es mostrar el contenido del archivo de log del servidor web de forma gráfica. Entre las cosas que muestra están el número de visitas, navegadores usados, sistemas operativos... Para poder usarlo es necesario tener acceso de lectura al fichero de log del servidor y poder ejecutar scripts hechos en Perl. Para instalar: # apt-get install aws tats Una vez instalado vamos a configurarlo. El fichero de configuración que tocaremos será awstats.conf. Lo primero que vamos a modificar es el idioma, para ello: # nano /etc/awstats/awstats.c onf Francisco José Cruz Jiménez 36
  • 37. Servidor HTTP – Apache2 Para que las imágenes que contiene la página que se va a generar se vean correctamente, hay que indicarle a Awstats donde las ubicamos. Para ello disponemos de la directiva DirIcons en el archivo de configuración Esta directiva se caracteriza porque la ruta que indiquemos va a resulta relativa a la ubicación de la página web. Por ello no debemos poner “DirIcons="/etc/awstats/icon/", porque estaría intentando acceder a ”http://misitio.com/etc/awstats/icon/icon_name.png”. La solución a este inconveniente es utilizar alias de nuestro servidor Apache. Simplemente tenemos que añadir la siguiente línea al archivo de configuración de apache o sitio Alias /awstatsicon/ /usr/share/awstats/icon/. Con la siguiente directiva seleccionaremos los dominios de los cuales queremos analizar las estadísticas. Mediante la siguiente directiva daremos la ubicación de los log de acceso de los dominios, podemos usar el principal de apache, o en nuestro caso, como tenemos separado los archivos log de cada dominio, indicaremos ambos. En el navegador, ponemos nuestra dirección seguido de /cgi-bin/awstats/ y veremos las estadísticas. Francisco José Cruz Jiménez 37
  • 38. Servidor HTTP – Apache2 Para actualizar las estadísticas: # /usr/lib/cgi-bin/awstats.pl -c onfig=misitio.c om –update Como podemos pensar, no vamos a estar continuamente ejecutando lo anteror para que se actualicen los datos. Para automatizar esta tarea la agregaremos al cron. # crontab –e  Webalizer Este es otra herramienta para generar estadisticas de nuestros sitios, para instalar: # apt-get install webalizer Francisco José Cruz Jiménez 38
  • 39. Servidor HTTP – Apache2 El archivo de configuración es webalizer.conf, es bastante parecido al anterior, tenemos que modificar lo mismo que antes. # nano /etc/webalizer/webalizer.c onf Webalizer genera los reportes en formato HTML, que al igual que Awstats, podemos observar en un navegador, pero sólo genera estos reportes las veces que ejecutemos el programa. Por lo tanto añadiremos al cron la ejecución del programa, como hicimos con el anterior. Para ver estadísticas: Francisco José Cruz Jiménez 39