Servicios De Red
Número de práctica: No.5
Nombre de la práctica: Apache Web Server
Lugar: Laboratorio de Redes 3.21A
Tiempo estimado: 2 h 30 min
I. Descripción de la práctica.
O b je t iv o s de la
p r áctica. Que el estudiante:
Instale el
servidor Web
Apache para su
posterior
configuración.
Configure el
servidor de tal
forma de poder
desplegar una
página o una
aplicación Web en
el para sus
clientes.
Configure
diferentes módulos
los cuales ayudan
a mejorar el
rendimiento y la
administración del
mismo.
Materia le s y equipo. Guía de
laboratorio.
Estación de
trabajo con
software
VirtualBox.
MV con
Ubuntu Server.
MV con
Ubuntu Desktop.
La presente guía de laboratorio estudia el servidor web Apache, desde su instalación,
configuración básica y alguno de los módulos más utilizados para tener mejores opciones a
la hora de la administración y la seguridad del mismo.
II. Introducción teórica.
Apache Web Server
Apache es un servidor web de distribución libre
y de código abierto, siendo el más popular del
mundo desde abril de 1996, con una penetración
actual del 50% del total de servidores web del
mundo.
Apache fue la primera alternativa viable para el
servidor web de Netscape Communications,
actualmente conocido como Sun Java System
Web Server.
Apache es desarrollado y mantenido por una
comunidad abierta de desarrolladores bajo el
auspicio de la Apache Software Foundation.
La aplicación permite ejecutarse en múltiples
sistemas operativos como Windows, Novell
NetWare, Mac OS X y los sistemas basados en
Unix.
La principal competencia de Apache es el IIS
(Microsoft Internet Information Services) de
Microsoft.
III. Desarrollo de la práctica.
√ PARTE I – INSTALACIÓN DE APACHE
1. Inicie la máquina virtual del servidor Ubuntu y verifique que el adaptador de red este configurado como
puente en la interfaz eno1 y la configuración de la IP sea por DHCP.
2. Instale Apache: para instalar el servicio de Apache, deberá de descargar el paquete respectivo haciendo
uso del comando “apt-get install apache2”, donde posteriormente se le preguntará si se desea continuar,
presione la tecla “s” y luego “Enter” para proceder con la descarga.
3. Para que el módulo de autenticación básica funcione de manera correcta se deberán de instalar un
paquete complementario a Apache llamado “apache2-utils”.
Con el comando “grep” se realiza el filtro de los paquetes de apache2, si el paquete “utils” no está
instalado. Proceda a instalarlo con el comando “apt-get install apache2-utils”.
4. Configure el adaptador de la máquina virtual como Red Interna y Configure la IP estática de la guía
anterior:
IP: 192.168.1.1 /24, 192.168.1.4/24, DNS: 192.168.1.1
5. Inicie la máquina virtual de Cliente1, configure el adaptador de red como adaptador puente y la IP de las
máquinas virtuales sea por DHCP.
6. Verifique que el servidor DNS y DHCP funcionen correctamente, puede verificar los estatus de ambos
servidores y utilizar NSLOOKUP para la resolución de nombres.
7. Verifique que se pueda establecer conexión entre el Cliente1 y el servidor, esta prueba la puede realizar con
el comando ping.
√ PARTE II – CONFIGURACIÓN DE APACHE
8. Inicie sesión en el servidor, para este punto ha de haber instalado Apache2 y el paquete de
“apache2-utils”, ver PARTE I.
9. Diríjase a la carpeta donde ha sido instalado el servicio (/etc/apache2) y enliste los archivos que hay en
ella. El archivo llamado apache2.conf es el más utilizado dentro de Apache a la hora de su configuración,
aunque existen otros que se irán mostrando a lo largo de esta guía.
10. Apache trae por defecto una página de prueba default cuando es instalado, la cual podremos cambiar
posteriormente por nuestra página web, dicha página está alojada en “/var/www/html”, diríjase a dicha
ruta y enliste el contenido de la misma en donde podrá apreciar la página llamada “index.html”.
11. Diríjase a la MV cliente y digite la dirección ip del servidor dentro del navegador web Firefox para
poder visualizar la página anteriormente mencionada alojada en el servidor.
12. Retorne al servidor y en la carpeta /var/www/html proceda a crear un archivo llamado “ejercicio.html”.
13. Proceda a crear la página web (ejercicio.html) que reemplazará la página por defecto, para ello utilice
el siguiente código donde se utilizará HTML y CSS.
14. Siempre dentro de la carpeta “/var/www/html” cree un segundo archivo llamado “Estilo.css” y proceda a
digitar el siguiente código.
15. Enliste nuevamente el contenido de la carpeta “/var/www/html” y ahora podrá observar además de la
página index.html los dos archivos previamente creados.
16. Para poder visualizar la nueva página diríjase al cliente proceda a escribir la dirección ip del servidor
seguida del nombre de la página junto con su extensión.
17. Como se puede observar ahora se pueden ver las dos páginas al mismo tiempo. Se procederá a sustituir la
página por defecto por la nueva página creada, para ello realice una copia de seguridad llamada
“index.html.bk” y sustituya el archivo ejercicio.html por index.html.
cp /var/www/html/index.html /var/www/html/index.html.bk
cp /var/www/html/ejercicio.html /var/www/html/index.html
18. Diríjase a la carpeta “/etc/apache2/sites-available”, en esta carpeta están alojados algunas de las
configuraciones de los diferentes sitios web alojados en el servidor, proceda a abrir el archivo llamado
“000-default.conf”.
19. Una vez abierto el archivo agregue la siguiente línea “ServerName www.udb.edu.sv”, para
asignarle un nombre al sitio web y así poder visualizarlo tanto por nombre como por ip.
20. Agregue los punteros respectivos en el DNS (registro A y registro PTR) para que los datos puedan ser
reconocidos desde el cliente.
www.udb.edu.sv -> 192.168.1.1 hv1.udb.edu.sv -> 192.168.1.1 hv2.udb.edu.sv -> 192.168.1.1 hv3.udb.edu.sv -> 192.168.1.4
21. Una vez creados proceda desde el cliente y abra dos ventanas o pestañas del navegador, proceda a
visualizar la página ingresando la ip y el nombre previamente registrados, como se puede observar ahora la
página original ha sido sustituida por la página que se deseaba mostrar en ambos casos.
√ PARTE III – CONFIGURACIÓN DE MÓDULOS DE APACHE
22. Una vez echado a andar el servidor y su página web veremos que podemos personalizar diferentes
funciones del mismo para poder realizar otras tareas que pueden ser de administración y/o seguridad, a
continuación se mostrará la configuración de algunos de los principales módulos utilizados en Apache Web
Server.
CONFIGURACIÓN MÓDULO USERDIR
23. Apache posee una gran cantidad de módulos que pueden ir siendo activados uno a uno, según sea
conveniente por parte del administrador, dichos módulos están alojados en la carpeta llamada
“/etc/apache2/mods-available”, diríjase a ella y enliste el contenido de la misma con el comando “ls –
a”.
Como puede observar son varios módulos los que se pueden activar, hay algunos módulos previamente
habilitados por defecto, estos se encuentran en la carpeta “/etc/apache2/mods-enabled”. Diríjase a la
misma y enliste nuevamente el contenido de dicha carpeta.
24. Como se puede observar la cantidad de módulos activados es menor que la cantidad de módulos pre-
instalados, esto es debido a que Apache es modular y cada parte de él se va habilitando a medida se vaya
necesitando, conservando de manera adecuada los recursos del servidor.
25. El primer módulo que se habilitará será el módulo “userdir”, para que los diferentes usuarios de la red
puedan compartir archivos con diferentes personas dentro de la red LAN o simplemente poder visualizarlos
desde otro equipo atreves de la red. Para habilitar el módulo hay que seguir dos pasos esenciales:
a) Habilitarlo con el comando “a2enmod nombre_del_módulo”
b) Reiniciar el servidor para que los cambios tenga efecto.
*** En algunos de los módulos se pedirá además aplicar un comando “reload”
26. Enliste ahora el contenido de la carpeta “/mods-enabled”, donde tendrá que visualizar ahora los archivos
del módulo previamente habilitado.
27. Para configurar el módulo proceda a abrir el archivo “userdir.conf” con el editor de texto de su
conveniencia. Y edite los parámetros. En el recuadro rojo se especifica el nombre de la carpeta a
compartir y los usuario propietario, en el recuadro verde se indica la ruta especifica de la carpeta en donde
estarán alojados los archivos “/home/*/public_html/”. Salga y guarde los cambios.
28. Se procederá a crear el usuario en el servidor para que pueda compartir su carpeta personal para
ello utilice el comando “adduser” y establezca como contraseña “123456”, los demás datos puede
dejarlos en blanco.
29. Cree la una carpeta llamada “public_html” dentro del directorio personal del usuario y a asignar los
permisos respectivos y heredando de manera recursiva el contenido de la carpeta al usuario AA101010 y
al grupo AA101010. Reinicie el servicio de Apache con el comando “service apache2 restart”.
mkdir /home/AA101010/public_html
chmod –R AA101010:AA101010 /home/AA101010
chmod 755 –r /home/AA101010
30. Diríjase a la carpeta anteriormente creada “cd /home/AA101010/public_html”, proceda a crear 3 carpetas
y 3 archivos en blanco.
touch /home/AA101010/public_html/archivo1
touch /home/AA101010/public_html/archivo2
touch /home/AA101010/public_html/archivo3
mkdir /home/AA101010/public_html/carpeta1
mkdir /home/AA101010/public_html/carpeta2
mkdir /home/AA101010/public_html/carpeta3
31. Edite el contenido del primer archivo en blanco y guarde los cambios.
32. Desde el cliente proceda a abrir la carpeta compartida, para ello abra el navegador Firefox
e introduzca la URL: “www.udb.edu.sv/~AA101010” donde podrá ver el contenido de la carpeta
“public_html” del usuario AA101010.
Proceda a abrir el archivo1 para poder visualizar su contenido.
*** Este proceso puede ser repetido con cuantos usuarios se requiera, creando idealmente la carpeta
“public_html” dentro de la carpeta /home de cada uno de los mismos.
CONFIGURACIÓN MÓDULO DE AUTENTICACIÓN BASIC
33. Dentro de la carpeta “/vaar/www/html” cree una nueva carpeta llamada “miembros”, la cual a su
vez contenga un archivo llamado “miembros.html”.
34. Edite la página “miembros.html” escribiendo el siguiente código, posteriormente guarde y cierra el
archivo.
35. Proceda a visualizar la página desde el cliente en el navegador Firefox, de la manera en cómo se ,muestra a
continuación
36. Para que el módulo de autenticación básica funcione de manera correcta se deberán de instalar un
paquete complementarios a Apache llamado “apache2-utils”.
37. Dirijase a la carpeta /etc/apache2 y cree un archivo llamado “.htpasswd”, el punto indicará que es un archivo
oculto que dicho archivo manejará los usuarios y contraseñas respectivos para poder tener acceso al
área restringida, dicho archivo únicamente podrá ser visualizado con el comando “ls –la”.
38. Para añadir usuarios válidos se utiliza el comando “htpasswd”, tal cual se muestra a continuación. Es
de aclarar que cuando se crea el primer usuario de la lista el comando deberá ser acompañado del
parámetro “-c”, para los demás usuarios a crear no será necesario. Proceda a crear al “usuario1” y
“usuario2” en ambos usuarios utilice el password “123456”.
Si el archivo es abierto o visualizado en pantalla se podrá observar que las contraseñas establecidas están cifradas,
asegurando la confidencialidad de las mismas.
39. Abra el archivo del sitio default con el comando “vim /etc/apache2.sites-enabled/000-default.conf”, y
edítelo de la siguiente forma.
40. De igual forma edite el archivo apache2.conf ubicado en “/etc/apache2/”, haciendo uso
del comando “vim /etc/apache2/apache2.conf”
41. Dentro del directorio que contiene la página web a proteger, se deberá de crear un archivo “.htacces”. Edite
el archivo de la siguiente forma y guarde los cambios en el. Con esto se están asociando a los únicos
usuarios que contarán con los privilegios de poder visualizar dicha página.
42. Reinicie el servicio de Apache para que los cambios sean aplicados, use el comando “service apache2
restart”.
43. Desde la MV cliente, abra las dos páginas creadas hasta el momento y verá como la petición de
parámetros de autenticación no son requeridos mostrando inmediatamente el contenido de las mismas.
44. Proceda ahora a la página “www.udb.edu.sv/miembros/mienbros.html”, como se puede observar en un
mensaje de tipo pop-up se están pidiendo los parámetros de autenticación. Proceda a iniciar con el
“usuario500” y contraseña “123456”. El acceso deberá de ser denegado, ya que dicho usuario no está
registrado dentro del archivo htacces del directorio miembros.
45. Proceda a iniciar sesión con los parámetros de autenticación correctos (usuario1 para usuario y 123456
como contraseña). Verá como ahora si tiene la autorización para visitar dicho sitio web protegido.
CONFIGURACIÓN MÓDULO SPELING
46. El módulo speling, como su nombre lo indica (deletreo), ayudará a los usuarios cuando digiten
direcciones web y se equivoquen en el uso de mayúsculas, ortografía u omisión de caracteres.
47. Para ver cómo funciona diríjase a la MV cliente y realice la siguiente prueba, como se podrá observar
la inclusión de la “D” cambia por completo la URL de la página a mostrar y al buscar esta página se está
haciendo referencia a otra totalmente distinta que no existe, es por eso que se obtiene la pantalla de error.
48. Habilite el módulo de la manera en como se ha reiniciado anteriormente y posteriormente proceda a reiniciar el
servicio de Apache para que los cambios surjan efecto.
49. Diríjase a la carpeta “mods-enabled” y compruebe que el módulo ha sido habilitado correctamente.
50. Proceda a abrir el archivo “apache2.conf” localice el segmento “<Directory /var/www/> y edítelo de la manera
en que se muestra a continuación. Guarde los cambios y salga del archivo.
51. Abra el archivo llamado speling.conf ubicado en “/etc/apache2/mods-enabled” y edítelo de la siguiente manera,
guarde el documento y salga de él, posteriormente proceda a reiniciar el servicio de Apache.
52. Proceda a realizar la misma prueba efectuada anteriormente, con la diferencia que ahora la letra “E”, será
convertida en “e” y se mostrará la página a la que se desea entrar.
53. Realice las mismas pruebas con la página miembros y verá como esta también es mostrada de manera correcta
pasando la letra “B” a “b”.
CONFIGURACIÓN MÓDULO VIRTUALHOST
El módulo virtualhost servirá para aquellas ocasiones en las que se necesiten tener alojadas más de una
página web o dominio dentro del propio servidor, existen cuatro tipos de host virtuales: por nombre, por
dirección ip, por puerto y mixtos, de los cuales se procederá a continuación a mostrar la configuración de
los tres primeros.
a. Host virtual por nombre.
Aquí utilizará las punteros que creo previamente en el DNS, hv1.udb.edu.sv y hv2.udb.edu.sv.
54. Compruebe la existencia de todos los punteros realice pruebas de conectividad entre cliente y servidor
dando ping a: la ip del server y a los dos nombres de los dominios existentes (Esto quiere decir que habrán
dos nombres apuntando hacia la misma dirección IP, es de ahí su nombre VH por nombre).
55. Proceda a crear la carpeta donde estará alojado el primer host virtual (vh1), proceda a dar permisos sobre la carpeta
y finalmente cree un archivo llamado “index.html” dentro de la misma, una vez creada edítela tal y como se
muestra a continuación:
mkdir /var/www/hv1
chmod 755 –R /var/www/hv1
vim /var/www/hv1/index.html
Realice copias hv2 y hv3, modifique hv1 por hv2 y hv3 correspondientemente.
56. Proceda a crear un nuevo sitio disponible dentro del servidor, para ello copie el archivo “000-default.conf” en una
nueva copia llamada “hv1.conf”, abra el archivo y asigne los siguientes tres parámetros: nombre de dominio,
correo del administrador y carpeta donde estará guardado el sitio a nivel del servidor.
cp /etc/apache/sites-available/000-default.conf /etc/apache2/sites-available/hv1.conf vim /etc/apache2/sites-available/hv1.conf
Realice copias para hv2 y hv3, modifique hv1 por hv2 y hv3 correspondientemente.
57. Diríjase al final del archivo y comentaree las líneas que exigen la autenticación básica con el fin de que cualquier
usuario pueda entrar y visualizar el contenido del sitio. Salga y guarde los cambios.
58. Verifique que el archivo haya sido creado con el comando “ls”, una vez creado y editado proceda a habilitar el
nuevo sitio con el comando “a2ensite”, finalmente recargue el servidor con el comando “reload” y reinicie el
servicio con el comando “restart”.
a2ensite hv1.conf
systemctl reload apache2
59. Finalmente proceda a cargar desde la MV cliente las dos páginas web haciendo uso de los dos nombres de
dominio registrados y verá cómo se muestran los dos sitios diferentes aun estando asociados con la misma
dirección ip.
60. Escriba la dirección ip 192.168.1.1, ¿cuál de los dos sitios se muestra?
.
b. Host virtual por ip.
Como la mayoría debemos conocer, una pc puede tener más de una interfaz de red físicas, cada una con su propia
dirección ip, esto es muy bien aprovechado por Apache ya que en un solo servidor se pueden tener alojados dos
sitios diferentes bajo diferentes ip’s.
61. Para el ejemplo mostrado a continuación se procede a crear interfaces de red virtuales a partir de la que se tiene
(enp0s3), esta es la ip 192.168.1.4/24 que configuro previamente.
62. Verifique de haber creado las carpetas y configuraciones para hv2.
mkdir /var/www/hv2
chmod 755 –R /var/www/hv2
vim /var/www/hv2/index.html
cp /etc/apache/sites-available/hv1 /etc/apache2/sites-available/hv2.conf vim /etc/apache2/sites-available/hv2.conf
63. Verifique que el archivo haya sido creado con el comando “ls”, una vez creado y editado proceda a habilitar el
nuevo sitio con el comando “a2ensite”, finalmente recargue el servidor con el comando “reload” y reinicie el
servicio con el comando “restart”.
64. Finalmente proceda a cargar desde la MV cliente la nueva página web haciendo uso del nuevo nombre y verá
cómo se muestra el nuevo sitio.
65. Proceda a realizar pruebas haciendo uso de la dirección ip, ¿qué fue lo que se mostró en pantalla?
.
c. Host virtual por puerto.
66. Verifique de haber creado las carpetas y configuraciones para hv3.
mkdir /var/www/hv3
chmod 755 –R /var/www/hv3
vim /var/www/hv3/index.html
cp /etc/apache/sites-available/hv1 /etc/apache2/sites-available/hv3.conf vim /etc/apache2/sites-available/hv3.conf
Note que ahora hay un parámetro extra que agregar ya no solo el nombre, el correo y la ruta, sino que además el
puerto al cual estará asociado dicho sitio, esto se puede ver al incio de la imagen en la etiqueta <virtualhost>. Para
este VH en particular se utilizará el puerto 8085.
67. Verifique que el archivo haya sido creado con el comando “ls”, una vez creado y editado proceda a habilitar el
nuevo sitio con el comando “a2ensite”, finalmente recargue el servidor con el comando “reload” y reinicie el
servicio con el comando “restart”.
68. Para que el servidor web sea capaz de escuchar peticiones por dos puertos distintos habrá a su vez que habilitar el
nuevo puerto en el archivo llamado “ports.conf” ubicado en “/etc/apache2”, ábralo y agregue el puerto 8085.
69. Verifique que el archivo haya sido creado con el comando “ls”, una vez creado y editado proceda a habilitar el
nuevo sitio con el comando “a2ensite”, finalmente recargue el servidor con el comando “reload” y reinicie el
servicio con el comando “restart”.
70. Proceda a realizar las pruebas respectivas haciendo uso del “nombre:puerto” así como de “direccionip:puerto”.
IV. Investigación complementaria
Realice un manual sobre la configuración necesaria para instalar y configurar el módulo de “Autenticación Digest”,
explique cuál es o son las diferencias con el módulo “Basic” y a su vez explique cómo funciona, muestre y configure
un “hostvirtual mixto”
Muestre las configuraciones necesarias a realizar explicándolas detalladamente y además realice pruebas para verificar
que el trabajo realizado es correcto.