26/4/07

Wireshark - Filtros de Captura Parte II


He tenido una semana un tanto ocupada, pero acá estoy con toda la intención de completar el tema de los filtros de captura de Wireshark, algo que es de mucha utilidad, para capturar unicamente el tráfico que nos interesa para el análisis. Como recomendaba en la parte I, muchas veces lo mejor, es capturar todo el tráfico, pero en algunas ocasiones no es posible, o no es deseable y debemos aplicar algunos filtros, asi que sin más, iniciamos:

La sintaxis soportada por Wireshark, permite capturar algunos protocolos unicamente especificandolo, de esta manera podemos detectar la presencia de este protocolo o hacer un troubleshoting de algo específico, algunos de los más relevantes son:

arp - Para capturar tráfico del Address Resolution Protocol

icmp
- Para capturar tráfico icmp, por ejemplo captura de paquetes de ping

ip
- Captura todo el tráfico IP

ipx - Capturar tráfico ipx, este comando puede ser util para determinar si este protocolo esta corriendo en la red (algo que ya no es nada comun en estos días).

netbeui - Capturar tráfico de NetBIOS extendede user interface

stp - Capturar tráfico de spanning tree protocol (a veces es útil usar la forma no stp para evitar este tráfico que pudiera no ser relevante para el análisis)

tcp - Captura todo el tráfico tcp

udp - Captura todo el tráfico udp

Por supuesto, existen algunos otros protocolos, pero considero que estos son los más relevantes, también recordar, que se puede utilizar operaciones lógicas, por ejemplo arp or icmp para capturar tráfico de arp y de icmp.

Existen opciones de filtrado aun más avanzadas, por ejemplo, vimos que se puede capturar todo el tráfico icmp, que nos permitira capturar paquetes de ping, sin embargo, ping no es el único tipo de tráfico icmp, a continuación se muestran los campos de un paquete icmp como estan definidos en la rfc 792.


Destination Unreachable Message

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type Code Checksum
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
unused
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Internet Header + 64 bits of Original Data Datagram
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



Como puede verse en este diagrama, los primeros 8 bits (primer byte), tiene el campo Type,
que define el tipo de paquete icmp, para referencia sobre los diferentes valores de icmp ver la rfc 792 anteriormente mencioanda.

En el caso particular de ping el type 8 indica un echo request y el type 0 indica un echo replay, asi que si queremos capturar exclusivamente paquetes de ping, el comando sería:

icmp [0] == 8 or icmp [0] == 0

El valor dentro de [] indica que estamos evaluando el byte 0, y que su valor sea igual a 8 o igual a 0, de esta manera estaríamos capturando exactamente el tráfico de ping.

Este ejemplo nos abre nuevas posibilidades, ya que posible probar bytes especificos de otros protocolos aunque no de todos, de la lista de protocolos desplegada previamente ipx, netbeui y stp no lo soportan es decir no podemos usar el comando ipx[0], pero los demás si.

En el fitrlo de ejemplo anterior, se utilizo == para designar igual a, otros operadores que se pueden utilizar en la extracción de bits son:

> Mayor que
< Menor que
>= Mayor o igual
<= Menor o igual
!= No igual a


Esto también nos lleva a otro asunto muy importante a considerar, para el análisis efectivo de una red, es importante conocer los protocolos que estamos analizando, si estas interesado en conocer la estructura de paquetes de los protocolos más importantes, un buen recurso es Protocols.com, en este sitio se da una descripción básica de una gran cantidad de protoclos, así como línks hacia los RFCs, que son la autoridad final en cuanto a como esta definido cada protocolo.

En una tercera parte, me gustaría profundizar sobre la extracción de bits, por ejemplo en el protocolo tcp, de momento por acá nos quedamos, espero que este tutorial este siendo de utilidad en tu trabajo, si deseas dejar tu comentario no dudes en hacerlo, igualmente si tienes alguna duda, estoy a la orden, en la dirección lmunguia [arroba] soportederedes.com

23/4/07

The Internet Protocol Journal de Cisco


Nuevamente quiero dedicar este post, a un recurso que puede ser de utilidad para involucrados en administración y manejo de redes, y cuya red incluye una buena base de equipo Cisco instalada.

Se trata del Internet Protocolo Journal, una publicación cuatrimestral, que se enfoca en proporcionar tutoriales sobre diferentes tecnologías o protocols y también información operacional, detalles de como implementar determinada tecnología.

A pesar de ser publicada por Cisco, trata de mantener cierta imparcialidad, en cada publicación se incluyen 3 o 4 temas principales que son bastante prácticos.

