28
Práctica 3: Uso de herramientas y análisis de paquetes Autores: Enrique Bonet Rogelio Montañana Paco Soriano Objetivo y descripción general. El objetivo de esta práctica es aprender a utilizar un conjunto de programas, la mayoría de ellos accesibles en forma de comandos u órdenes, que nos permitirán realizar diversas tareas relacionadas con las comunicaciones en un host con sistema operativo Linux. Muchos de estos programas están disponibles con nombres iguales o muy parecidos en otros sistemas operativos. Las opciones disponibles varían con las implementaciones y a veces una misma tarea puede llevarse a cabo mediante diferentes comandos. Para obtener ayuda sobre el uso y las opciones de cada comando puedes emplear la ayuda en línea, mediante el comando man (por ejemplo ’man ifconfig’) o también el propio comando con la opción –h (por ejemplo ’ifconfig –h’) . Esta práctica se desarrolla utilizando los ordenadores del laboratorio con la partición del sistema operativo ‘Linux redes’ y con el usuario ‘root’ (la contraseña la indicará el profesor). Cada puesto de trabajo tiene tres rosetas, una blanca y dos negras. La roseta blanca conecta a los puertos 10/100 Mb/s de un conmutador de la red de la Universidad, y es la que debe utilizarse normalmente. Las rosetas negras conectan, ambas, con un hub de 10 Mb/s situado en el laboratorio, también conectado a la red de la Universidad; estas rosetas negras se utilizan para experimentar con otro tipo de conexión en determinados momentos de la sesión. La mayor parte de la práctica se desarrolla de forma independiente en cada ordenador, salvo algunas tareas que se han de hacer por parejas de ordenadores. En cada ordenador debería haber preferentemente uno o como máximo dos alumnos. A lo largo del guión se plantean una serie de preguntas que debes ir respondiendo durante la sesión, ya que esto te facilitará el desarrollo de la práctica y su posterior estudio.

Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

  • Upload
    vomien

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Práctica 3: Uso de herramientas y análisis de paquetes

Autores: Enrique Bonet Rogelio Montañana

Paco Soriano Objetivo y descripción general. El objetivo de esta práctica es aprender a utilizar un conjunto de programas, la mayoría de ellos accesibles en forma de comandos u órdenes, que nos permitirán realizar diversas tareas relacionadas con las comunicaciones en un host con sistema operativo Linux. Muchos de estos programas están disponibles con nombres iguales o muy parecidos en otros sistemas operativos. Las opciones disponibles varían con las implementaciones y a veces una misma tarea puede llevarse a cabo mediante diferentes comandos. Para obtener ayuda sobre el uso y las opciones de cada comando puedes emplear la ayuda en línea, mediante el comando man (por ejemplo ’man ifconfig’) o también el propio comando con la opción –h (por ejemplo ’ifconfig –h’) . Esta práctica se desarrolla utilizando los ordenadores del laboratorio con la partición del sistema operativo ‘Linux redes’ y con el usuario ‘root’ (la contraseña la indicará el profesor). Cada puesto de trabajo tiene tres rosetas, una blanca y dos negras. La roseta blanca conecta a los puertos 10/100 Mb/s de un conmutador de la red de la Universidad, y es la que debe utilizarse normalmente. Las rosetas negras conectan, ambas, con un hub de 10 Mb/s situado en el laboratorio, también conectado a la red de la Universidad; estas rosetas negras se utilizan para experimentar con otro tipo de conexión en determinados momentos de la sesión. La mayor parte de la práctica se desarrolla de forma independiente en cada ordenador, salvo algunas tareas que se han de hacer por parejas de ordenadores. En cada ordenador debería haber preferentemente uno o como máximo dos alumnos. A lo largo del guión se plantean una serie de preguntas que debes ir respondiendo durante la sesión, ya que esto te facilitará el desarrollo de la práctica y su posterior estudio.

Page 2: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Redes

P3-2

Desarrollo de la práctica. 1.-Desactivación del cortafuegos y prueba de conectividad con ping En primer lugar, para evitar posibles interferencias debes desactivar el cortafuegos mediante el comando:

service iptables stop que ejecutarás en una ventana de terminal. Ahora, para comprobar que dispones de conectividad lanza un ping a la dirección 147.156.1.1, que utilizarás como dirección de prueba a lo largo de la sesión. Una vez comprobada la conectividad interrumpe el ping. 2.-Comandos ifconfig y arp Los comandos ifconfig y arp ya los has utilizado en prácticas anteriores. ifconfig nos permite configurar la dirección IP y la máscara de una interfaz, así como averiguar las características de todas las interfaces operativas. El comando arp nos permite consultar la tabla ARP cache del host. Ejecuta primero el comando ifconfig sin argumentos, para obtener información sobre todas las interfaces que tiene configurado el sistema, sus nombres y características principales. La respuesta obtenida depende del hardware y la versión de Linux del equipo. Normalmente los sistemas suelen tener una interfaz loopback de nombre ‘l0’ y una interfaz Ehternet cuyo nombre es ‘eth0’, ‘p4p1’ o algo similar. La interfaz loopback, que no utilizaremos en esta práctica, tiene siempre la dirección IPv4 127.0.0.1 con la máscara 255.0.0.0. La interfaz Ethernet deberá tener una dirección IPv4 del tipo 147.156.xxx.yyy donde ‘xxx.yyy’ varía para cada equipo, y la máscara, que depende de la red en la que nos encontremos, será 255.255.248.0 o algo parecido. En el siguiente ejemplo la interfaz Ethernet recibe el nombre de ‘p4p1’: root@lab6inf12 ]# ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:142 errors:0 dropped:0 overruns:0 frame:0 TX packets:142 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:19416 (18.9 KiB) TX bytes:19416 (18.9 KiB)

p4p1 Link encap:Ethernet HWaddr 00:1F:D0:CE:3F:30 inet addr:147.156.80.114 Bcast:147.156.87.255 Mask:255.255.248.0 inet6 addr: 2001:720:1014:88:21f:d0ff:fece:3f30/64 Scope:Global inet6 addr: fe80::21f:d0ff:fece:3f30/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1570760 errors:0 dropped:169583 overruns:0 frame:0 TX packets:27087 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:230583303 (219.9 MiB) TX bytes:3075366 (2.9 MiB) Interrupt:43 Base address:0xe000

Page 3: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Práctica 3: Uso de herramientas y análisis de paquetes

P3-3

A partir de la información obtenida responde a la pregunta 1, indicando el nombre de tu interfaz Ethernet, su dirección MAC (HWaddr:), dirección IP (inet addr:) y la máscara (Mask:):

PREGUNTA 1 Nombre de la interfaz Ethernet

Dirección MAC:

Dirección IP:

Máscara:

En prácticas anteriores hemos utilizado el comando ifconfig para modificar la dirección IP y la máscara de nuestro ordenador, porque estábamos utilizando maquetas aisladas y queríamos tener direcciones privadas. En esta práctica vamos a trabajar conectados a la red de la Universidad, por lo que utilizaremos la configuración que acabamos de anotar, que es la que trae por defecto el equipo. Los primeros 6 bytes de la dirección MAC son lo que se conoce como el OUI (Organizationally Unique Identifier) que es el prefijo que identifica al fabricante de la interfaz. Para averiguar el fabricante de tu interfaz busca su OUI en el URL siguiente: http://standards.ieee.org/develop/regauth/oui/public.html y anótalo a continuación:

PREGUNTA 2 Fabricante de la interfaz de red

