You are on page 1of 6

SRI. Relacin ejercicios. Tema 4.

Servidores Web 1

Se partir de la configuracin de red siguiente:

a. Los equipos estarn en la red a la que pertenezca la puerta de enlace del router-modem de vuestra
casa (192.168.X.0/24). Lo ms probable es que sea la red 192.168.1.0/24 o bien la 192.168.0.0/24.
b. La MV Linux pertenecer a la red anterior con IP 192.168.X.Y3, con puerta de enlace la de vuestro
router-modem de casa y tierra como nombre de host. Sustituye el valor de Y con el nmero de
puesto habitual de clase. Por ejemplo si la red de casa es 192.168.1.0/24 y usas el puesto 7 en clase,
la IP de la MV Linux sera 192.168.1.73.
c. La MV Windows Server se denominar marte, tendr como IP 192.168.X.Y4 y como puerta de
enlace la de vuestro router-modem de casa.
d. La MV Linux (tierra) ser un servidor DNS y tendr autoridad sobre el dominio sistema.sol. De igual
forma actuar como servidor maestro y tendr autoridad sobre la zona de resolucin inversa de la red
192.168.X.0/24. Por lo tanto el servidor DNS del dominio ser tierra.sistema.sol.
e. Los nombres de los equipos y su IP sern:
neptuno.sistema.sol 192.168.X.Y1 (host imaginario)
urano.sistema.sol 192.168.X.Y2 (host imaginario)
tierra.sistema.sol 192.168.X.Y3 (mquina virtual Linux)
marte.sistema.sol 192.168.X.Y4 (mquina virtual Windows Server)

f. Las dos MVs usarn como servidor DNS el instalado en tierra y aadirn el sufijo sistema.sol a los
nombres de dominio no FDQN.
g. Probar con el comando nslookup desde las dos MVs que los nombres de dominio se resuelven
adecuadamente. Si el servicio DNS no funciona, no se puede seguir con los ejercicios

1. Realizar y configurar alojamiento virtual por nombres de 2 sitios web en Apache


sobre Linux.

Se quiere crear y habilitar dos servidores web para los dominios apolo.sistema.sol y soyuz.sistema.sol
alojados en el host tierra.sistema.sol. Las caractersticas de stos dos dominios se detallarn en la
lista de pasos que se debern realizar.

1. Configurar el servidor DNS para que resuelva los nombres apolo.sistema.sol y soyuz.sistema.sol
como alias de tierra.sistema.sol.

Se debe aadir dos RR de tipo CNAME al archivo de zona de sistema.sol


apolo.sistema.sol. IN CNAME tierra.sistema.sol.
soyuz.sistema.sol. IN CNAME tierra.sistema.sol.

2. A continuacin probar mediante nslookup o dig que ambos nombres de dominio se resuelven
adecuadamente.

alumno@tierra:~$ nslookup apolo.sistema.sol


Server: 192.168.1.103
Address: 192.168.1.103#53

apolo.sistema.sol canonical name = tierra.sistema.sol.


Name: tierra.sistema.sol
Address: 192.168.1.103

alumno@tierra:~$ nslookup soyuz.sistema.sol


Server: 192.168.1.103
Address: 192.168.1.103#53

soyuz.sistema.sol canonical name = tierra.sistema.sol.


Name: tierra.sistema.sol
Address: 192.168.1.103

3. Deshabilitar el servidor virtual por defecto de Apache.


$sudo a2dissite default

IES Zaidn Vergeles de Granada. Departamento de Informtica.


2 SRI. Relacin ejercicios. Tema 4. Servidores Web

4. Crear los directorios raz de cada uno de los servidores. Por ejemplo pudieran ser
/var/www/apolo y /var/www/soyuz.
a) Aadir a cada uno de los directorios anteriores respectivamente un archivo de nombre
apolo.html e soyuz.html con el contenido en HTML que se desee.
b) Al directorio /var/www/apolo aadirle dos archivos de texto (apolo1.txt y apolo2.txt)
c) Al directorio /var/www/soyuz aadirle dos archivos de texto (soyuz1.txt y soyuz2.txt)

5. Crear con Apache los dos servidores virtuales web para los dos dominios. Cada servidor virtual
usar un fichero de configuracin diferente de nombres webapolo y websoyuz alojados en el
directorio /etc/apache2/sites-available.
Caractersticas a cumplir en ambos servidores:

a) Podrn acceder todos los usuarios.


