FUNDAMENTOS DE REDES DE COMPUTADORES
Curso 2009/2010
Prctica 3: Estudio de los protocolos HTTP,
SMTP, POP3 e IMAP mediante un
analizador de red: Wireshark
1
Introduccin
En esta prctica vamos a trabajar con algunas herramientas que nos pueden ayudar a
entender cmo funcionan los diferentes protocolos implicados en el envo y recepcin de
los correos electrnicos y en el uso de la navegacin web. Podremos ver en vivo distintos
protocolos, su funcionamiento, la estructura de sus mensajes, y el intercambio de peticiones
y respuestas entre los clientes y los servidores.
En primer lugar haremos una pequea prueba para ver cmo funcionan los protocolos, en
concreto haremos una prueba con http, utilizando telnet para conectarnos al puerto 80
(predefinido para http) de un servidor web.
A continuacin trabajaremos con un analizador de red, tambin conocidos vulgarmente
como sniffers. En concreto vamos a trabajar con Wireshark, que es uno de los ms
populares entre la amplia oferta que hay, tanto comerciales como de libre distribucin.
Otros analizadores de red, que no veremos en estas prcticas, son tcpdump, NetXRay,
libpcap, snoop, Novell LANalyzer, Microsoft Network Monitor, iptrace la oferta, como
se ha comentado, es muy amplia.
Protocolo HTTP
Uso de telnet para lanzar peticiones http
Esta prueba es un pequeo truco para hacer contestar a un servidor http (servidor web)
como si hubiese recibido una conexin desde un navegador. Para ello, desde la pantalla de
comandos ejecutamos, por ejemplo:
fureco@rdcXX:~> telnet [Link] 80
Con ello nos hemos conectado con el servidor [Link], pero en lugar de hacerlo al
puerto 23, predefinido para telnet, lo hemos hecho al puerto 80, que es el predefinido para
http. Si hacemos una solicitud http (ojo con los espacios en blanco):
> GET / HTTP/1.0
y pulsamos [intro] (dos veces) recibimos la contestacin.
Pregunta 1: qu hemos recibido? Por qu no lo podemos ver correctamente?
Qu programa necesitaramos?
A continuacin vamos a abrir el navegador y vamos a acceder a [Link]. Una vez
cargada la pgina, utilizamos la opcin para ver el cdigo fuente (si utilizis Mozilla, la
opcin se encuentra en VerCdigo fuente de la Pagina; si utilizis Konqueror, est en
2
VerVer fuente del documento). Comparad ahora este cdigo con la respuesta obtenida
con telnet.
Pregunta 2: Podemos observar que la respuesta del telnet contiene un documento
HTML que se parece aunque no coincide exactamente con el que muestra el
navegador. A qu piensas que es debido?
Pregunta 3: A partir de la respuesta obtenida con el telnet Qu tipo de servidor
web es [Link].? Qu tipo de conexiones se han utilizado? Qu versin de
HTTP utiliza el servidor?
Uso de Wireshark para estudiar el protocolo HTTP
Para estudiar el protocolo HTTP abriremos el navegador y escribiremos [Link]
en la lnea de direcciones, pero no pulsaremos [intro]. Volvemos a Wireshark e iniciamos
una nueva captura, y rpidamente volvemos al navegador y pulsamos [intro]. Una vez
cargada la pgina volvemos a Wireshark y paramos la captura. Los mensajes registrados
podran ser algo como esto:
Aqu podeis observar muchas cosas sobre el funcionamiento de los distintos protocolos
utilizados para mostrar una pgina web. En primer lugar, se utiliza el protocolo DNS para
resolver la direccin (tramas 160 y 161 en la imagen). El protocolo HTTP (tramas 165 a
3
168) necesita establecer previamente una conexin TCP, que se puede observar con el
intercambio de seales de control (tramas 162 a 164). A continuacin vemos una peticin
HTTP similar a la que hemos lanzado anteriormente con telnet, y el servidor contesta con
una redireccin a [Link]. De nuevo usamos el protocolo DNS para resolver la
redireccin, se establece una nueva conexin TCP y finalmente se procede a la carga de la
pgina.
Estudiad en detalle los mensajes HTTP, empezando por la peticin, y viendo la respuesta
del servidor. Comprobad los distintos datos: cliente, servidor, conexin, etc.
Pregunta 4: podemos ver en algn mensaje cdigo html?
Pregunta 5: Indica los diferentes tipos de mensajes HTTP que aparecen y de qu
tipo son, en el orden que aparecen.
Seleccionad cualquier trama que use el protocolo HTTP. Comprobad en la pila de
protocolos que se utiliza un servicio orientado a conexin, es decir, utiliza TCP. Expandid
los datos del protocolo TCP y comprobad cada uno de los campos. Haced lo mismo con el
resto de protocolos de la pila.
Pregunta 6: Sitate en el primer segmento TCP de la primera conexin (ser un
SYN). Selecciona Analize/Follow TCP Stream. Se abrir una nueva ventana.
Qu aparece sealado en rojo? Y en azul?
Vamos a hacer ahora otra prueba, pero accediendo a [Link]. Filtra para mostrar slo
los paquetes HTTP y observa los diferentes tipos de mensajes que aparecen. Vuelve a
repetir la captura realizando la misma operacin (recargar la pgina).
Pregunta 7: Indica qu tipos de mensajes HTTP aparecen en este caso y que no
aparecan antes.
Seguramente en vuestras capturas habris capturado mensajes de diferentes protocolos.
Uno de los ms comunes es ARP. Buscad algn mensaje que utilice este protocolo.
Pregunta 8: cul es el objetivo de este protocolo? Para qu se utiliza? Eres
capaz de comprender lo que representa cada campo del mensaje?
Pregunta 9: Indica una serie de capturas que deberas realizar para poder
comprobar el funcionamiento del GET Condicional del protocolo HTTP. Explica
los resultados obtenidos.
4
Uso de Wireshark para estudiar los protocolos de
correo electrnico.
Para trabajar los protocolos de correo electrnico vamos a necesitar disponer de una cuenta
de correo. Para esta parte de la prctica utilizaremos las cuentas de correo electrnico del
servidor zoltar del Laboratorio de Redes. Estas cuentas tendrn el formato:
redesXX@[Link], donde XX es el nmero de puesto de trabajo donde estis sentados.
Y para poder generar trfico de los diferentes protocolos relacionados con la aplicacin de
correo necesitaremos configurar un cliente de correo. Vamos a utilizar el Mozilla
Thunderbird.
Una vez puesta en marcha la aplicacin de correo empezar a pedirnos la informacin
bsica de configuracin:
En la primera pantalla seleccionaremos la opcin: Cuenta Correo Electrnico.
En la segunda pantalla nos pedirn adems de un nombre que nos identifique (el
que queramos introducir), la direccin de correo propia: redesXX@[Link]
A continuacin introducimos el tipo de cuenta: POP (Vamos a empezar leyendo
el correo mediante el protocolo POP3). Tambin nos pedirn el nombre del
servidor de entrada y de salida. En ambos casos el servidor es
[Link]
Nombre de usuario entrante: redesXX ; la contrasea se os dir en la sesin de
prcticas.
Nombre de la cuenta: el que queramos, por ejemplo: redesXX@[Link].
A partir de aqu vamos a comenzar a generar trfico de correos electrnicos. Para ello lo
ms fcil es enviarnos correos a nosotros mismos, es decir, a nuestra direccin de correo de
zoltar.
En primer lugar, nos enviaremos un correo mientras realizamos una captura mediante el
Wireshark. A continuacin aplicaremos un filtro para quedarnos slo con el trfico SMTP.
Observa el dilogo que mantienen tu cliente y el servidor zoltar , intenta averiguar dnde se
realiza el envo del mensaje en cuestin.
Pregunta 10: A partir del saludo que realizan, qu tipo de servidor de correo es
Zoltar?Cuales son las lneas de cabecera que ha aadido nuestro agente de
usuario al correo que hemos escrito?
A continuacin vamos a realizar el envo de un correo idntico al anterior pero con un
fichero adjunto. Este fichero lo podis obtener del directorio remoto
//[Link]/redes-fureco/Practicas/[Link]. Recordad de la Prctica 1 que
tendremos que hacer un smb://[Link]/redes-fureco mediante el navegador y
despus de identificarnos en dominio alumno acceder al fichero [Link].
5
Pregunta 11: Indica cules son las nuevas lneas de cabecera que aparecen en el
mensaje y explica qu informacin proporciona cada una de ellas. Con qu
mejora del protocolo SMTP estn relacionadas estas nuevas lneas?
Para poder estudiar el protocolo de lectura de correo POP3 vamos a realizar una captura
mediante el Wireshark mientras enviamos un correo a nuestra propia cuenta y luego lo
leemos del servidor. Una vez ledo el correo paramos la captura. Mediante un filtro nos
quedamos slo con el dilogo POP3.
Pregunta 12: Indica qu comandos enva nuestro cliente al servidor POP3 de
zoltar y explica el significado de cada uno de ellos. Viendo la autentificacin que
realiza el servidor diras que es una comunicacin segura? Por qu?
El funcionamiento ms normal de un servidor POP3 es leer el correo del servidor y
borrarlo. Pero ahora vamos a configurar nuestro servidor POP3 para que lea el correo y
despus lo deje en el servidor. Para ello seleccionamos Editar >> Configuracin de las
cuentas >> Configuracin del Servidor >> Dejar los mensajes en el Servidor.
Una vez modificado hacemos una captura exactamente igual que la anterior.
Pregunta 13: Explica de qu forma cambia el dilogo que nuestro cliente
mantiene con el servidor cuando nos enviamos y leemos un correo nuevo.
A continuacin, vamos a cambiar en nuestro agente de usuario el protocolo que utilizamos
para leer el correo. En lugar de POP3 utilizaremos IMAP. Para ello eliminaremos la cuenta
de POP3 ( Editar >> Configuracin de las cuentas >> Eliminar Cuenta ) y crearemos una
nueva cuenta de recepcin de correo de IMAP ( Editar >> Configuracin de las cuentas
>> Aadir Cuenta )
Pregunta 14: Lee el correo con esta nueva cuenta. Haba algn correo
pendiente de leer?Por qu?
Realiza el envo y recepcin de un nuevo correo mientras realizas una captura con el
Wireshark. Mediante la utilizacin del filtro adecuado selecciona el dilogo IMAP que
mantienen cliente y servidor. Identifica los diferentes comandos IMAP estudiados en clase
de teora.
Pregunta 15: Qu tipo de conexiones utiliza IMAP?
Pregunta 16: Averigua, realizando las capturas necesarias mediante el
Wireshark, cundo inician y cundo cierran la conexin el cliente y servidor
IMAP.
Pregunta 17: Cul piensas que es la funcin de la operacin NOOP que aparece
en el dilogo IMAP entre cliente y servidor?