Ahora debes averiguar la dirección MAC del ordenador vecino tuyo a partir de su dirección IP. Pregúntale a tu compañero su dirección IP y haz ’ping’ a su ordenador, ejecutando a continuación el comando ’arp –n’ para obtener su dirección MAC (la opción –n del comando arp suprime la resolución inversa de nombres, de forma que solo nos mostrará en pantalla las direcciones IP):

Page 4: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Redes

P3-4

PREGUNTA 3 Dirección IP del ordenador vecino

Dirección MAC del ordenador vecino

Ahora vamos a modificar la dirección MAC de nuestro ordenador. Para evitar el riesgo de coincidencia con direcciones existentes en otros ordenadores de la LAN te asignarás una dirección MAC local, creada a partir de tu dirección MAC global, que es la que viene grabada de fábrica en la interfaz y que has obtenido antes con el comando ifconfig (pregunta 1). Para ello tomarás esa dirección MAC y le sumarás 2 al segundo dígito hexadecimal1, por ejemplo si la MAC de tu ordenador es 00:1F:D0:CE:3F:30 la dirección que debes poner es la 02:1F:D0:CE:3F:30. Para cambiar tu dirección MAC ejecutarás ahora la siguiente secuencia de comandos:

ifconfig interfaz down ifconfig interfaz hw ether XX:XX:XX:XX:XX:XX2 ifconfig interfaz up ifconfig interfaz

donde ’XX:XX:XX:XX:XX:XX’ es la nueva dirección MAC e ’interfaz’ el nombre de la interfaz Ethernet sobre la que quieres actuar (por ejemplo p4p1). El último comando (’ifconfig interfaz’) te permite comprobar que, efectivamente, el cambio ha tenido lugar. Ahora debes esperar a que tu compañero del ordenador vecino haga también el cambio de MAC. Una vez cambiadas ambas MACs vuelve a ejecutar el ping a su dirección IP (la que anotaste en la pregunta 3) y averigua, utilizando ’arp –n’, la nueva dirección MAC que tiene:

1 Sumando 2 al segundo dígito hexadecimal de la dirección estás poniendo a 1 el penúltimo bit del primer byte, que es precisamente el que indica que se trata de una dirección local. 2 La dirección MAC puede introducirse también en formato ’XXXXXXXXXXXX’

Page 5: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Práctica 3: Uso de herramientas y análisis de paquetes

P3-5

PREGUNTA 4 Nueva dirección MAC del ordenador vecino