b) Cuando se produzca un error del tipo 403 se enviar el mensaje No tiene permiso de
acceso.
c) Cuando se produzca un error del tipo 404 se enviar la pgina notfound.html que deber
almacenarse en una carpeta denominada messages ubicada en los directorios raz de cada
uno de los servidores. El contenido de la pgina presentar el mensaje personalizado
Recurso no encontrado en apolo.sistema.sol o bien el mensaje Recurso no encontrado en
soyuz.sistema.sol dependiendo del cual sea el sitio en el cual el recurso solicitado no existe.
d) Cada servidor tendr sus propios archivos de logs de errores y accesos ubicados en el
directorio messages del servidor web correspondiente.

6. En el caso de que no se solicite ningn recurso en concreto,


a) el servidor para el dominio apolo.sistema.sol mostrar un listado del directorio raz del sitio.
b) el servidor para el dominio soyuz.sistema.sol mostrar el mensaje de error 403 que se
personaliz en el punto anterior.

// Archivo /etc/apache2/sites-available/webapolo
<VirtualHost *:80>
ServerName apolo.sistema.sol
DocumentRoot /var/www/apolo
ErrorDocument 403 "No tiene permisos de acceso"
ErrorDocument 404 /messages/notfound.html

<Directory /var/www/apolo>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>

ErrorLog /var/www/apolo/messages/apolo.error.log
LogLevel warn
CustomLog /var/www/apolo/messages/apolo.access.log combined
</VirtualHost>

// Archivo /etc/apache2/sites-available/websoyuz
<VirtualHost *:80>
ServerName soyuz.sistema.sol
DocumentRoot /var/www/soyuz
ErrorDocument 403 "No tiene permisos de acceso"
ErrorDocument 404 /messages/notfound.html

<Directory /var/www/soyuz>
Options FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>

ErrorLog /var/www/soyuz/messages/soyuz.error.log
LogLevel warn
CustomLog /var/www/soyuz/messages/soyuz.access.log combined
</VirtualHost>

IES Zaidn Vergeles de Granada. Departamento de Informtica.


SRI. Relacin ejercicios. Tema 4. Servidores Web 3

7. Habilita los dos servidores virtuales, y reiniciar el servicio Apache comprobando que no hay
errores.
$sudo a2ensite webapolo
$sudo a2ensite websoyuz
$sudo /etc/init.d/apache2 restart

8. Accede con el navegador a los siguientes nombres de dominio:


a) apolo.sistema.sol (debe aparecer un listado con los archivos del sitio web)
b) apolo.sistema.sol/apolo.html (debe aparecer el contenido del archivo apolo.html)
c) apolo.sistema.sol/index.html (debe aparecer Recurso no encontrado en apolo.sistema.sol)
d) apolo.sistema.sol/messages/notfound.html (debe aparecer Recurso no encontrado en
apolo.sistema.sol)
e) soyuz.sistema.sol (debe aparecer el mensaje no tiene permiso de acceso)
f) soyuz.sistema.sol/soyuz.html (debe aparecer el contenido del archivo soyuz.html)
g) soyuz.sistema.sol/index.html (debe aparecer Recurso no encontrado en soyuz.sistema.sol)
h) soyuz.sistema.sol/messages (debe aparecer el mansaje no tiene permiso de acceso)

2. Realizar y configurar el alojamiento virtual de un sitio web en Apache sobre


Linux usando autentificacin HTTP Digest para dicho sitio.
Cuando Apache recibe una peticin para un sitio web comprueba que esta peticin est autorizada, de
forma que slo los usuarios autorizados puedan acceder al sitio. En concreto realiza tres pasos:

a. Autenticacin. Comprueba la identidad del usuario mediante un nombre y contrasea, a ver si


coinciden dichos credenciales con los almacenados en su base de datos. Bsicamente existen dos
mtodos de autenticacin HTTP: bsico o simple donde el nombre de usuario y la contrasea se
envan al servidor sin cifrar; y digest en el cual estas informaciones se envan cifradas.
b. Autorizacin. Posteriormente el servidor comprueba si el usuario previamente validado tiene
autorizacin a la informacin solicitada. Apache gestiona estas autorizaciones mediante
directivas en la seccin <Directory>.
c. Control de acceso. Por ltimo se establece y controla los equipos que tienen acceso a un recurso
independientemente del usuario que accede. Apache gestiona el control de acceso mediante las
directivas en las secciones <Directory>, <Files> y <Location>.

Teniendo en cuenta lo anterior, se quiere aadir un nuevo servidor virtual para un nuevo dominio
discovery.sistema.sol usando como directorio raz /var/www/transbordador. El sitio usar
autentificacin tipo HTTP Digest de forma que slo el usuario alufp podr acceder a dicho sitio web.

