Creación de servidor WEB con Apache

6

Click here to load reader

description

Creador de un servidor web Apache, con instalación de una máquina virtual Ubuntu.

Transcript of Creación de servidor WEB con Apache

Page 1: Creación de servidor WEB con Apache

INFORME 1, REDES DE COMPUTADORAS II 1

Práctica #1: Servidor Web (HTTP).Paúl Esteban Vintimilla Tapia.

Ricardo Manuel Prieto Galarza.

Universidad Politécnica Salesiana Sede Cuenca

Resumen—En el siguiente documento se desarrollará el infor-me de las actividades realizadas en la Práctica #1 de la materiade Redes de Computadoras II. Se especificarán las actividadesdesarrolladas para poder cumplir los objetivos planteados, a másdel análisis de los resultados obtenidos. Para el desarrollo de estapráctica se deben instalar varios programas, instalaciones que sedetallarán también para que el presente documento pueda servircomo una guía académica en un futuro.

Index Terms—Análisis de tráfico, Apache, red LAN, servidorweb, ubuntu, wireshark.

I. OBJETIVOS

I-A. Objetivo General

Realizar el análisis del tráfico de datos cuando se accedadesde un host cliente a un host servidor creado en Apache.

I-B. Objetivos Específicos

Instalar el servidor Apache en una máquina virtual deUbuntu, mediante VirtualBox.Crear una red LAN y configurar las direcciones IP delcliente, de la máquina anfitrión y del servidor.Crear una página web utilizando HTML y colocarla enel servidor Apache.Realizar el ánalisis del tráfico de datos cuando se accedeal servidor Apache por medio de wireshark.

II. FUNDAMENTO TEÓRICO

II-A. Servidor Web

Un servidor, como la misma palabra indica, es un orde-nador o cualquier dispositivo que está al “servicio” de otrasmáquinas, ordenadores o personas llamadas clientes y que lessuministra a estos, todo tipo de información. En la Figura 1.,se puede observar el esquema cliente-servidor, en el cuál sebasa gran parte de internet.[1][3]

Paúl Esteban Vintimilla Tapia, Estudiante de la carrera de IngenieríaElectrónica y Telecomunicaciones de la Universidad Politécnica SalesianaSede Cuenca, e-mail: [email protected].

Ricardo Manuel Prieto Galarza, Estudiante de la carrera de IngenieríaElectrónica y Telecomunicaciones de la Universidad Politécnica SalesianaSede Cuenca, e-mail: [email protected].

Figura 1. Esquema cliente-servidor.[1]

Por regla general, los servidores suelen ser algo más po-tentes que un ordenador normal. Sobre todo suelen tener máscapacidad tanto de almacenamiento de información como dememoria principal, ya que tienen que dar servicio a muchosclientes. Pero como todo, también depende de las necesidades,ya que podemos tener un servidor de menores prestaciones sivamos a tener pocos clientes conectados, o si los serviciosque queramos en el servidor no requieren una gran capacidadservidora. [1]

II-B. Tipos de servidores

II-B1. Servidor de correo: Es el servidor que almacena,envía, recibe y realiza todas las operaciones relacionadas conel e-mail de sus clientes.[1]

II-B2. Servidor proxy: Es el servidor que actúa de inter-mediario de forma que el servidor que recibe una petición noconoce quién es el cliente que verdaderamente está detrás deesa petición.[1]

II-B3. Servidor web: Almacena principalmente documen-tos HTML (son documentos a modo de archivos con unformato especial para la visualización de páginas web enlos navegadores de los clientes), imágenes, videos, texto,presentaciones, y en general todo tipo de información. Ademásse encarga de enviar estas informaciones a los clientes.[1]

II-B4. Servidor de base de datos: Da servicios de almace-namiento y gestión de bases de datos a sus clientes. Una basede datos es un sistema que nos permite almacenar grandescantidades de información. Por ejemplo, todos los datos delos clientes de un banco y sus movimientos en las cuentas.[1]

Page 2: Creación de servidor WEB con Apache

INFORME 1, REDES DE COMPUTADORAS II 2

II-B5. Servidores clúster: Son servidores especializadosen el almacenamiento de la información teniendo grandes ca-pacidades de almacenamiento y permitiendo evitar la pérdidade la información por problemas en otros servidores.[1]