La edición mas reciente correponde a Marzo 2007, e incluye la primera parte de un tutorial sobre AAA, otro sobre la infraestructura de DNS.

También estan disponibles números anteriores, por ejemplo en la edición de Marzo de 2006, hay un articulo muy interesante sobre direccionamiento IP, si te quedo alguna duda sobre el comando net 192.168.1.0/24 del tutorial de filtros de captura de wireshark, este es un buen recurso para comprenderlo mejor.

El internet protocol journal de Cisco, no es el único recurso disponible, de hecho hay tanta información en el sitio de Cisco, que no es posible describirla en un post, sin embargo, creo que es uno de esos recursos relativamente "escondidos" que vale la pena aprovechar.

Lamentablemente es una publicación en Ingles, si conoces recursos interesantes en españo, con información que puede ser relevante para la audiencia de este blog, puedes hacerlo dejando un comentario o enviando un correo a lmunguia at soportederedes.com

21/4/07

Packet school de Chris Sanders

Uno de los objetivos de este sitio, es proporcionar información de utilidad para administradores de redes, como otras veces he mencionado, Wireshark es una herramienta de mucha utilidad y en las próximas semanas seguire trabajando en un tutorial de esta herramienta.

Sin embargo, hay muchas otras fuentes de información, una de ellas es el excelente tutorial preparado por Chris Sanders, sobre wireshark, se llama packet school 101 y esta dividido en 5 partes, un inconveniente es que esta en ingles, pero para los que no tienen problemas con este idioma, es un tutorial de muy buena calidad con usos prácticos para esta herramienta.

Además de cubrir lo básico, el tutorial también discute algunos usos para seguridad, como en la parte 4, en cada parte se ofrecen capturas de paquetes para ilustrar lo enseñado.

Además del tutorial, este autor esta terminando un libro que será publicado pronto y que ya se puede reservar en Amazon.

Otro recurso interesante, es un podcast packet sniffing con ethereal/wireshark disponible con audio y diapositivas, asi que también vale la pena darle un vistazo.

Este tutorial no es nuevo, asi que al inicio se describe como ethereal, ya para el final de la parte 3, se hace el cambio por wireshark, sin embargo, el tutorial es igualmente válido, ya que wireshark es el mismo ethereal con diferente nombre.

Asi que sin más, si te interesa aprender más sobre wireshark, no dudes en darle un vistazo a este excelente tutorial

Vyatta Newsletter

Hace algunas semanas publique un post sobre Vyatta, un router open source, que comente en su momento, me parece muy interesante, de hecho ya tengo el software y espero la próxima semana relizar algunas pruebas con el mismo, y por supuesto, serán publicadas en este espacio.

Lo que motiva este post, es que ayer descubri que en la edición de abril de Vyatta Newsletter, aparece este sitio, soportederedes.com listado junto con otros cuatro links, como sitios interesantes que tienen link hacia Vyatta!

Debo aclarar que no tengo ningun tipo de relación con Vyatta, unicamente soy un usuario, que ve mucho potencial en este software y espero tener mucho contacto con el mismo en el futuro cercano, pero nada más, asi que para mi es un honor ser listado como un sitio interesante.

Este sitio apenas tiene unas pocas semanas de vida y realmente para mi es muy motivante haber atraido la atención de Vyatta.

Dicho esto, pues si te interesa estar más al día sobre lo que acontece con Vyatta, puedes suscribirte al newsletter y recibir una carta mensual, con noticias y como en el caso de la edición de abril links interesantes :-)

18/4/07

Wireshark 101 - Filtros de Captura parte I

En esta nueva entrega, de Wireshark 101, me gustaría discutir sobre los filtros de captura, un tema de utilidad a la hora de analizar una red.

En Wireshark, existen dos tipos de filtros, de captura que son los que vamos a discutir hoy, y de visualización, que discutiremos en otra oportunidad. Para filtros de captura Wireshark depende de los mecanismos de filtrado provistos en las librerías pcap, por lo que cualquier programa que utilice estas librerías utilizarán el mismo tipo de filtros, uno de los programas más famosos en utilizar estas librerías, es tcpdump, así que como referencia para profundizar sobre los filtros de captura, se puede visitar la página del manual de tcpdump o la documentación de la versión para Windows winpcap.