Los pasos a seguir seran:


1. Configurar el servidor DNS para que resuelva el nombre discovery.sistema.sol
2. Crear el directorio /var/www/transbordador como sitio raz del sitio web conteniendo un archivo
hello.html con un mensaje de bienvenida para el sitio web.
3. Habilitar el mdulo auth_digest. Mediante el comando a2enmod nombre_modulo
$ls l /etc/apache2/mods-enabled
$ sudo a2enmod auth_digest
Enabling module auth_digest.
Run '/etc/init.d/apache2 restart' to activate new configuration!

4. Para la autentificacin Digest hay que crear un archivo accesible por Apache en el que se
guardarn los usuarios, grupos y contraseas. Para ello se usa el comando htdigest de la forma:
$ sudo htdigest -c /etc/apache2/archivo_de_claves grupo_de_usuarios usuario

Con la opcin c se permite la creacin de un archivo de claves (archivo_de_claves); con


grupo_de_usuarios indicamos el grupo o mbito al que pertenece el usuario; y con usuario el
nombre de un usuario que se va a aadir al archivo de claves. (Si se quisiera posteriormente
aadir ms usuarios, se repite la orden pero sin la opcin -c ya que el archivo con las claves ya
ha sido creado). Al ejecutar el comando se pedir una clave para el usuario.

IES Zaidn Vergeles de Granada. Departamento de Informtica.


4 SRI. Relacin ejercicios. Tema 4. Servidores Web

En nuestro caso crearemos el archivo de claves de nombre claves-digest, aadiendo el usuario


commander al grupo o mbito astronauts. (Luego veremos que el grupo o mbito debe coincidir
con el dado en la directiva AuthName que usaremos en la configuracin del sitio).

$ sudo htdigest -c /etc/apache2/claves-digest astronauts commander


Adding password for commander in realm astronauts.
New password:
Re-type new password:

5. Examina el archivo claves-digest debe contener una lnea como la siguiente:

$ cat /etc/apache2/claves-digest
commander:astronauts:19c426e5b25e9bd568eaa17b5f0a6503

6. Crea un servidor virtual web para el dominio discovery.sistema.sol. Se usar un fichero de


configuracin de nombre webtransbordador.

En la seccin <Directory> del servidor virtual, aadir las siguientes directivas:

AuthType Digest
AuthName "astronauts"
AuthUserFile "/etc/apache2/claves-digest"
Require user commander

<VirtualHost *:80>
ServerName discovery.sistema.sol
DocumentRoot /var/www/transbordador
<Directory /var/www/transbordador>
Options Indexes FollowSymLinks MultiViews
DirectoryIndex hello.html
AllowOverride None
Require all granted

AuthType Digest
AuthName "astronauts"
AuthUserFile "/etc/apache2/claves-digest"
Require user commander
</Directory>
</VirtualHost>

7. Habilita el servidor virtual y luego reinicia el servicio Apache.


$sudo a2ensite webtransbordador
$sudo /etc/init.d/apache2 restart

8. Desde el navegador web accede al sitio web con su URL. Se presentar una ventana de
autentificacin como la siguiente donde teclear los credenciales del usuario, para luego
presentarse el contenido del archivo hello.html.

3. Uso de directorios virtuales en servidores web.


Cambia la configuracin del sitio apolo.sistema.sol para crear un directorio virtual de forma que
cuando en el navegador usemos como URL http://apolo.sistema.sol/satelites, obtengamos el
documento default.html que previamente se habr creado en el directorio /home/alumno/satelites/.
Adems slo se podr acceder desde el equipo marte.

IES Zaidn Vergeles de Granada. Departamento de Informtica.


SRI. Relacin ejercicios. Tema 4. Servidores Web 5

// Archivo /etc/apache2/sites-available/webapolo
<VirtualHost *:80>
ServerName apolo.sistema.sol
DocumentRoot /var/www/apolo
ErrorDocument 403 "No tiene permisos de acceso"
ErrorDocument 404 /messages/notfound.html

<Directory /var/www/apolo>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>

Alias /satelites /home/alumno/satelites


<Directory /home/alumno/satelites>
DirectoryIndex default.html
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require ip 192.168.X.Y4
</Directory>

ErrorLog /var/www/apolo/messages/apolo.error.log
LogLevel warn
CustomLog /var/www/apolo/messages/apolo.access.log combined

</VirtualHost>

4. Configuracin de servidores virtuales por IP y puerto.