II-B6. Servidores dedicados: Como ya expresamos ante-riormente, hay servidores compartidos si hay varias personaso empresas usando un mismo servidor, o dedicados que sonexclusivos para una sola persona o empresa.[1]

II-B7. Servidores de imágen: Recientemente también sehan popularizado servidores especializados en imágenes, per-mitiendo alojar gran cantidad de imágenes sin consumir re-cursos de nuestro servidor web en almacenamiento o paraalmacenar fotografías personales, profesionales, etc.[1]

II-C. Servidor web apache

Un servidor HTTP es el programa que atiende las peticionesde los clientes Web y proporciona las páginas solicitadas.Utiliza de forma general el puerto 80 TCP para atender laspeticiones de los clientes, aunque también puede atender peti-ciones a través del puerto 443 TCP utilizado para conexionesseguras.

Apache es un servidor HTTP de código libre, que funcionaen GNU/Linux, Windows y otras plataformas. Ha desempe-ñado un papel muy importante en el crecimiento de la redmundial, y continua siendo el servidor HTTP más utilizado.Apache es desarrollado y mantenido por una comunidadde desarrolladores auspiciada por Apache Software Founda-tion.[2][3]

Dispone de multitud de módulos que convierten a Apache enun servidor capaz de gestionar todo tipo de aplicaciones, lo quetambién le convierte en el servidor de aplicaciones más popularde la actualidad; por ejemplo dispone de módulos para:

Implementar SSL. Protocolo de seguridad en la transfe-rencia de información.[4]Enlace con el servidor Tomcat de aplicaciones, paraimplementar aplicaciones Java de servidor.[4]Módulo para Perl.[4]Módulo para PHP.[4]Módulo para Python.[4]

II-D. Protocolo HTTP

El Protocolo de Transferencia de HiperTexto (HyperTextTransfer Protocol) es un sencillo protocolo cliente-servidorque articula los intercambios de información entre los clientesWeb y los servidores HTTP. La especificación completa delprotocolo HTTP 1/0 está recogida en el RFC 1945. Fuepropuesto por Tim Berners-Lee, atendiendo a las necesidadesde un sistema global de distribución de información comoel World Wide Web. Desde el punto de vista de las comu-nicaciones, está soportado sobre los servicios de conexiónTCP/IP, y funciona de la misma forma que el resto de losservicios comunes de los entornos UNIX: un proceso servidorescucha en un puerto de comunicaciones TCP (por defecto,el 80), y espera las solicitudes de conexión de los clientesweb. Una vez que se establece la conexión, el protocoloTCP se encarga de mantener la comunicación y garantizarun intercambio de datos libre de errores. HTTP se basa en

sencillas operaciones solicitud/respuesta. Un cliente estableceuna conexión con un servidor y envía un mensaje con losdatos de la solicitud. El servidor responde con un mensajesimilar, que contiene el estado de la operación y su posibleresultado. Todas las operaciones pueden adjuntar un objetoo recurso sobre el que actúan; cada objeto Web (documentoHTML, fichero multimedia o aplicación CGI) es conocido porsu URL.[5]

HTTP fue creado para que las computadoras se comuniquenmientras intercambian documentos, agregando conectividade interfaces. Usando HTTP, una computadora que pida unarchivo a otra sabrá, al recibirlo, si se trata de imagen, videoo texto.[5]

II-E. Lenguaje HTML

HTML significa HyperText Markup Language. Es el len-guaje en que se escriben los millones de documentos que hoyexisten en el World Wide Web. Cuando accedemos a uno deestos documentos, el cliente los interpreta y los muestra. Losdocumentos HTML son ficheros de texto plano que puedenser editados con cualquier editor de texto. El nombre de losficheros escritos en lenguaje HTML suelen tener la extensiónhtml o htm.[6]

El lenguaje HTML se basa en la sintaxis SGML, StandardGeneralized Markup Language. Esto quiere decir que losdiferentes elementos de un documento para la WWW seseñalan intercalando etiquetas que indican al navegador cómodebe mostrarlo.[6]

Una etiqueta HTML consiste en un signo menor "<", unnombre de una directiva, orden o comando para el navegador,seguido de los parámetros o atributos y un signo mayor ">".Para cualquier etiqueta que indica un el inicio de un elementohay otra de cierre que indica que esa directiva ya no debeactuar sobre el texto que sigue.[6]