Para que nos puede servir el filtrado de paquetes?, normalmente lo más sencillo es capturar todo el tráfico y posteriormente utilizar filtros de visualización, para analizar mejor el tráfico, sin embargo, hay diferentes situaciones, en las que los filtros de captura pueden ser de mucha utilidad, por ejemplo si solo estamos interesados en la comunicación entre un cliente y un servidor, podemos eliminar tráfico innecesario y capturar solo lo necesario y relevante, también si estamos utilizando una PC que no es muy potente, en ambientes de altos volúmenes de tráfico, es posible que la pc no sea capaz de capturar todo el tráfico, en estos casos, lo ideal es establecer un filtro de captura para obtener unicamente el tráfico relevante para nuestro análisis. Otra opción es hacer una captura inicial de todo el tráfico y después de un análisis preliminar, utilizar filtros para capturar el tráfico que consideremos relevante para el problema espécifico que se este resolviendo.

Para escribir un filtro, antes de capturar data, desde el menu de wireshark escoger capture, luego options, y se abre la pantalla siguiente:



El filtro de captura, se escribe en el espacio indicado a la par del boton capture filter, si hay un error en la sintaxis del filtro, wireshark indicara un mensaje de error y no iniciara la captura. Dejando este espacio en blanco, se capturara todo el tráfico.

A continuación se detallan los principales comandos con los que se puede filtrar tráfico, lo que se debe escribir en la pantalla, es la parte resaltada con negrilla:


host 192.168.1.1 - Captura tráfico cuyo origen o destino sea la dirección 192.168.1.1

src 192.168.1.1 - Captura todos los paquetes que tienen a 192.168.1.1 como ip de origen.

dst 192.168.1.1 - Captura todos los paquetes que tienen a 192.168.1.1 como ip de destino.

host www.wireshark.org - Captura todos los paquetes que se origina o tienen como destino el host wireshark.org

net 192.168.1.1/24 - Captura todo el tráfico destinado a la subnet 192.168.1.1 con máscara 255.255.255.0, (en este caso, el número después de / depende de la máscara utilizada)

src net 192.168.1.1/24 - Captura todo el tráfico cuyo ip de origen esta en la
subnet 192.168.1.1/24

dst net 192.168.1.1/24 - Captura todo el tráfico cuyo ip de destino pertenece a la
subnet 192.168.1.1/24

También es posible (y en ocaciones bastante útil), realizar capturas basdas en la MAC address, esto con el comando ether, de esta manera el filtro sería

ether host ff:ff:ff:ff:ff:ff - Captura datos desde y hacia la dirección MAC ff:ff:ff:ff:ff:ff

Nuevamente, es posible utilizar ether src o ether dst para definir si unicamente se desea capturar tráfico de origen o de destino.

Si lo que se desea es capturar tráfico destinado a algun puerto especifico, esto puede ser realizado con el comando port, por ejemplo:

port 80 - Captura todo el tráfico udp o tcp cuyo origen o destino es el puerto 80 (http)

tcp port 80 - Captura unicamente el tráfico tcp cuyo origen o destino es el puerto 80

udp port 53 - Captura todo el tráfico udp cuyo origen o destino es el puerto 53 (Este filtro es útil para capturar unicamente el tráfico DNS).

También es posible utilizar src y dst ejm. udp src port 53.

Además es posible realizar las operaciones lógicas not and y or para construir filtros más especificos, a continuación algunos ejemplos

not udp port 53 - Para capturar todo el tráfico excepto UDP

host 192.168.1.1 and tcp port 80 - Capturar todo el tráfico cuyo origen o destino sea el host 192.168.1.1 y el puerto sea el 80 (http)

host 192.168.1.1 or host 192.168.1.2 - Capturar todo el tráfico cuyo origen y destino es el host 192.168.1.1 o el host 192.168.1.2

Estos son los comandos básicos para filtros de captura, aún hay más temas interesante para construir filtros efectivos, los cuales se discutirán en la parte 2, asi que si te interesa este tema, regresa pronto, espero tener lista la segunda parte, en pocos días.

11/4/07

Utilizando pathping

Las dos herramientas de batalla más utilizadas a la hora de resolver problemas de conectividad en redes ruteadas, probablemente son ping y tracert, dos utilerias disponibles desde la línea de comandos de Windows (Obviamente disponible desde la línea de comandos de cualquier sistema operativo, aunque con variantes en el nombre en el caso de tracert)


Pathping, es una otra herramienta, disponible desde la línea de comando de Windows, que proporciona información que es combinación de los resultados obtenidos con ping y tracert y algo más

Su uso es muy sencillo, unicamente es necesario abrir una línea de comandos y escribir pathping y la dirección remota, a continuación se muestra un ejemplo haciendo ping a una dirección en internet