Esta dirección debe ser diferente de la que anotaste en la pregunta 3, ya que tu compañero ha cambiado su dirección MAC siguiendo el mismo procedimiento que tu. Si ahora te conectaras al conmutador LAN y vieras su tabla de direcciones MAC encontrarías reflejadas en ella las nuevas direcciones. 3.- Comando route Cualquier modificación de una interfaz mediante el comando ifconfig borra las rutas que hubiera definidas a través de dicha interfaz, por lo que al cambiar tu dirección MAC te has quedado sin ruta por defecto, solo tienes conectividad con los ordenadores de tu red local (tu edificio). Para comprobarlo lanza un ping a la dirección 147.156.1.1 y verás que no funciona. Con el comando ’route –n’ debería aparecer ahora algo similar a lo siguiente: [root@lab6inf22 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 147.156.80.0 0.0.0.0 255.255.248.0 U 0 0 0 p4p1 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 p4p1 [root@lab6inf22 ~]#

Esto significa que solo tienes ruta definidas para la red directamente conectada a tu interfaz Ethernet. Aparece también una ruta para la red 169.254.0.0/16, que corresponde a las direcciones de enlace local; esta ruta no tiene interés para el desarrollo de la práctica. Para recuperar plena conectividad debes configurar nuevamente la ruta por defecto utilizando el comando ’route’ de forma parecida a como lo has hecho en prácticas anteriores. Sin embargo, para ello necesitas averiguar antes la dirección de tu router. Esta dirección puedes deducirla a partir de la dirección y máscara de tu interfaz Ethernet (datos que anotaste en la pregunta 1), sabiendo además que el router tiene la primera dirección útil de la subred en la que te encuentras. Por ejemplo, si tu dirección fuera la 147.156.201.15 y la máscara la 255.255.254.0, entonces la dirección del router sería 147.156.200.1. Averigua ahora la dirección de tu router por defecto:

Page 6: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Redes

P3-6

PREGUNTA 5 Dirección IP del router por defecto

Una vez sabida dicha dirección deberás definir la ruta por defecto utilizando el comando:

route add –net 0.0.0.0 netmask 0.0.0.0 gw dirección_IP donde ‘dirección_IP’ es la dirección IP del router, que acabas de averiguar. Una vez ejecutado el comando anterior debes comprobar con el comando ’route -n’ que la ruta por defecto se ha definido correctamente, y con el ping a 147.156.1.1 comprobar que has recuperado la conectividad con el exterior. Si por algún motivo defines una ruta equivocada deberás borrarla antes de repetir el comando correcto:

route del –net red netmask máscara gw dirección_IP donde ‘red’, ‘máscara’ y ‘dirección _IP’ son los valores que corresponden a la ruta que quieres borrar, ya que cada ejecución del comando route añade una nueva entrada en la tabla de rutas: 4.- Definición de direcciones IP secundarias Normalmente una interfaz Ethernet tiene asociada una dirección MAC y una dirección IP, como es nuestro caso. Sin embargo es posible, y a veces muy útil, asociar varias direcciones IP con una misma interfaz y con una misma MAC3. Esto es lo mismo que cuando en una interfaz de un router configuramos varias direcciones IP, una actuando como primaria y el resto como secundarias. En el caso de sistemas tipo Unix la dirección IP primaria es la que aparece asociada con la interfaz física. Podemos añadir a una interfaz tantas direcciones IP secundarias como queramos mediante el comando ifconfig, utilizando el nombre de la interfaz seguido de una etiqueta alfanumérica cualquiera, separada por el carácter ‘:’. Es práctica habitual utilizar como etiqueta números naturales correlativos (1, 2, 3,…) de forma que si nuestra interfaz es la p4p1 las direcciones IP secundarias irán asociadas con los nombres p4p1:1, p4p1:2, etc. Las direcciones secundarias han de ser evidentemente diferentes de la dirección primaria, pero pueden pertenecer a la misma red u otras diferentes. Vamos a probar a configurar en nuestra interfaz Ethernet dos direcciones IP secundarias, de las redes privadas 10.0.0.0/8 y 172.16.0.0/16. A partir de nuestra dirección primaria (147.156.xxx.yyy) nos asignaremos las direcciones secundarias 10.0.xxx.yyy y 172.16.xxx.yyy; por ejemplo, si nuestra dirección es la 147.156.80.114 los comandos que ejecutaremos serán:

3 Obsérvese que no es posible asociar varias direcciones MAC con una misma interfaz, ni varias MAC con una misma IP. En cierto modo podemos considerar la MAC como el identificador de la interfaz, la MAC puede cambiarse, pero en un momento dado la interfaz solo tiene una MAC.

Page 7: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Práctica 3: Uso de herramientas y análisis de paquetes

P3-7

ifconfig p4p1:1 10.0.80.114 netmask 255.0.0.0 up ifconfig p4p1:2 172.16.80.114 netmask 255.255.0.0 up

Ejecutando a continuación el comando ifconfig sin argumentos podrás comprobar que ahora aparecen nuevas ‘subinterfaces’ que reflejan las direcciones IP que acabamos de definir, pero con una menor cantidad de información asociada, por ejemplo estas subinterfaces no tienen direcciones MAC ni muestran contadores de tráfico, colisiones, errores, etc. No es posible obtener un desglose de los paquetes enviados o recibido por la subinterfaz p4p1:2, por ejemplo. Esto se debe a que realmente no se trata de interfaces diferentes y todas esas características son las mismas que para la interfaz de la que provienen. Ahora comprueba que tu compañero del ordenador vecino haya hecho las definiciones correspondientes a las IP secundarias y prueba a hacer ping a sus direcciones 10.0.xxx.yyy y 172.16.xxx.yyy. Los pings deben funcionar exactamente igual que para la dirección 147.156.xxx.yyy. Después de hacer el ping a las nuevas direcciones consulta con ’arp –n’ la ARP cache y observa la dirección MAC que aparece asociada con esas direcciones IP; dicha dirección debería ser la misma que aparecía para la dirección primaria, que es la que anotaste en la pregunta 4. Una consecuencia interesante de haber configurado las nuevas direcciones secundarias es que nuestro ordenador tiene ahora dos rutas nuevas. Para comprobarlo consulta la tabla de rutas con el comando ’route –n’ . Verás que ahora aparece una ruta hacia la red 10.0.0.0/8 y otra hacia la 172.16.0.0/16, que corresponden precisamente a las redes de las nuevas direcciones IP. Esto es lo que llamamos redes ‘directamente conectadas’ y las entradas han sido creadas como consecuencia de la configuración dirección/máscara asignada a las nuevas subinterfaces. Si antes de estar estas rutas hubiéramos enviado un paquete a una dirección 10.*.*.* ó 172.16.*.* nuestro host lo habría mandado al router por defecto; sin embargo ahora lo que hará es mandar un ARP request buscando al destinatario del paquete, y si recibe respuesta le mandará directamente el paquete, sin que intervenga ningún router en el proceso. 5.- Comando ethtool El comando ethtool permite consultar y modificar los parámetros de funcionamiento de una interfaz, por ejemplo con ’ethtool p4p1’ visualizamos los parámetros de funcionamiento de la interfaz p4p1. Ejecuta ethtool sobre tu interfaz Ethernet y averigua la velocidad de conexión, el modo dúplex (half o full) y si está activada o no la autonegociación.

PREGUNTA 6

Indique la velocidad, modo dúplex y autonegociación

Velocidad: _________ Mb/s

Modo Duplex: ________

Autonegociación: _______

Page 8: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Redes

P3-8

Por defecto, la interfaz Ethernet arranca con la autonegociación en on, para negociar su velocidad y modo dúplex con el equipo (conmutador, hub, etc.) al que se encuentra conectado. Como ahora haremos diversas pruebas y en algunas perderemos la conectividad abre otra ventana de terminal y lanza en ella un ping a la dirección 147.156.1.1, que dejarás en marcha durante toda la prueba para monitorizar la conectividad. Ahora averigua, consultando la ayuda online del comando ethtool, que comando debes utilizar para desactivar la autonegociación (una pista: debes utilizar la opción ‘—s’):

PREGUNTA 7 Comando para desactivar la autonegociación

Ahora ejecuta el comando anterior y comprueba con ethtool que la autonegociación se ha desactivado. ¿Cuántos pings se han perdido durante el proceso?. Reactiva ahora la autonegociación. ¿Cuántos pings se han perdido esta vez? El número de pings perdidos corresponde aproximadamente al tiempo en segundos que tarda la interfaz en desactivar (o reactivar) la autonegociación. Desactiva una vez más la autonegociación y cambia el latiguillo del ordenador de la roseta blanca (switch 10/100 Mb/s) a una cualquiera de las dos rosetas negras (hub de 10 Mb/s). ¿Qué ocurre con el ping? Si repites el ethtool verás que el ordenador se ha quedado con una velocidad de 100 Mb/s, que es la que tenía en el switch, y como hemos desactivado la autonegociación al conectarlo a un hub de 10 Mb/s no puede comunicarse. Para recuperar la conectividad has de poner la interfaz en 10 Mb/s, cosa que podrás hacer también con la opción –s del comando ethtool. Averigua el comando y cambia la velocidad:

PREGUNTA 8 Comando para cambiar la velocidad de la interfaz a 10 Mb/s

Con la velocidad a 10 Mb/s recuperamos la conectividad, pero el modo dúplex en el ordenador está a full y en el hub está a half; esta es una incompatibilidad que solo se pone de manifiesto cuando hay tráfico intensivo, por lo que nuestro ping parece funcionar normalmente (aunque es posible que se pierda alguno de vez en cuando). Reactiva ahora la autonegociación con ethtool y mira a continuación el estado de la interfaz, que debe ser 10 Mb/s half dúplex, plenamente compatible con el hub. A continuación devuelve el latiguillo al conmutador (roseta blanca) y verás que la conectividad solo se interrumpe por unos, segundos, el tiempo que el cable está desconectado más lo que tarda el proceso de autonegociación en ajustar la velocidad y el modo dúplex a la nueva conexión.

Page 9: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Práctica 3: Uso de herramientas y análisis de paquetes

P3-9

Ahora explora las posibilidades que ofrece la opción –S del comando ethtool. Con ella puedes averiguar estadísticas de la interfaz, algo más detalladas que lo que ofrece el comando ifconfig. Esto es más o menos equivalente a lo que en un conmutador o router obtienes con el comando ‘show interfaces’. Por ejemplo, si quisieras averiguar si una interfaz está recibiendo paquetes erróneos este sería el comando a utilizar. 6.- Programa wireshark. Wireshark es el analizador de protocolos más utilizado en la actualidad. Se trata de un software de dominio público que está desarrollado para sistemas UNIX, Mac y Windows y soporta multitud de interfaces físicas (incluso inalámbricas, a pesar de su nombre). El software puede obtenerse de forma gratuita de www.wireshark.org. Se trata de una evolución del conocido Ethereal, que cambió de nombre debido a que su principal desarrollador pasó a trabajar para otra empresa y por problemas de registro de marcas no podía seguir utilizando el nombre original. Wireshark tiene una interfaz gráfica que facilita considerablemente su uso. Es capaz de decodificar más de 400 protocolos diferentes, desde el nivel de enlace al nivel de aplicación. Cuando se utiliza sobre interfaces Ethernet puede funcionar en modo promiscuo y capturar todas las tramas de la red, o bien en modo no promiscuo y capturar solo las dirigidas a la interfaz elegida. Aunque posee muchas opciones de inicio, lo más normal es ejecutarlo sin ningún tipo de opción y configurarlo durante su uso.

Para arrancar el programa debemos ir a la pestaña ‘Aplicaciones’, seleccionar ‘Internet’ y allí seleccionar ‘Wireshark’. Al arrancar el programa nos aparece una primera ventana como la siguiente:

Page 10: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Redes

P3-10

La mejor manera de empezar es clicar en la ‘Interface List’ que aparece en la parte superior izquierda de la ventana, con lo que aparece una ventana superpuesta como la siguiente:

En ella se nos muestra la lista de interfaces disponibles. La columna ‘IP’ nos muestra la dirección IP de cada interfaz, por defecto la IPv6 pero pulsando en cualquiera de las direcciones podemos obtener la IPv4. Además nos muestra la actividad de cada interfaz, indicando el número total de paquetes transmitidos/recibidos desde que se arrancó el programa, y el tráfico instantáneo en paquetes por segundo. Normalmente no tendremos problemas en identificar la interfaz Ethernet, ya que recipbe el mismo nombre que ya hemos visto en el ifconfig. Si pulsamos el botón ‘Start’ de la interfaz Ethernet empìeza de forma inmediata la captura.

Page 11: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Práctica 3: Uso de herramientas y análisis de paquetes

P3-11

Sin embargo es más interesante pulsar el botón ‘Options’ de dicha interfaz, ya que esto nos permite ejercer un control previo, lo cual es muy interesante. Al hacerlo obtenemos una ventana como la siguiente:

En este caso en la línea que apunta la flecha se puede ver tanto la IPv6 como la IPv4 de la interfaz en la que estamos escuchando. Desgraciadamente no podemos explicar aquí el significado de todas las opciones que aparecen en esta ventana, por lo que solo comentaremos dos de ellas:

La pestaña ‘Capture packets in promiscuous mode’ (marcada por defecto) nos permite indicar si queremos que la captura abarque todos los paquetes que llegan a la interfaz, o solo los que van dirigidos a ella (en cualquier caso se incluyen los paquetes broadcast).

El campo ‘Capture Filter’ nos permite especificar un criterio de filtrado para la

captura, con el fin de restringir los paquetes a aquellos que resulten interesantes para el problema o el caso que estemos siguiendo.

Page 12: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Redes

P3-12

Cuando pulsamos el botón ‘Start’ empieza inmediatamente la captura y aparece una nueva ventana dividida en tres partes:

La parte superior de esta ventana muestra un resumen en forma de tabla con una fila o línea por cada paquete capturado, en tiempo real. En principio los paquetes aparecen ordenados por orden cronológico, pero se puede cambiar el criterio de ordenación clicando en la fila superior de cualquiera de las columnas. Podemos también seleccionar cualquier paquete para analizarlo en mayor detalle (en la figura se ha seleccionado el primer paquete). La parte central de la ventana nos muestra en detalle el contenido del paquete seleccionado en la parte superior, describiendo el protocolo al que corresponde y el significado de cada campo, pudiendo analizar la estructura del paquete desde el nivel de enlace al de aplicación. En esta parte de la ventana podemos también seleccionar cualquier campo y expandirlo para su análisis detallado (en el ejemplo se ha expandido la cabecera IP). La parte inferior de la ventana nos muestra un volcado hexadecimal y en caracteres ASCII de todo el paquete, y en todo momento nos va marcando la parte del paquete que corresponde al campo seleccionado en la parte central de la ventana (en el ejemplo de la figura marca el campo TTL de la cabecera IP, que es el que se ha seleccionado en la ventana central). Vamos a empezar con una captura indiscriminada en modo promiscuo, es decir dejando marcada la opción ‘Capture packets in promiscuous mode’ y sin definir ningún filtro de captura. Puesto que no estamos realizando ninguna actividad con la red solo veremos el tráfico generado por otros usuarios o dispositivos, pero dado que estamos conectados a un conmutador lo que veremos será en su mayoría tráfico broadcast y multicast. Esperaremos

Page 13: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Práctica 3: Uso de herramientas y análisis de paquetes

P3-13

unos 10 segundos y pararemos la captura con CTRL/E para analizarla más cómodamente. Entre los paquetes capturados, muchos pertenecientes a protocolos desconocidos, intentaremos localizar y analizar la estructura de uno de cada uno de los siguientes tipos:

Un paquete del protocolo BPDU (Spanning-Tree) Un paquete ARP Request Un paquete IP broadcast

Para localizar fácilmente un paquete de cada uno de los tipos idnicados puede ser útil ordenar la tabla de la ventana superior por la columna ‘Protocol’. Analizando el contenido de esos paquetes debemos responder ahora a las siguientes preguntas:

PREGUNTA 9

Dirección MAC de destino de la BPDU

PREGUNTA 10

Dirección MAC de origen del ARP Request

¿Aparece esta dirección dentro del paquete ARP?

PREGUNTA 11

¿Qué TTL tiene el paquete IP?

¿Cuál es su dirección de origen?

¿Y la longitud de su cabecera?

Ahora realizaremos una segunda captura, pero esta vez definiremos antes un filtro escribiendo en el campo Capture Filter ‘not multicast’. Como cabe suponer este filtro

Page 14: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Redes

P3-14

excluye a todos los paquetes con direcciones de destino multicast, lo cual incluye los paquetes broadcast (en el apéndice se encuentra una descripción detallada de la sintaxis utilizada para especificar filtros en Wireshark). Aunque el tráfico capturado se reduce bastante, no es nulo. Como podemos comprobar estamos recibiendo tráfico uinicast dirigido a otros ordenadores, a pesar de estar conectados a un conmutador ¿A que se debe esta actividad?

PREGUNTA 12 ¿A que se debe el tráfico unicast de otros ordenadores que estamos capturando?

Ahora para la captura anterior (CTRL/E), cambia la conexión de tu ordenador al hub (roseta negra) y lanza una nueva captura, también con el modo promiscuo activado y poniendo esta vez como filtro de captura ‘tcp and host glup.uv.es’. Espera a que tu compañero del ordenador vecino haga lo mismo antes de seguir. Una vez tengáis ambos la captura en marcha abre en una ventana de terminal una conexión FTP a glup.uv.es. Cuando pida usuario entra con el usuario ‘anonymous’ y pon como contraseña tu dirección de e-mail ([email protected]). Ejecuta cualquier comando de ftp (por ejemplo ‘help’) y cierra la conexión con el comando ‘quit’. Al estar activado el modo promiscuo y conectado a un hub habrás capturado no solo tu sesión, sino también las de todos tus compañeros del laboratorio. Puedes analizar cualquier paquete, incluidos aquellos que teóricamente llevan sus contraseñas (en nuestro caso las direcciones de correo). Si seleccionas un paquete concreto de una sesión cualquiera y en la pestaña ‘Analyze’ eliges la opción ‘Follow TCP Stream’ podrás seguir cómodamente y con todo detalle la sesión FTP elegida. Una vez terminada esta prueba para la captura y vuelve a conectar el ordenador a la roseta blanca, es decir al conmutador LAN. 7.- Pruebas varias con el comando ping Pon la captura del Wireshark en marcha, desactivando esta vez la pestaña de modo promiscuo y poniendo el filtro ‘icmp’ para que solo se capturen los paquetes pertenecientes a este protocolo. Utiliza el comando ping –c 1 147.156.1.1 para enviar un paquete ICMP y comprobar que el ping y la captura funcionan correctamente. Repite el envío intentando ahora que el ping no llegue a su destino poniendo un TTL bajo (opción –t del comando ping). Analiza los resultados obtenidos. Crea un filtro que capture los paquetes que tengan un valor del campo TTL menor que 16. Comprueba su funcionamiento con el ping.

Page 15: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Práctica 3: Uso de herramientas y análisis de paquetes

P3-15

PREGUNTA 13 ¿Qué filtro de Wireshark capturaría los paquetes con TTL menor que 16?

Lanza ahora otro ping, esta vez con un paquete de 4000 bytes, más grande que la trama Ethernet, para forzar su fragmentación (la opción –s permite fijar el tamaño de los paquetes de ping). Analiza lo que ocurre e intenta explicarlo a la luz de lo visto sobre fragmentación en clase de teoría. Observa si los campos de fragmentación tienen los valores que serían de esperar. Ejecuta ahora el comando ping –R –c 1 147.156.200.29 que muestra la ruta ruta seguida por los paquetes. Intenta localizar en los paquetes de respuesta la información que muestra el ping relativa a la ruta seguida por los paquetes. Averigua ahora la opción del ping que permite especificar la longitud de los paquetes. Crea un filtro que capture los paquetes de longitud menor de 200 bytes y comprueba su funcionamiento.

PREGUNTA 14 ¿Qué filtro de Wireshark capturaría los paquetes con longitud menor de 200 bytes?

8.- Resolución de nombres. Comandos nslookup y host. Generalmente los usuarios no acceden a los servicios mediante las direcciones IP, en su lugar utilizan nombres que, adecuadamente elegidos, resultan más fáciles de recordar. Por ejemplo, la dirección del servidor web de la Universidad de Valencia es 147.156.1.4, pero la inmensa mayoría de los usuarios utiliza en su lugar el nombre www.uv.es, que es fácil de recordar si sabemos que todos los nombres de la Universidad de Valencia terminan en ‘uv.es’. Los nombres en Internet tienen una estructura jerárquica basada en dominios; por ejemplo el dominio de primer nivel ‘es’ representa a España y el de segundo nivel ‘uv’ representa a la Universidad de Valencia. Pero los paquetes IP no contienen nombres, sino direcciones. Por tanto, cuando un usuario teclea en su navegador el URL http://www.uv.es, antes de enviar la solicitud de conexión su ordenador ha de averiguar la dirección IP correspondiente, para lo cual envía una pregunta al servidor encargado de la resolución de nombres, es decir de traducir ese nombre en la dirección IP correspondiente. Dicho servidor se conoce como el DNS (Domain Name Server) y es una pieza clave para el funcionamiento de la red, ya que sin él los usuarios

Page 16: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Redes

P3-16

están obligados a utilizar las direcciones IP, que normalmente no conocen. Existen dos comandos/programas que nos permiten enviar consultas al DNS, nslookup y host. nslookup es más antiguo, y por ello está más extendido. host normalmente solo está disponible en sistemas Linux y algunos otros unix. Los dos tienen su correspondiente man, y en el caso de host es posible además obtener información mediante la opción –h. Tanto nslookup como host se pueden invocar como comando con un argumento, donde se indica el nombre que queremos resolver. Además nslookup puede invocarse sin argumentos, en cuyo caso nos introduce en un intérprete de línea de comandos propio, reconocible por el prompt ‘>’, dentro del cual podemos ejecutar diversos comandos. Para salir de ese intérprete y volver al Shell de UNIX debemos utilizar el comando ‘exit’. Intenta hacer la resolución del nombre siguiente utilizando cualquiera de los dos comandos descritos:

PREGUNTA 15 ¿Cuál es la dirección IP del ordenador glup.irobot.uv.es?

Ahora repite la consulta anterior, pero poniendo antes en marcha una captura con el Wireshark, para analizar los paquetes que se transmiten como consecuencia de la consulta al DNS. Para que la captura sea selectiva vamos a configurar un filtro. Puesto que el protocolo DNS del nivel de aplicación utiliza a nivel de transporte el protocolo UDP y el puerto 53 el filtro será ‘udp and port 53’. Asegúrate de que no esté seleccionado el modo promiscuo, para evitar capturar paquetes de otros ordenadores. Realiza la captura y responde a las siguientes preguntas:

PREGUNTA 16 ¿Cuántos mensajes genera la consulta al DNS?

¿A que dirección IP se dirigen las consultas?

En el fichero /etc/resolv.conf se encuentran las direcciones IP de los servidores de DNS que tiene configurados tu host (normalmente hay más de uno para aumentar la fiabilidad). Comprueba el contenido de ese fichero (por ejemplo con ‘more /etc/resolv.conf‘) y relaciona su contenido con la respuesta de la pregunta anterior. Ahra cambia el nombre del fichero resolv.conf a resolv.conf.old . Repite la

Page 17: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Práctica 3: Uso de herramientas y análisis de paquetes

P3-17

consulta anterior al DNS. ¿Funciona? Prueba un ping a glup.irobot.uv.es ¿Funciona? Prueba un ping a su dirección IP, que obtuviste en la pregunta 15 ¿Funciona? ¿Puedes explicar lo que ocurre? Antes de seguir con el desarrollo de la práctica restaura su nombre original al fichero resolv.conf. El DNS también puede realizar resoluciones inversas, es decir encontrar el nombre que corresponde a una determinada dirección IP. Para ello puedes utilizar los mismos comandos que para las resoluciones directas, solo tienes que poner como argumento del comando host o nslookup la dirección IP cuyo nombre quieres buscar. Para probarlo responde a la siguiente pregunta (asegúrate de tener en marcha la captura anterior, o en caso contrario reanúdala):

PREGUNTA 17 ¿Qué nombre se corresponde con la dirección IP 147.156.222.65?

Por la captura del Wireshark podrás comprobar que esta consulta ha generado un intercambio de mensajes similar al que ocurrió anteriormente para la resolución directa. La resolución inversa es utilizada habitualmente en muchos programas. Por ejemplo, antes hemos utilizado los comandos arp –n y route –n. En ambos casos la opción -n servía para evitar la resolución inversa, ya que estábamos interesados en averiguar solo las direcciones IP, no los nombres. Si ahora ejecutamos cualquiera de esos comandos sin la opción -n veremos como la información que nos muestran incluye los nombres correspondientes a las direcciones IP implicadas. Además, si observamos la captura del Wireshark (que todavía debemos tener en marcha) veremos que la ejecución de estos comandos, que normalmente no generaría tráfico en la red pues nos están devolviendo información puramente local, provoca ahora el intercambio de varios paquetes en la red debido a las consultas enviadas al DNS. Un caso curioso de resolución inversa es el que puede tener lugar en el propio programa Wireshark, según las opciones que se elijan. Para ahora la captura que tengas en marcha y clica en el campo ‘Opciones’. Verás que existe una casilla en la parte inferior derecha de la pantalla, por defecto desactivada, que pone ‘Enable Network Name Resolution’. Si se activa esta casilla el Wireshark intenta realizar la resolución inversa de todas las direcciones IP que aparecen durante la captura. Puesto que en una captura aparecen normalmente muchas direcciones IP diferentes la resolución inversa de todas ellas aumenta de forma considerable la carga del Wireshark y genera mucho tráfico adicional, que se mezcla con el tráfico a analizar dificultando mucho el análisis de los paquetes, a menos que se configuren previamente los filtros adecuados. Por ese motivo esta opción está por defecto desactivada. Vamos a hacer ahora otra consulta al DNS:

Page 18: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Redes

P3-18

PREGUNTA 18

¿Cuál es la dirección IP del ordenador robotica.uv.es?

Como puedes ver este nombre devuelve la misma dirección IP que el nombre glup.irobot.uv.es, por tanto es evidente que diferentes nombres pueden resolverse en una misma dirección IP. Lo contrario, es decir que varias direcciones IP se resuelvan en el mismo nombre, no es posible. Cuando antes hemos hecho la resolución inversa hemos visto que la dirección 147.156.222.65 devolvía únicamente un nombre, glup.irobot.uv.es. Esto indica que los dos nombres no son equivalentes, ya que glup.irobot.uv.es es el nombre ‘canónico’ u oficial, mientras que robotica.uv.es es un alias o sinónimo. Una dirección IP puede corresponderse con tantos nombres como queramos, pero solo uno de ellos será el nombre canónico, siendo el resto sinónimos o alias. Cuando se hace la resolución inversa de una dirección el DNS siempre devuelve el nombre canónico. La situación es en cierto modo parecida a la correspondencia entre MAC e IP, donde a una dirección MAC le podían corresponder varias IP, pero no al revés. Además, de las múltiples direcciones IP solo una era la primaria o ‘canónica’, mientras que las demás eran secundarias o ‘alias’. Gráficamente la situación es la siguiente:

MAC

IPprimaria

IPsecundaria

Nombrecanónico

Alias

Alias

Nombrecanónico

Alias

Alias

Nombrecanónico

Alias

Alias

IPsecundaria

Page 19: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Práctica 3: Uso de herramientas y análisis de paquetes

P3-19

9.- traceroute Este programa determina el camino que siguen los paquetes para llegar a un destino determinado enviando hacia allí paquetes de sonda con valores crecientes del TTL (Time To Live). Cada vez que un paquete llega a un router este decrementa el valor del campo TTL en 1 antes de reenviarlo al siguiente router hacia su destino. Si el TTL después del decremento es 0 el router descarta el paquete y devuelve a la IP de origen un mensaje ICMP “Time Exceded”. Este mensaje ‘Time Exceeded’ lleva como dirección IP de origen la del router que ha destruido el paquete (más concretamente la de la interfaz por la que se ha emitido el mensaje ICMP). Enviando paquetes con TTLs crecientes que envía a modo de sondas (1, 2, 3, etc.) el host va descubriendo poco a poco la ruta hacia un destino determinado. La mayoría de las implementaciones de traceroute fijan por defecto un valor máximo de 30 en el valor inicial del TTL para los paquetes enviados, ya que raramente un destino en Internet se encuentra a más de 30 saltos de distancia. El programa traceroute está disponible en UNIX, Windows y otros sistemas operativos. En Windows, donde recibe el nombre tracert, las sondas son paquetes ICMP “Echo request” (como los de ping) mientras que en Linux/UNIX se utilizan por defecto datagramas UDP, aunque mediante las opciones adecuadas es posible enviar paquetes ICMP “Echo request”, e incluso TCP. Por defecto traceroute realiza siempre la resolución inversa de nombres; si quieres omitirla puedes usar la opción -n. La supresión de la resolución inversa en el traceroute puede agilizar a veces el proceso, pero resta claridad a la respuesta obtenida ya que los nombres generalmente ayudan a saber la ubicación de los routers en la red. Utiliza el traceroute para averiguar el camino seguido por los paquetes para ir desde tu ordenador hasta glup.irobot.uv.es.

PREGUNTA 19 Ruta hacia glup.irobot.uv.es:

Para analizar en detalle el funcionamiento de traceroute vamos a repetir el comando anterior teniendo en marcha una captura de Wireshark. Como filtro de captura pondremos simplemente ‘not multicast’ y nos aseguraremos de tener desactivado el modo promiscuo. Para evitar interferencias debido a los paquetes de resolución inversa generados utiliza la opción ‘-n’. Después de terminada la captura intenta identificar, gracias a su valor de TTL, los paquetes de sonda; analiza la secuencia temporal que ha seguido tu host en el envío de esos paquetes (a partir de los valores que aparecen en la columna ‘Time’ para cada uno) e intenta encontrar una explicación a su forma de proceder. Existen diversos motivos por los que el comando traceroute puede fallar, por ejemplo que en algún router del camino se hayan configurado interfaces con direccionamiento privado, que exista un cortafuegos o filtro que impida el paso de los paquetes de sonda o de

Page 20: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Redes

P3-20

los ICMP Time Exceeded, etc. Como prueba de lo anterior ejecuta ahora traceroute www.uv.es y observa el resultado. El servidor web de la Universidad se encuentra protegido por un cortafuegos que no deja pasar los paquetes UDP ni ICMP dirigidos a él. Sin embargo si utilizamos paquetes TCP dirigidos al puerto 80 (el puerto estándar de los servidores web) el cortafuegos los deja pasar, ya que considera que se trata de intentos válidos de conexión al servidor web. Esto lo conseguimos mediante la opción –T. Repite el traceroute con esta opción y observa el resultado. Observa, haciendo uso de la captura del Wireshark, el nuevo tipo de paquetes de sonda utilizados. Para terminar vamos a probar una ruta larga y compleja lanzando un traceroute al servidor www.berkeley.edu (Universidad de Berkeley en San Francisco, Estados Unidos). Puesto que este servidor se encuentra también protegido por un cortafuegos debes utilizar como antes la opción –T del traceroute. A partir de la información de tiempos obtenida, intenta responder a las siguientes preguntas (pista: la velocidad de la luz en la fibra óptica es de aproximadamente 200.000 Km/s; puesto que los tiempos que muestra traceroute corresponden al viaje de ida y vuelta esto equivale a 100.000 Km/s, por lo que cada milisegundo corresponde aproximadamente a 100 Km de distancia. Ten en cuenta que los enlaces de fibra óptica no suelen ir por la ruta más corta).

PREGUNTA 20 En que salto se encuentra el enlace nacional? (Valencia-Madrid):

En que salto se encuentra el primer enlace internacional? (Madrid-Suiza):

En que salto se encuentra el enlace trasatlántico? (Europa-EEUU):

Ten en cuenta que los nombres de los equipos no siempre se corresponden con su ubicación geográfica. 10.- netstat. El comando netstat (network statistics) suministra información relacionada con la configuración de la red, tráfico cursado y estado de las conexiones del ordenador donde se ejecuta. Está disponible de forma estándar en la gran mayoría de los sistemas operativos,

Page 21: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Práctica 3: Uso de herramientas y análisis de paquetes

P3-21

aunque las opciones varían según las implementacion. La información sobre tráfico se ofrece de forma conjunta, sin detallarla por interfaz. De todas las posibilidades que ofrece el comando netstat nosotros vamos a explorar las tres siguientes:

Ver las estadísticas de tráfico del equipo, detalladas por protocolo (opción –s). Ver las conexiones TCP establecidas (opción –t) Ver los puertos abiertos en TCP y UDP (opciones –tl y –ul)

Para ver el tráfico cursado, has de utilizar la opción –s del comando netstat. Esto te ofrece una estadística resumida de los paquetes cursados por el equipo para cada uno de los protocolos principales (IP, ICMP, TCP, y UDP) pero sin detallar las interfaces. Ejecuta netstat –s y responde a la siguiente pregunta:

PREGUNTA 21 Valores de los contadores indicados

IP: Total packets received: ________

ICMP: ICMP messages received: ____________

TCP: Segments received: ___________

UDP: packets received: ___________

Ejecuta ahora el comando ping –c 10 147.156.222.65 seguido de netstat –s y anota los nuevos valores de los contadores anteriores:

PREGUNTA 22 Valores de los contadores indicados después del ping

IP: Total packets received: ________

ICMP: ICMP messages received: ____________

TCP: Segments received: ___________

UDP: packets received: ___________

Ejecuta ahora el comando host glup.uv.es y anota los nuevos valores de los contadores:

Page 22: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Redes

P3-22

PREGUNTA 23 Valores de los contadores indicados después del host

IP: Total packets received: ________

ICMP: ICMP messages received: ____________

TCP: Segments received: ___________

UDP: packets received: ___________

Explica los resultados obtenidos. Para ver con netstat las conexiones TCP activas utilizamos la opción –t. Antes de hacer nada ejecuta netstat -nt y observa la respuesta (utilizamos además la opción –n para omitir de momento la resolución de nombres en el resultado del comando). Debería aparecer una lista de conexiones vacía, aunque es posible que tu equipo tenga ya alguna por razones de mantenimiento o actualización automática del software. Establece ahora una conexión FTP a glup.uv.es mediante el comando ftp glup.uv.es. Cuando te pida el usuario (Name) escribe anonymous y como contraseña pon tu dirección de e-mail de la universidad ([email protected]). Con la conexión FTP establecida ejecuta de nuevo netstat -nt y analiza la información obtenida. Verás algo parecido a lo siguiente: [root@147 ~]# netstat -nt Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State Tcp 0 0 147.156.80.114:59577 147.156.222.65:21 ESTABLISHED [root@147 ~]# En la columna ‘Local Address’ aparece tu dirección IP seguida del número de puerto que el sistema le ha asignado a tu cliente ftp cuando se ha conectado al servidor (59577 en el ejemplo). La combinación de dirección IP y número de puerto es lo que se conoce como el socket o punto de conexión del nivel de transporte; el socket desempeña en el nivel de transporte una función equivalente a la dirección IP en el nivel de red. Averigua el socket utilizado por tu cliente y responde a la siguiente pregunta:

PREGUNTA 24 ¿Qué socket utiliza el cliente en la conexión FTP?

Dirección IP: ________

Número de puerto: ________

La columna ‘Foreign Address’ indica el socket remoto, formado en este caso por la

Page 23: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Práctica 3: Uso de herramientas y análisis de paquetes

P3-23

dirección IP del servidor Glup (147.156.222.65) y el número de puerto utilizado por el servidor, que de forma estándar es el 21 para el protocolo FTP. Cada protocolo o servicio estándar tiene reservado un número de puerto de los que se conocen como puertos ‘bien conocidos’. En el apéndice B tienes una lista de los números utilizados por algunos de los servicios más comunes. Salvo algunas excepciones, normalmente los servidores utilizan puertos por debajo del 1024, mientras que los puertos elegidos por los clientes (conocidos como puertos ‘efímeros’) son siempre valores entre 1024 y 65535 (el número de puerto es un entero de 16 bits). El rango concreto de números de puerto utilizados por los clientes depende de cada sistema operativo, pero siempre se emplean valores por encima del 1023 Repite ahora el comando omitiendo la opción –n, es decir netstat -t. De este modo obtienes la misma información, pero con la resolución de nombres activada. Verás que ahora aparecen los nombres de las máquinas en lugar de las direcciones IP, pero además en la ‘Foreign Address’ aparece ‘ftp’ en vez del puerto 21, ya que el sistema sabe que ese número de puerto corresponde al servicio ftp y por tanto muestra el acrónimo en lugar del valor numérico. Lo mismo ocurre con otros números de puerto ‘bien conocidos’. Cierra ahora la sesión ftp con el comando exit y repite netstat -t. Verás que la conexión pasa ahora al estado TIME_WAIT, donde permanecerá durante uno o dos minutos hasta desaparecer por completo. Abre ahora el navegador web y efectúa una conexión al servidor web de la universidad (www.uv.es). Ejecuta netstat -t, analiza la respuesta obtenida y responde a la siguiente pregunta:

PREGUNTA 25 ¿Qué número de puerto utilizan los servidores Web?

Número de puerto: ________

Además de poder ver las conexiones establecidas, el comando netstat te permite ver que puertos tiene tu ordenador a la escucha o en modo LISTEN, es decir puertos preparados para recibir conexiones de otros ordenadores. Para esto debes utilizar las opciones ‘–tl’ (o ‘–ntl’ para omitir la resolución de nombres). Los puertos abiertos en todas las interfaces tendrán * como dirección IP en la columna ‘Local Address’. Responde ahora, usando el netstat, a la siguiente pregunta:

PREGUNTA 26 ¿Qué puertos TCP tiene abiertos tu ordenador en todas sus interfaces?

Número de puerto (ej.: 21) Servicio (ej.: ftp)

Además de puertos TCP un ordenador puede tener abiertos puertos UDP (no tienen por qué ser los mismos). El comando netstat también te permite explorarlos mediante la opción ‘–ul’. De nuevo, los puertos abiertos en todas las interfaces tendrán * como dirección IP en la columna ‘Local Address’. Responde ahora a la siguiente pregunta:

Page 24: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Redes

P3-24

PREGUNTA 27

¿Qué puertos UDP tiene abiertos tu ordenador en todas sus interfaces?

Número de puerto Servicio

11.- nmap La herramienta nmap (Network Mapper) es un escáner de seguridad que permite obtener información sobre un host o un conjunto de host. Hay implementaciones para todos los sistemas operativos habituales, con versiones en línea de comandos o por interfaz gráfica. Tiene gran cantidad de opciones y posibilidades, como puede verse observando la información que devuelve el comando man nmap. También puedes consultar toda la documentación y ejemplos de utilización en http://nmap.org . Nosotros vamos a explorar solo una parte mínima de esas posibilidades. Empieza ejecutando el comando nmap glup.uv.es y responde a la siguiente pregunta:

PREGUNTA 28 ¿Qué puertos TCP tiene abiertos glup?

Número de puerto Servicio

Se trata de la misma información que nos daba el comando netstat –tl, solo que ahora la estamos obteniendo de otro host, lo cual convierte a este comando en una herramienta muy interesante. Por defecto nmap no escanea todos los puertos TCP, sino solo los mil más utilizados en servidores (en dicho rango hay puertos por debajo y por encima de 1024). Con la opción –p podemos especificar un rango o una lista de rangos a escanear, por ejemplo si teclearas nmap –p0-65535 glup.uv.es escanearías todos los puertos TCP en glup; sin embargo la ejecución de este comando tardaría varios minutos y sometería a glup a una carga importante, ya que para descubrir los puertos abiertos nmap envía paquetes de sonda intentando establecer conexiones con todos ellos. Para comprobarlo, haz ahora la siguiente prueba: pon en marcha una captura de Wireshark configurando un filtro de forma que solo captures el tráfico entre tu ordenador y glup. Una vez tengas la captura en marcha ejecuta el comando nmap –p20-30 glup.uv.es, que escanea el rango de puertos 20-30. Observa la captura obtenida y analiza la secuencia de paquetes enviados por tu ordenador. Verás los intentos de conexión a cada puerto, que ocurren en orden aleatorio para evitar ser considerado como un ataque sistemático por parte de los cortafuegos. Además de escanear puertos TCP nmap puede escanear puertos UDP. Para esto hay que utilizar la opción –sU, teclea nmap –sU lab6inf22.uv.es (el ordenador del profesor) y responde a la siguiente pregunta:

Page 25: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Práctica 3: Uso de herramientas y análisis de paquetes

P3-25

PREGUNTA 29 ¿Qué puertos UDP tiene abiertos lab6inf22?

Número de puerto Servicio

Como antes el escaneo explora por defecto los mil puertos más habituales en UDP (la lista no es la misma que para TCP), pero también es posible especificar un rango cualquiera con la opción –p, por ejemplo nmap –sU –p10-100 lab6inf22.uv.es escanearía los puertos UDP 10 a 100, ambos inclusive. nmap admite especificar como argumento una lista de hosts, por ejemplo nmap glup.uv.es lab6inf22.uv.es hará el escaneo de los dos hosts especificados. También es posible, por supuesto, especificar las direcciones IP, evitando así la consulta al DNS. En este caso se puede especificar no solo una dirección, sino una lista, un rango, etc., de múltiples maneras. Ejecuta por ejemplo el comando nmap –p20-30 147.156.222.60-70 y observa el resultado. Obviamente nmap solo reporta información de los hosts que verdaderamente existen (o que consigue descubrir) dentro del rango especificado. Otros ejemplos de especificación de rangos con nmap son los siguientes: Comando Hosts escaneados 147.156.80.0/26 De 147.156.80.0 a 147.156.80.63 147.156.80.15/26 De 147.156.80.0 a 147.156.80.63 147.156.83.16-38 De 147.156.83.16 a 147.156.83.38 147.156.85-87.20-30 De 147.156.85.20 a 147.156.85.30

De 147.156.86.20 a 147.156.86.30 De 147.156.87.20 a 147.156.87.30

147.156.72.23-34 130.206.12.23-34 De 147.156.72.23 a 147.156.72.34 De 130.206.12.23 a 130.206.12.34

Como puedes ver en el segundo ejemplo de la tabla, cuando se utiliza la notación dirección/máscara la dirección especificada no necesariamente ha de ser la de la red correspondiente, sino que puede ser la de cualquier host en la red. Tampoco es preciso que el rango especificado corresponda con una red IP real, es decir en el ejemplo anterior la red 147.56.80.0 podría ser /27, /25 o cualquier otra cosa. nmap permite escanear fácilmente grandes rangos de direcciones IP y de puertos. En estos casos el número de intentos de conexión generados puede ser considerable, por lo que la ejecución del comando puede tardar bastante y someter a la red y a los hosts a una carga importante. Además, muchos cortafuegos están programados para detectar los escaneos masivos y alertar de su uso, porque se consideran una mala práctica y un riesgo en la seguridad de los sistemas. Por estas razones nmap debe usarse con mucha prudencia en estas situaciones, sobre todo si se está explorando una red ajena.

Page 26: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Redes

P3-26

Apéndice A: Filtros en Wireshark. En wireshark es posible construir filtros de captura con el fin de reducir de entrada el volumen de paquetes a analizar. Como es lógico, si no se configura ningún filtro se capturan todos los paquetes. Aunque no se trata propiamente de un filtro, la desactivación del modo promiscuo en la interfaz ya ejerce un primer nivel de filtrado al suprimir todos los paquetes dirigidos a direcciones unicast que no sean la de la interfaz de captura. Debemos tener en cuenta que, independientemente de que esté o no activado el modo promiscuo todo el tráfico broadcast es capturado, y el tráfico multicast puede o no serlo, dependiendo de las características y la situación concreta de la interfaz. Los filtros se construyen mediante expresiones formadas por una o más primitivas. Las primitivas pueden combinarse mediante la utilización de paréntesis y los operadores and, or y not. La siguiente tabla muestra un listado de las primitivas más utilizadas: [src|dst] host <dir_IP o nombre>

Filtra por la dirección IP (v4 ó v6) o por el nombre del host. Opcionalmente puede ir precedida por la palabra clave src|dst para indicar que solo se desea cuando la dirección es origen o destino. Si ninguna de ambas aparece se seleccionan los paquetes donde la dirección aparece como origen o como destino

[src|dst] net <red> mask <mascara> [src|dst] net <red> len <bits> [src|dst] net <red/bits>

Filtra por la dirección de la red IP (v4 ó v6), especificada con su máscara, que puede indicarse de las tres maneras indicadas. Opcionalmente la dirección puede ir precedida por la palabra clave src|dst para indicar que solo se desea en la dirección de origen o destino. Si ninguna de ambas aparece se seleccionan los paquetes donde la dirección aparece como origen o destino

ether [src|dst] host <dir_MAC> Filtra por la dirección MAC (formato XX:XX:XX:XX:XX:XX). Opcionalmente puede incluir la palabra clave src|dst para indicar que solo se desea en la dirección de origen o destino. Si ninguna de ambas aparece se seleccionan los paquetes donde la dirección aparece como origen o como destino

ether|ip broadcast|multicast Filtra los paquetes cuya dirección MAC (ether) o IP (ip) sea broadcast o multicast, (cualquiera que esta sea). Obsérvese que multicast incluye broadcast.

[tcp|udp] [src|dst] port <puerto> [tcp|udp] [src|dst] portrange <puerto1-puerto2>

Filtra por el número de puerto TCP o UDP, o por un rango de puertos. Opcionalmente puede ir precedida por la palabra clave src|dst y tcp|udp para indicar que solo se desea los paquetes con ese puerto como origen o destino y con protocolo TCP o UDP, respectivamente. Si no se especifica src|dst se seleccionan los paquetes donde ese puerto aparece como origen o como destino. Si no se especifica tcp|udp se seleccionan los paquetes de ambos protocolos.

less|greater <longitud> Filtra los paquetes cuya longitud es menor que, o mayor que la longitud especificada.

Page 27: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Práctica 3: Uso de herramientas y análisis de paquetes

P3-27

ip|ether proto <protocolo> Filtra los paquetes cuyo campo protocolo en la cabecera IP (ip) o el Ethertype en la cabecera Ethernet coincida con el valor indicado. El valor se puede especificar en decimal o en hexadecimal

ip|arp|tcp|udp Filtra los paquetes que pertenecen al protocolo especificado.

Veamos algunos ejemplos:

Filtro Explicación src glup.uv.es Paquetes cuyo origen es el ordenador glup.uv.es. host glup.uv.es Paquetes cuyo origen o destino es el ordenador glup.uv.es. dst net 147.156.0.0/16 Paquetes destino es la red 147.156.0.0/16 net 147.156.0.0/16 Paquetes cuyo origen o destino es la red 147.156.0.0/16 port 20 Paquetes cuyo origen o destino es el puerto 20. ether src 00:21:6A:9D:30:B3 Paquetes ethernet cuyo origen es la dirección MAC

00:21:6A:9D:30:B3. arp net 147.156.0.0/16 Paquetes de protocolo ARP con origen o destino en la red

147.156.0.0/16 tcp port 21 Paquetes cuyo protocolo es TCP y origen o destino en el puerto

21. host glup.uv.es and not port ftp

Paquetes con origen o destino el ordenador glup y que no lleven como origen o destino el puerto ftp

Page 28: Objetivo y descripción general. - Departament d'Informàticainformatica.uv.es/iiguia/R/apuntes/laboratorio/Practica-3.pdf · 10 Mb/s situado en el laboratorio, ... rosetas negras

Redes

P3-28

Apéndice B: Números de puertos asignados a algunos de los protocolos de aplicación más comunes. La lista completa de puertos se puede consultar en http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers Puerto Protocolo (descripción) 13 Daytime (Fecha y hora) 21 FTP (Transferencia de ficheros) 22 SSH (Secure Shell) 23 Telnet (Terminal Remoto) 25 SMTP (Correo Electrónico) 53 DNS (Resolución de Nombres) 67 BOOTP/DHCP (Parte Servidor) 68 BOOTP/DHCP (Parte cliente) 69 TFTP (Trivial File Transfer Protocol) 80 HTTP (Web) 110 POP3 (Post Office Protocol v3) 123 NTP (Network Time Protocol) 137 NetBIOS Name Service 138 NetBIOS Datagram Service 139 NetBIOS Session Service 143 IMAP (Internet Message Access Protocol) 161 SNMP (Simple Network Management Protocol) 220 IMAP3 (Internet Message Access Protocol v3) 443 HTTPS (HTTP sobre SSL/TLS) 993 IMAPS (IMAP sobre SSL) 995 POP3S (POP3 sobre TLS/SSL) 1503 Windows Live Messenger 1521 Oracle Default Listener 1720 Señalización de llamada H.323 1812 Protocolo de autenticación RADIUS 3389 Escritorio Remoto de Microsoft 5060 SIP (Session Initiation Protocol)