HTML no es sensible a mayúsculas y minúsculas. ParaHTML es equivalente <HTML> y <html>, con algunas ex-cepciones. Aunque es recomendable escribir los nombres delas etiquetas en minúsculas ya que las nuevas generaciones delHTML están basadas en SGML que requiere de documentosbien formados.[6]

II-F. Wireshark

Wireshark es una herramienta multiplataforma utilizada pararealizar análisis sobre paquetes de red. La utilización de estaherramienta puede parecer de gran complejidad en un princi-pio, pero es de gran utilidad una vez conocida su interfaz y suforma de operar. Existen diferentes usos para los cuales puedeaplicarse Wireshark. Dentro del análisis dinámico de códigosmaliciosos se la utiliza para detectar conexiones ocultas delpropio malware con direcciones remotas para obtener otrosarchivos, para reportarse a un panel de control en caso de unabotnet, entre otras variantes.[7]

III. EQUIPOS Y/O HERRAMIENTAS UTILIZADAS

Máquina virtual con Ubuntu (VirtualBox)Web Server Apache instalado en Ubuntu.

Page 3: Creación de servidor WEB con Apache

INFORME 1, REDES DE COMPUTADORAS II 3

WiresharkComputador servidor.Computador cliente.

IV. DESARROLLO/PROCEDIMIENTOS

Debido a que el computador usado como servidor tienesistema operativo windows 8, para cumplir con los objetivosde la práctica se debieron realizar los siguientes pasos:

1. Instalar la máquina virtual VirtualBox.2. Instalar el sistema operativo Ubuntu en la máquina

virtual.3. Instalar el servidor web Apache en Ubuntu.4. Configurar las direcciones IP del cliente, de la máquina

anfitrión y del servidor Apache.5. Editar el código HTML de la página web que tiene por

defecto el servidor Apache.6. Acceder al servidor Apache y realizar el análisis del

tráfico de datos mediante wireshark.

IV-A. Instalación de VirtualBox (VB)

Se deben seguir los siguientes pasos para instalar la máquinavirtual Virtual Box:

1. Descargar el instalador de VirtualBox de la página delautor. https://www.virtualbox.org/wiki/Downloads

2. Ejecutar el instalador de VirutalBox que se descargó.Una vez concluida la instalación se observará una pan-talla como la mostrada en la Figura 2, que es la quecorresponde al programa.

3. Una vez dentro del programa, procedemos a crear unamáquina virtual dando click en la opción “Nueva”.Seguimos los pasos que se nos muestra como darun nombre a nuestra máquina, asignar un tamaño dememoria RAM, crear una unidad de disco duro virtualy asignar un tamaño al disco duro virtual creado. En elcaso de esta práctica la máquina virtual tiene el nombrede Ubuntu, memoria RAM de 1 GB y un disco durovirtual de 32 GB.

Figura 2. Creación de la máquina virtual Ubuntu.

IV-B. Instalación de Ubuntu en VirtualBox

Se deben seguir los siguientes pasos para instalar Ubuntuen VirtualBox:

1. Descargar el instalador de la última versión estable deUbuntu de la página del autor, en este caso la 14.04.2.http://www.ubuntu.com/download/desktop

2. Se descargará una imagen ISO, entonces dentro de lamáquina virtual Ubuntu que creamos en VirtualBox,procedemos instalar el sistema operativo. Para esto,dentro de la máquina virtual Ubuntu, vamos a la pestaña“Configuración” y seguimos los siguientes pasos:

a) En la pestaña “Sistema” activar la casilla que dice“Habilitar I/O APIC”.

b) En la pestaña “Almacenamiento”, dentro del árbolde almacenamiento dar click en la imagen “Vacío”.Se abrirá un menú con el nombre de “Atributos”,una vez ahí dar click en la imagen de un CDpara seleccionar un archivo de disco virtual deCD/DVD, seleccionar la imagen hizo que se des-cargó en el paso 1.

c) En la pestaña “Red”, en el menú despegable “Co-nectado a:” escoger la opción “Adaptador puente”,y en el menú despegable “Nombre:” seleccionar laopción que pertenezca a la tarjeta Ethernet de lamáquina anfitrión.

3. Una vez que la máquina virtual lea la imagen ISO seprocederá a instalar en la misma el sistema operativoUbuntu. Seguir todos los pasos de la instalación queson configuraciones básicas. Cuando la instalación hayaacabado tendremos una pantalla dentro de VirtualBoxcomo la que se puede observar en la Figura 3.

