UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO
Departamento Acadmico de Informtica
REDES Y TELECOMUNICACIONES 2
Lab 07: Wireshark - Introduccin
Ing Manuel Pealoza Figueroa
Dime y lo olvidar. Mustrame y lo recordar. Involcrame y lo entender Proverbio chino
1. OBJETIVOS: 1.1 Entender los fundamentos de la comunicacin por redes. 1.2 Aprender el uso del sniffer de paquetes Wireshark (una herramienta para observar los mensajes intercambiados entre entidades de protocolos en ejecucin).
2. BASE TEORICA COMPLENTARIA Lab Wireshark: Comenzando 1 La comprensin de cualquier persona de los protocolos de red con frecuencia puede ser grandemente profundizada con "ver los protocolos en accin" y "con jugar con los protocolos" observando la secuencia de mensajes intercambiados entre dos entidades de protocolo, ahondando en los detalles de la operacin del protocolo, y provocando a los protocolos para realizar ciertas acciones y luego observar estas acciones y sus consecuencias. Esto puede hacerse en escenarios simulados en un "verdadero" entorno de red tal como el Internet. Los applets de Java que acompaan este texto toman el primer enfoque. En estos Labs Wireshark 2 , se tomar el ltimo enfoque. Se estar corriendo diversas aplicaciones de red en diferentes escenarios utilizando una computadora en el escritorio, en la casa, o en un laboratorio. Se observar los protocolos de red en la computadora "en accin", interactuando e intercambiando mensajes con las entidades de protocolos ejecutndose en otra parte del Internet. As, usted y su computadora sern parte integrante de estos laboratorios "en vivo". Se observar, y se aprender, haciendo.
La herramienta bsica para observar los mensajes intercambiados entre entidades de protocolos en ejecucin es llamada un sniffer de paquetes. Como el nombre sugiere, un sniffer de paquetes captura ("huele") los mensajes enviados/recibidos desde/por la computadora; tambin tpicamente almacenar y/o visualizar los contenidos de los diversos campos del protocolo en estos mensajes capturados. Un sniffer de paquetes por si mismo es pasivo. Observa los mensajes a ser enviados y recibidos por las aplicaciones y los protocolos corriendo en la computadora, pero nunca enva paquetes por si mismo. De la misma manera, paquetes recibidos nunca son explcitamente dirigidos al sniffer de paquetes. En cambio, un sniffer de paquetes recibe una copia de los paquetes que son
1 Adaptado de: Wireshark Labs: Versin: 2.0, 2007 J.F. Kurose, K.W. Ross. 2 Versiones anteriores de estos laboratorios usaban el analizador de paquetes Ethereal. En mayo 2006, el desarrollador de Ethereal se sum a una nueva empresa, y tuvo que dejar la marca registrada Ethereal detrs. l entonces cre el analizador de protocolos de red Wireshark, un sucesor de Ethereal. Dado que Ethereal ya no est siendo activamente mantenido o desarrollado, as se ha conmutado estos labs a Wireshark. UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO REDES Y TELECOMUNICACIONES 2 Lab 07: Wireshark - Introduccin
enviados/recibidos desde/por la aplicacin y los protocolos ejecutndose en la mquina.
La figura 1 muestra la estructura de un sniffer de paquetes. A la derecha de la Figura 1 estn los protocolos (en este caso, los protocolos de Internet) y las aplicaciones (tal como un navegador web un cliente ftp) que normalmente corren en la computadora. El sniffer de paquetes, mostrado dentro del rectngulo de rayas en la figura 1 es una adicin al software usual en la computadora, y consta de dos partes. La librera de captura de paquetes recibe una copia de cada frame de la capa-de-enlace que es enviada desde recibida por la computadora. Recuerde que los mensajes intercambiados por los protocolos de las capas superiores tales como HTTP, FTP, TCP, UDP, DNS, o IP todos son eventualmente encapsulados en frames de la capa-de-enlace los que son transmitidos por medios fsicos tal como un cable Ethernet. En la Figura 1, el medio fsico supuesto es un Ethernet, y as todos protocolos de las capas superiores son eventualmente encapsulados dentro de un frame Ethernet. Capturando todos los frames de la capa-de-enlace de este modo te da todos los mensajes enviados/recibidos desde/por todos los protocolos y aplicaciones corriendo en la computadora.
Figura 1: Estructura del sniffer de paquetes
El segundo componente de un sniffer de paquetes es el analizador de paquetes, que muestra el contenido de todos los campos dentro de un mensaje del protocolo. Para hacerlo, el analizador de paquetes tiene que "comprender" la estructura de todos los mensajes intercambiados por los protocolos. Por ejemplo, supongamos que se est interesado en mostrar los diversos campos en los mensajes intercambiados por el protocolo HTTP en la figura 1. El analizador de paquetes entiende el formato de los frames Ethernet, y as puede identificar el datagrama IP datagrama dentro de un frame Ethernet. Tambin entiende el formato del datagrama IP, as que puede extraer el segmento TCP dentro del datagrama IP. Finalmente, entiende la estructura del segmento TCP, as puede extraer el mensaje HTTP contenido en el segmento TCP. Finalmente, entiende el protocolo HTTP y as, por ejemplo, sabe que los primeros bytes de un mensaje HTTP contendrn el string "GET", "POST", "HEAD".
Se usar el sniffer de paquetes Wireshark [http://www.wireshark.org/] para estos labs, lo que permite visualizar los contenidos de los mensajes enviados/recibidos desde/por UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO REDES Y TELECOMUNICACIONES 2 Lab 07: Wireshark - Introduccin
los protocolos en diferentes niveles del stack de protocolos. (Tcnicamente hablando, Wireshark es un analizador de paquetes que usa una librera de captura de paquetes en la computadora). Wireshark es un analizador de protocolo de red libre que corre sobre computadoras Windows, Linux/Unix, y Mac. Es un analizador de paquetes ideal para nuestros labs es estable, tiene una gran base de usuarios y soporte bien documentado que incluye una gua del usuario (http://www.wireshark.org/docs/wsug_html_chunked/), pgina "man" (http://www.wireshark.org/docs/man-pginas/), y un detallado FAQ (http://www.wireshark.org/faq.html), rica funcionalidad que incluye la capacidad para analizar cientos de protocolos, y una bien diseada interfaz de usuario. Opera en computadoras utilizando Ethernet, Token Ring, FDDI, serial (PPP y SLIP), LAN's inalmbricas 802,11, y conexiones ATM (si el SO sobre el cual se est ejecutando permite a Wireshark hacerlo).
Obteniendo Wireshark
Para correr Wireshark, se necesitar tener acceso a una computadora que soporte tanto Wireshark como la librera de captura de paquetes libpcap WinPCap. El software libpcap ser instalado, si no est instalado dentro del SO, cuando se instala Wireshark. Ver http://www.wireshark.org/download.html para una lista de los SO's soportados y sitios de descarga.
Descargar e instalar el software Wireshark: Ir a http://www.wireshark.org/download.html y descargar e instalar el binario Wireshark para la computadora. Descargar la gua del usuario Wireshark.
El FAQ Wireshark tiene un nmero de sugerencias tiles y delicadezas interesantes de informacin, particularmente si se tiene problemas para instalar correr Wireshark.
UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO REDES Y TELECOMUNICACIONES 2 Lab 07: Wireshark - Introduccin
Ejecutando Wireshark
Cuando se inicia el programa Wireshark, la interface grfica de usuario de Wireshark mostrada en el Figura 2 ser displayada. Esta ventana provee acceso rpido a algunos tems que se usan con frecuencia desde el men. Inicialmente, la ventana no muestra ningn dato. Figura 2: Interfaz Grfica del Usuario de inicio de Wireshark
Despus que se ejecuta la captura de datos, la interface grfica de usuario de Wireshark de la Figura 3 ser mostrada.
Figura 3: Interfaz Grfica del Usuario de Wireshark
Men de comandos Barra de herramientas de filtros Panel lista de paquetes capturados Panel detalles del paquete seleccionado Panel bytes del paquete seleccionado en hexadecimal y ASCII Barra de herramientas principal UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO REDES Y TELECOMUNICACIONES 2 Lab 07: Wireshark - Introduccin
La interfaz Wireshark tiene los siguientes componentes principales: El men de comandos: es un men estndar desplegable ubicado a en la parte superior de la ventana. De inters para nosotros ahora son el men File y Capture. El men File permite guardar datos de paquetes capturados abrir un archivo que contiene datos de paquetes previamente capturados, y salir de la aplicacin Wireshark. El men Capture permite comenzar a capturar paquetes.
La ventana lista de paquetes capturados: muestra un resumen de 1-lnea para cada paquete capturado, incluyendo el nmero de paquete (asignado por Wireshark; esto no es un nmero de paquete contenido en el encabezado de algn protocolo), el momento en que el paquete fue capturado, las direcciones fuente y de destino del paquete, el tipo de protocolo, e informacin especfica- del-protocolo contenida en el paquete. El listado del paquete puede ser ordenado conforme a cualquiera de estas categoras con hacer clic sobre un nombre de columna. El campo protocol type lista el protocolo de ms alto nivel que envi recibi paquete, i.e., el protocolo que es la fuente o el sumidero final para este paquete.
La ventana detalles del paquete seleccionado: provee detalles acerca del paquete seleccionado (resaltado) en la ventana lista de paquetes capturados. (Para seleccionar un paquete en la ventana lista de paquetes capturados, coloque el cursor sobre el resumen de 1-lnea del paquete en la ventana lista de paquetes capturados y haga clic con el botn izquierdo del mouse). Estos detalles incluyen informacin acerca del frame Ethernet (suponiendo que el paquete fue enviado/recibido sobre una interfaz Ethernet) y del datagrama IP que contiene este paquete. La cantidad de detalle Ethernet y de la capa-IP mostrada puede ser ampliada minimizada con hacer clic en las cajas ms-o- menos a la izquierda de la lnea del frame Ethernet datagrama IP en la ventana packet details. Si el paquete ha sido acarreado por TCP UDP, los detalles TCP UDP tambin sern mostrados, los cuales pueden similarmente ser ampliados minimizados. Finalmente, detalles acerca del protocolo del ms alto nivel que envi recibi este paquete tambin son proporcionados.
La ventana detalles del paquete seleccionado: muestra todo el contenido del frame capturado, tanto en formato ASCII como en hexadecimal. Hacia la parte superior de la interfaz grfica de usuario de Wireshark, est la barra de herramientas de filtros, en el cual un nombre de protocolo u otra informacin puede ser entrada a fin de filtrar la informacin mostrada en la ventana lista de paquetes capturados (y por lo tanto en las ventanas detalles del paquete seleccionado y bytes del paquete seleccionado). En el ejemplo de ms adelante, se usar el campo asociado a la barra de herramientas de filtros para hacer que Wireshark oculte (no muestre) los paquetes salvo aquellos que corresponden a mensajes HTTP.
UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO REDES Y TELECOMUNICACIONES 2 Lab 07: Wireshark - Introduccin
3. DESARROLLO DE LA PRACTICA Ejecutando Wireshark para una Corrida de Prueba:
La mejor manera de aprender acerca de cualquier nueva pieza de software es probarlo! Se supondr que la computadora est conectada al Internet mediante una interfaz Ethernet cableada (se puede usar tambin la interfaz de red inalmbrica). Hacer lo siguiente:
1. Arranque su navegador Web favorito, que mostrar el homepage seleccionado.
2. Arranque el software Wireshark. Inicialmente se ver una ventana similar al que aparece en el Figura 2, puesto que Wireshark todava no ha comenzado a capturar paquetes.
3. Para empezar la captura de paquetes, seleccionar el men desplegable Capture y seleccionar Options. Esto provocar que la ventana "Wireshark: Capture Options" sea visualizada, como se muestra en la Figura 4.
Figura 4: Ventana Capture Options de Wireshark
UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO REDES Y TELECOMUNICACIONES 2 Lab 07: Wireshark - Introduccin
4. Se puede utilizar la mayora de los valores predeterminados en esta ventana, pero deseleccione "Hide capture info dialog" bajo la zona Display Options. La interfaces de red (i.e., las conexiones fsicas) que la computadora tiene a la red ser mostrado en el men desplegable Interface en la parte superior de la ventana Capture Options. En caso que la computadora tenga ms de una interfaz de red activa (e.g., si tiene tanto una conexin inalmbrica y un Ethernet cableado), se necesitar seleccionar la interfaz que est siendo utilizado para enviar y recibir paquetes (en la mayora de los casos probablemente la interfaz cableada). Despus de seleccionar la interfaz de red (o usar la interfaz por defecto elegida por Wireshark), haga clic en Start. La captura de paquetes ahora comenzar - todos los paquetes enviados/recibidos desde/por la computadora ahora estn siendo capturados por Wireshark!
5. Una vez que se empieza a capturar paquetes, un ventana Wireshark: Capture from (un resumen de la captura de paquetes) aparecer, como se muestra en la Figura 5. Esta ventana resume el nmero de paquetes de diversos tipos que estn siendo capturados, y (importante!) contiene el botn Stop que permitir detener la captura de paquetes. No detener captura de paquetes todava.
Figura 5: Ventana Packet Capture de Wireshark
6. Mientras Wireshark est ejecutndose, entrar el URL: http://gaia.cs.umass.edu/wireshark-labs/INTRO-wireshark-file1.html y tener esa pgina visualizada en el navegador. Para mostrar esta pgina, el navegador contactar el servidor HTTP en gaia.cs.umass.edu e intercambiar mensajes HTTP con el servidor para descargar esta pgina, como discutido en clases. Los frames Ethernet conteniendo estos mensajes HTTP sern capturados por Wireshark.
UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO REDES Y TELECOMUNICACIONES 2 Lab 07: Wireshark - Introduccin
7. Despus que el navegador ha mostrado la pgina Web INTRO-wireshark- file1.html, detener la captura de paquetes Wireshark seleccionando stop en la ventana Capture de Wireshark. Esto provocar que la ventana Capture de Wireshark desaparezca y ventana principal de Wireshark muestre todos los paquetes capturados desde que comenz captura de paquetes. La ventana principal de Wireshark debe ahora parecer similar a la Figura 3. Ahora se tiene datos de paquetes vivos que contienen todos los mensajes de protocolos intercambiados entre la computadora y otras entidades de red! Los intercambios de mensajes HTTP con el servidor web gaia.cs.umass.edu deben de aparecer en alguna parte en la lista de paquetes capturados. Pero habr muchos otros tipos de paquetes mostrados tambin (vase, e.g., los muchos tipos de protocolo diferentes mostrados en la columna Protocol en la figura 3).
Aun cuando la nica accin tomada fue descargar una pgina web, evidentemente hubo muchos otros protocolos corriendo en la computadora que no son vistos por el usuario. Se aprender mucho ms acerca de estos protocolos a medida que se progrese a travs del texto! Por ahora, se debe ser consciente que hay con frecuencia mucho ms ocurriendo que lo que "el ojo encuentra!".
8. Tipear "http" (sin las comillas, y en minsculas todos los nombres de protocolos estn en minsculas en Wireshark) en el campo de la barra de herramientas de filtros de visualizacin en la parte superior de la ventana principal de Wireshark. Luego seleccionar Apply (a la derecha de donde se entr "http"). Esto provocar que slo mensajes HTTP sean mostrados en ventana lista de paquetes capturados. Figura 5: Pantalla de Wireshark despus del paso 8.
UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO REDES Y TELECOMUNICACIONES 2 Lab 07: Wireshark - Introduccin
9. Seleccionar el primer mensaje http mostrado en la ventana lista de paquetes capturados. Este debera ser el mensaje HTTP GET que fue enviada desde la computadora al servidor HTTP gaia.cs.umass.edu. Cuando se selecciona el mensaje HTTP GET, la informacin del frame Ethernet, del datagrama IP, del segmento TCP, y del encabezado del mensaje HTTP sern mostrados en la ventana detalles del paquete seleccionado 3 . Con hacer clic en las casillas +/- a la izquierda de la ventana detalles del paquete seleccionado, Minimiza la cantidad de informacin del Frame Ethernet, Protocolo Internet, y Protocolo de Control de Transmisin mostrada Maximiza la cantidad de informacin mostrada acerca del protocolo HTTP. La pantalla Wireshark debera ahora parecer a grandes rasgos como la mostrada en la Figura 7. (Nota, en particular, la cantidad minimizada de informacin del protocolo para todos los protocolos salvo HTTP, y la cantidad al maximizada de informacin del protocolo para HTTP en la ventana detalles del paquete seleccionado).
10. Salir de Wireshark
Congratulaciones! Ahora se ha completado el lab Wireshark - Introduccin. Figura 7: Pantalla de Wireshark despus del paso 9.
3 Recordar que el mensaje HTTP GET que es enviado al servidor web gaia.cs.umass.edu esta contenido dentro de un segmento TCP, el cual est contenido en un datagrama IP, el cual est encapsulado en un frame Ethernet. Si este proceso de encapsulacin no es bastante claro todava, regresar a Redes y Teleproceso I. UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO REDES Y TELECOMUNICACIONES 2 Lab 07: Wireshark - Introduccin
4. CONTROL: Qu entregar?
El objetivo de este lab Wireshark fue principalmente introducirnos justamente en Wireshark. Los siguientes preguntas demostrarn que se ha sido capaz de obtener de Wireshark instalado y ejecutndose, y se ha explorado algunas de sus capacidades. Responder las siguientes preguntas, basado en la experimentacin de Wireshark:
1. Listar hasta 10 protocolos diferentes que aparecen en la columna protocol en la ventana lista de paquetes capturados no filtrada en el paso 7 de arriba.
2. Cuanto tiempo tom desde que el mensaje HTTP GET fue enviada hasta que la rplica HTTP OK fue recibida? (Por defecto, el valor de la columna Time en la ventana lista de paquetes capturados es la cantidad de tiempo, en segundos, desde que el trazado Wireshark comenz. Para mostrar el campo Time en el formato time-of-day, seleccionar el men desplegable View de Wireshark, luego seleccionar Time Display Format, entonces seleccionar Time-of-day).
3. Cul es la direccin de Internet de gaia.cs.umass.edu (tambin conocido como www-net.cs.umass.edu)? Cul es la direccin de Internet de la computadora?
4. Imprimir los dos mensajes HTTP mostrados en el paso 9 de arriba. Para hacerlo, seleccionar Print desde el men del comando File de Wireshark, y seleccionar "Selected Packet Only" y "Print as displayed" y luego clic OK.