En primer lugar el comando despliega cada host que hay en el camino hacia el destino, este es el resultado que obtendríamos con tracert, a continuación la pantalla ejecuta cierta cantidad de pings hacia cada destino y calcula las estadisticas, para esto hay que esperar un poco y este tiempo de espera depende de la cantidad de saltos que hay hacia el destino, en este ejemplo para 13 saltos el sistema tardo 325 segundos.

Los campos más importantes a notar, son los de las columnas pct perdido/enviado, que indican la cantidad de paquetes perdidos con relación a los enviados, para cada salto, se muestras dos estadisticas, una en la fila que indica la dirección, y en la otra mostrada como que muestra si hay perdida en el link, en este caso especifico no se muestra ningun problema (de hecho el host yahoo.com esta accesible sin problemas), en algunas columnas se muestra perdida del 100%, pero esto puede deberse a que estos hosts no permiten el comando ping por seguridad.

En el caso que en las columnas perdido/enviado, se muestras perdidas (por ejemplo un resultado 12/100) indicaria que se estan perdiendo paquetes, si el resultado esta en la fila junto con la dirección del host, el problema podría ser un router congestionado, si por el contrario aparece en la fila , podría haber congestión en el link entre uno y otro router.

Existen varias opciones en la linea de comandos, en este caso use -n para que no resolviera nombres, también se puede modificar la cantidad de saltos máximos (-h), el número de pings que se envian a cada host (-q), y algunas otras opciones que pueden verse escribiendo en la línea de comandos unicamente pathping.

Mas información sobre este comando se puede encontrar acá, también haciendo una busqueda de pathping en google, se obtiene una buena lista de resultados.

Así que ya podemos incoporporar esta herramienta a nuestro arsenal, si estas interesado en este y otros temas similares, no dudes en dejar tu comentario o enviar un mail a lmunguia at soportederedes.com

9/4/07

soportederedes.com

Despues de mucho pensarlo, finalmente soportederedes.com empieza a ser una realidad, en cierta manera es un proyecto que estoy tratando de iniciar desde mucho tiempo atrás (para ser más específicos, ahí por el año 2000).

Por diferentes razones, no había podido iniciarlo antes, aunque tuve algunos intentos fallidos, entre las causas esta la falta de tiempo, y la falta de una herramienta apropiada para mantener actualizado un sitio.

Lo que finalmente me convenció para iniciar este sitio, fue la facilidad de publicación de los blogs, así que un buen día a mediados del 2005, abri una cuenta en blogger, e hice un par de posts, sin embargo también fue uno de los intentos fallidos, un nuevo intento se dio en septiembre de 2006, aunque pasaron algunos meses sin actividad, sin embargo, estos posts iniciales aún están disponibles.

Pero fue hasta hace algunas semanas, cuando decidí aprovechar mejor el tiempo, debido al tráfico, estoy llegando a la oficina muy temprano y estoy aprovechando eso principalmente para actualizar este blog.

Aprovechando los días de descanso de semana santa, logre registrar el dominio soportederedes.com y asociarlo con mi cuenta de blogger, así que en realidad estoy utilizando el hosting de blogger, pero con mi propio dominio.

Es así como nace oficialmente soportederedes.com, mi deseo es aportar a la comunidad, definitivamente no lo se todo, de hecho tal vez se muy poco, pero tengo muchos deseos de aprender y de contribuir, con colegas y personas interesadas en el área de soporte de redes de computadoras.

Si tienes dudas, sugerencias, temas sobre los que te gustaría tratar, e incluso problemas específicos en tu red, gustosamente estoy dispuesto a ofrecer ayuda, de igual manera, si tienes alguna contribución a este sitio, con gusto la puedo publicar, o si tienes links que pueden ser de interés sobre temas relacionados, enviamelo para incluirlo en este blog, pueden enviarme un correo electrónico a lmunguia at soportederedes.com o utiliza el espacio de comentarios en cada post.

Entre los temas en los que mi aportación puede ser más significativa (por la experiencia laboral que he adquirido), esta la configuración de routers y switchs Cisco, herramientas para soporte y optimización de redes, protocolos, y cableado estructurado, en menor medida (pero espero que aumente progresivamente) la seguridad de redes.

Este proyecto apenas esta iniciando, así que espero contar con tus visitas frecuentes y sobre todo tu retroalimentación, para hacer de este sitio, un lugar que proporcione información relevante y de utilidad para personas que dan soporte a redes de todos los tamaños.