Figura 3. Sistema Operativo Ubuntu instalado en VirtualBox.

IV-C. Instalación de Apache Web Server

Se deben seguir los siguientes pasos para instalar el servidorApache en Ubuntu. Todo lo que se describa a continuación seráreferido a la máquina virtual que creamos.

1. Iniciar sesión en Ubuntu.2. Dentro de Ubuntu acceder a la “Terminal” que es una

ventana de comandos de sistema. Se puede acceder a tra-vés de su icono o tecleando la combinación Ctrl+Alt+t.

Page 4: Creación de servidor WEB con Apache

INFORME 1, REDES DE COMPUTADORAS II 4

3. Dentro de la terminal escribir el comando “sudo apt-getinstall apache2” sin las comillas. Se descargará laversión más actual de Apache y se instalará en Ubuntu.Se deben seguir los pasos que indica la instalación. Enla Figura 4., se puede observar el comando que se debeutilizar para la instalación de Apache.

Figura 4. Sistema Operativo Ubuntu instalado en VirtualBox.

4. Comprobar la instalación del servidor Apache, para estose debe ejecutar el explorador web “Mozilla Firefox”dentro de Ubuntu y teclear la dirección “127.0.1.1” quepertenece al localhost. Si todo salió bien, debe salir unapágina parecida a la mostrada en la Figura 5.

Figura 5. Servidor Apache correctamente instalado.

IV-D. Configuración de las direcciones IP.Para configurar las direcciones IP, se deben seguir estos

pasos:1. Para configurar la dirección IP del cliente, en win-

dows se debe acceder a las conexiones de red que seencuentran en el directorio “Panel de control\Redes eInternet\Conexiones de red”. Seleccionar “Ethernet” ydar click derecho, seleccionar “Propiedades” y dentrode propiedades marcar la opción “Protocolo de Internetversión 4 (TCP/IPv4)”, dar click a la opción “Propieda-des” e ingresar la IP 192.168.1.3 y la máscara de subred255.255.255.0

2. Para configurar la dirección IP de la máquina anfitrión,en windows se debe acceder a las conexiones de red quese encuentran en el directorio “Panel de control\Redese Internet\Conexiones de red”. Seleccionar “Ethernet” ydar click derecho, seleccionar “Propiedades” y dentrode propiedades marcar la opción “Protocolo de Internetversión 4 (TCP/IPv4)”, dar click a la opción “Propieda-des” e ingresar la IP 192.168.1.1 y la máscara de subred255.255.255.0

3. Para configurar la dirección IP del servidor Apache,se debe cambiar la dirección IP del sistema operati-vo Ubuntu. Para esto, dentro de la terminal se de-ben teclear algunos comandos. En el siguiente enlacese puede observar como se realizar la configuraciónhttp://eltallerdelbit.com/cambiar-ip-en-ubuntu/. Asignarla IP 192.168.1.2 y la máscara de subred 255.255.255.0

Cabe recalcar que las direcciones IP asignadas a los hostsdeben pertencer a la misma red LAN. Además en nuestro casoen el servidor el sistema nativo del ordenar es Debian por loque no es necesario crear una máquina virtual y únicamentese trabaja con las IP 192.168.1.1 del servidor Apache y192.168.1.3 del cliente.

IV-E. Cambiar la página de inicio del servidor

Para editar la página de inicio del servidor existen dosopciones dentro de Ubuntu:

1. Editar el código HTML de la página de inicio: Paraesto se debe acceder al archivo index.html. Nuevamentedentro de la terminal teclear el comando “sudo nano/var/www/html/index.html”. Se abrirá un editor de textoen el cual se podrá editar el código de la página.

2. Reemplazar el archivo index.html que se encuentra enel directorio /var/www/html/index.html por el de lapágina web que se quiera poner al inicio. El archivoque contendrá a la página de inicio deberá tenerel nombre de index.html. En la Figura 6., se puedeobservar la página de inicio editada del servidor Apache.

Figura 6. Página de inicio Servidor Apache.

En nuestro caso se reemplazó el archivo index.html por unodesarrollado por nosotros mismos en el cuál a más de lainterfaz web, se implementó una base de datos.

IV-F. Captura de datos en wireshark

En windows, realizar lo siguiente:

Page 5: Creación de servidor WEB con Apache

INFORME 1, REDES DE COMPUTADORAS II 5

1. Descargar e instalar wireshark, el programa se encuentraen la página del autor. https://www.wireshark.org/