Cambiar la configuracin del ejercicio 1 en donde los dos servidores virtuales por nombre se
cambian por dos servidores virtuales por IP y por puerto. Para ello se necesitan 2 interfaces de red.
La interfaz de red que ya se tena mantendr la IP. La otra interfaz habr que aadirla configurando la
MV Linux (tierra) con VirtualBox y una vez arrancada se define su IP, mscara, etc. El primer
servidor escuchar por la primera interfaz y puerto 8081; el segundo servidor por la segunda interfaz
y puerto 8082.

a) Para que el equipo tierra disponga de dos interfaces de red, desde el men de configuracin de la
mquina virtual Linux de VirtualBox aadir otra interfaz de red en modo puente. Al iniciar la
MV se dispondr de otra interfaz de red la cual se configurar con la IP 192.168.X.Y5/24.
b) En el archivo de zona del dominio sistema.sol hay que hacer corresponder cada IP con cada uno
de los nombre de dominio de los servidores web. As por ejemplo la IP 192.168.X.Y3 se
mantendr con el nombre apolo.sistema.sol; y para la nueva IP 192.168.X.Y5 se le aade un
registro tipo A que la asocie al dominio soyuz.sistema.sol. Evidentemente el registro CNAME
del dominio soyuz.sistema.sol como alias de tierra.sistema.sol habra que eliminarlo de la zona.
c) Reinicia el servidor DNS y comprueba con nslookup que se resuelven los dos nombres de
dominio (apolo.sistema.sol y soyuz.sistema.sol) cada uno con su IP correspondiente.
alumno@tierra:~$ nslookup soyuz.sistema.sol
Server: 192.168.1.103
Address: 192.168.1.103#53

Name: soyuz.sistema.sol
Address: 192.168.1.105

d) Sabemos que Apache se configura de forma predeterminada para usar servidores virtuales por
nombre (directiva NameVirtualHost) por lo que podemos deshabilitarla.
e) Ahora deberemos sustituir la directiva Listen 80 por otras dos donde se indique para cada IP el
puerto de escucha de la forma Listen IP:puerto.

// archivo /etc/apache2/ports.conf

#NameVirtualHost *:80
Listen 192.168.X.Y3:8081
Listen 192.168.X.Y5:8082

IES Zaidn Vergeles de Granada. Departamento de Informtica.


6 SRI. Relacin ejercicios. Tema 4. Servidores Web

f) Modifica las directivas <VirtualHost *:80> de cada uno de los dos servidores virtuales de forma
que se indiquen la IP concreta y el puerto de cada servidor de la forma <VirtualHost IP:puerto>

<VirtualHost 192.168.X.Y3:8081>

</VirtualHost>

<VirtualHost 192.168.X.Y5:8082>

</VirtualHost>

f) Reinicia el servicio Apache y accede a cada uno de los servidores usando en la URL del
navegador la IP y el puerto.
g) Ahora accede a cada uno de los servidores usando en la URL del navegador el nombre de
dominio y el puerto.

5. Uso de servidores web seguros.


Se quiere aadir un nuevo servidor virtual seguro mediante el uso de un certificado de servidor
autofirmado para un nuevo dominio webseg.sistema.sol usando como directorio raz
/var/www/webseg.

Los pasos a seguir seran:


1. Configurar el servidor DNS para que resuelva el nombre webseg.sistema.sol. Comprobar que el
nombre de dominio se resuelve adecuadamente.
2. Instalar y configurar, si no lo est ya, el paquete OpenSSL.
3. Volver a habilitar los servidores virtuales por nombre mediante NameVirtualHost *:80 y comprobar
que el servicio est configurado para escuchar por el puerto 443.
4. Crear un directorio como sitio raz del sitio web (por ejemplo /var/www/webseg) conteniendo un
archivo a servir por defecto (por ejemplo sitioseg.html) con un mensaje de bienvenida para el
sitio web.
5. Comprobar que el mdulo que da soporte para SSL/TLS est activado
$ls l /etc/apache2/mods-enabled

6. Crear un certificado autofirmado que guardaremos por ejemplo en /etc/apache2/ssl (crear antes el
subdirectorio ssl )
$ sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/cer-apache.pem

7. Crear en /etc/apache2/sites-available el archivo de configuracin del servidor, al cual le podramos


llamar por ejemplo webseg.
8. Habilitar el servidor web seguro y reiniciar el servicio.
9. Para probar el servidor web debemos usar el protocolo HTTPS en la URL del navegador.

IES Zaidn Vergeles de Granada. Departamento de Informtica.

You might also like