2. Ejecutar wireshark.3. Una vez dentro del programa, en el menú “Capture”

seleccionar la opción “Ethernet”. Se abrirá una nuevaventana en la que se debe seleccionar los protocolos acapturar mediante “Capture Filter”. En este caso se debeseleccionar en “Capture Filter” la opción “tcp port http”.

V. RESULTADOS

V-A. Ping al servidor ApacheComo se puede observar en la Figura 7., se realizó un

ping al servidor Apache, es decir a la IP 192.168.1.1, todoslos paquetes fueron enviados por el cliente y recibidos en elservidor, por lo que se realizó la conexión cliente-servidor deuna manera correcta.

Figura 7. Ping al servidor Apache desde el cliente.

V-B. Análisis de tráfico de datos cuando se accede al servi-dor Apache desde el cliente

En la Figura 8., se puede observar los datos capturados porWireshark.

Figura 8. Tráfico de datos en Wireshark.

En el tráfico de datos analizado se puede observar queel cliente hace una petición al servidor Apache mediante el

método “get” perteneciente al protocolo HTTP y el servidorApache no posee métodos por lo que devuelve los paquetessolicitados, y de esta forma se establece la comunicacióncliente-servidor, observando la página principal del servidorApache en el explorador web del cliente. Cabe recalcar quepara establecer la conexión se necesita que el cliente recibael número 200 del servidor Apache, lo que significa que elservidor está en línea y listo para establecer la comunicación,esto se puede observar en la Figura 9.

Figura 9. Inicio de la comunicación cliente-servidor.

V-C. Diagrama de red

En la Figura 10., se puede observar el diagrama de red dela práctica implementada. Como en nuestro caso el servidorApache se encuentra en una máquina con sistema operativonativo Linux, el diagrama únicamente corresponde a la cone-xión entre el cliente-servidor.

Figura 10. Diagrama de red.

VI. CONCLUSIONS AND RECOMMENDATIONS

With the development of this practice you learn to install avirtual machine, in this case Ubuntu, but having a server withDebian native system was not necessary to use it. More thanthat of learned to install the Apache web server, configureIPv4 addresses and edit our own website using a plain texteditor and saving the text with .html extension .html filethat was replaced with the index.html that displayed on theserver; is important that the file created web page "index.html"is called for it to be recognized by the server or failing"index.php" when a database is used as in our case. Weobserved as HTTP is fulfilled by analyzing packets using theWireshark tool longer check that the server is working bypinging from the command terminal windows to the Apacheserver. It was necessary to learn some basic Linux command toperform all the activities proposed, these commands puendenbe "sudo" granted administrator permissions, "apt-get install /update" installing any files or updates, "ifconfig" that allowsconfiguring network interfaces, among others. The objectivesof the practice were fully met so the success of it and usethis report as a guide for creating an Apache web server on aLinux operating system is guaranteed.

REFERENCIAS

[1] Aprenderaprogramar.com, “Que es un servidor y cuales son losprincipales tipos de servidores.” . [en línea]. Disponible en:http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=542

Page 6: Creación de servidor WEB con Apache

INFORME 1, REDES DE COMPUTADORAS II 6

[2] “Servidor Apache.” . [en línea]. Disponible en:http://smr.iesharia.org/wiki/lib/exe/fetch.php/src:ut4:apuntes-apache.pdf

[3] Catarina, “Capítulo 5: Cliente-Servidor” . [en línea]. Disponible en:http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/marquez_a_bm/capitulo5.pdf

[4] Mohammed J. Kabir, “La Biblia del Ser-vidor Apache.” . [en línea]. Disponible en:http://biblioises.com.ar/Contenido/Esenciales/Informatica/Software/Anaya %20-%20La %20biblia %20del %20Servidor %20Apache %201.pdf

[5] El lenguaje HTML, “Documentos HTML”. [en línea]. Disponible en:http://www.juntadeandalucia.es/averroes/~04000134/informatica/html.html

[6] Universidad Nacional de Piura, “El Protocolo HTTP”. [en línea]. Dispo-nible en: http://wcruzy.pe/ri/protohttp00.pdf

[7] We live security, ”Uso de Filtros en Wireshark”. [en línea]. Dis-ponible en: http://www.welivesecurity.com/la-es/2013/01/28/uso-filtros-wireshark-para-detectar-actividad-maliciosa/