Pequeño tutorial de TCPDump - Filtros
27 de Octubre de 2005
Administración de redes, Administración de sistemas
Es lo mas importante que nos permite hacer el tcpdump, el uso de filtros. Un filtro es una expresión que va detrás de las opciones y que nos permite seleccionar los paquetes que estamos buscando. En ausencia de ésta, el tcpdump volcará todo el tráfico que vea el adaptador de red seleccionado.
La expresión que se usa para definir el filtro tiene una serie de primitivas y tres posibles modificadores a las mismas. Esta expresión sera verdadera o falsa y hara que se imprima o no el paquete de datos.
Los 3 modificadores posibles son:
Siempre podemos combinar expresiones con ayuda de paréntesis. Ojo con el tema de los paréntesis en los shell de Unix, porque son metacaracteres interpretan.
A continuació se dan las primitivas que pueden usarse. Lo que aperece entre [ y ] es opcional, y el | significa "o". El resto se tiene que poner si queremos poner el filtro con el comportamiento.
Ejemplos:
Ejemplos:
La expresión que se usa para definir el filtro tiene una serie de primitivas y tres posibles modificadores a las mismas. Esta expresión sera verdadera o falsa y hara que se imprima o no el paquete de datos.
Los 3 modificadores posibles son:
- tipo. Puede ser host, net o port. indican respectivamente una maquina, por ejemplo host 192.168.1.1 , una red completa, por ejemplo net 192.168, o un puerto concreto, por ejemplo port 22. Por defecto se asume el tipo host.
- dir. Especifica desde o hacia donde se va a mirar el flujo de datos. Tenemos src o dst y podemos combinarlos con or y and. Para el caso de de protocolos punto a punto podemos sustituir por inbound o outbound.Por ejemplo si queremos la dirección de destino 10.10.10.2 y la de origen 192.168.1.2, el filtro serma dst 10.10.10.2 and src 192.168.1.2 . Si se quiere que sea la dirección destino 192.168.1.1 o la dirección origen 192.168.1.2, serma dst 192.168.1.1 or src 192.168.1.2. Pueden seguirse combinando con la ayuda de paréntesis o las palabras or y and. Si no existe se supone src or dst. Por supuesto, esto se puede combinar con los modificadores de tipo anteriores.
- proto. En este caso es el protocolo que queremos capturar. puede ser tcp,udp,ip,ether (en este caso captura tramas a nivel de enlace,arp (peticiones arp), rarp (petciones reverse-arp),fddi(para redes FDDI, pero realmente el encapsulado es igual al ether). Hay otros niveles de enlace para redes Decnet y lat, pero dado su escaso uso, me remito a la pagina de manual del programa.
Siempre podemos combinar expresiones con ayuda de paréntesis. Ojo con el tema de los paréntesis en los shell de Unix, porque son metacaracteres interpretan.
A continuació se dan las primitivas que pueden usarse. Lo que aperece entre [ y ] es opcional, y el | significa "o". El resto se tiene que poner si queremos poner el filtro con el comportamiento.
- [dst|src] host maquina. Cierto si la dirección destino u origen del paquete es maquina lo cual puede ser una dirección IPv4 (o IPv6 si se ha compilado soporte para el mismo), o un nombre del DNS. Si queremos restringir a dirección destino podemos restringir con dst. Para dirección origen src.
- Capturar el trafico cuya IP origen sea 192.168.1.1
tcpdump src host 192.168.1.1
windump src host 192.168.1.1 - Capturar todo el tráfico cuya dirección origen o destino sea 192.168.1.2
tcpdump host 192.168.1.2
windump host 192.168.1.2
- Capturar el trafico cuya IP origen sea 192.168.1.1
- ether src|dst|host edir. Este filtro es cierto sm la dirección origen (src), la destino (dst) o el cualquiera de las dos(host) coincide con edir. Hacer notar que src,dst o host es obligatorio especificarlo.
- Capturar el tráfico con destino a la dirección ethernet 0:2:a5:ee:ec:10.
tcpdump ether dst 0:2:a5:ee:ec:10
windump ether dst 0:2:a5:ee:ec:10 - Capturar el tráfico que vaya a la máquina cuya dirección MAC es 0:2:a5:ee:ec:10.
tcpdump ether host 0:2:a5:ee:ec:10
windump ethert host 0:2:a5:ee:ec:10
- Capturar el tráfico con destino a la dirección ethernet 0:2:a5:ee:ec:10.
- gateway maquina. Cierto en caso de que el paquete use maquina como router. maquina debe estar definida en /etc/ethers y /etc/hosts. Realmente los paquetes que cumplen con esa condición son aquellos que tienen como dirección ethernet destino maquina, pero ni la dirección IP destino u origen es maquina.
- [dst|src] net red. Cierto en caso de que la red de la dirección destino, origen o ambas sea red. El parametro red puede ser una dirección numérica (por ejemplo 192.168.1.0) o bien un nombre que se resuelve a dirección, en los Unix, con ayuda del /etc/networks. Decir que también se admite el clásico direccionamiento CIDR. Podemos especificar una mascara poniendo red como net red mad mascara o bien usar /, net red/bits. Hacer notar que el uso de net ... mask no es compatible con direcciones IPv6. Si queremos hacer referencia a la red destino usamos dst como prefijo. Para la red origen usamos dst.
- Capturar todo el tráfico cuya red destino sea 192.168.1.0.
tcpdump dst net 192.168.1.0
windump dst net 192.168.1.0 - Capturar todo el tráfico cuya red origen sea 192.168.1.0/28
tcpdump src net 192.168.1.0 mask 255.255.255.240
tcpdump src net 192.168.1.0/28
- Capturar todo el tráfico con origen o destino en la 10.0.0.0/24
tcpdump net 10.0.0.0/24
tcpdump net 10.0.0.0 mask 255.255.255.0
- Capturar todo el tráfico cuya red destino sea 192.168.1.0.
- [dst|src] port puerto. Cierto en caso de que el puerto (ya sea udp o tcp) coincida con puerto. Si no se especifica dst o src, será cierto tanto puerto origen como destino. Si queremos restringir a destino usamos dst y a origen usamos src. El puerto es un valor numérico entre 0-65535 o bien un nombre que en Unix se resuelve a través del /etc/services.
- Capturar todo el tráfico con destino al puerto 23
tcpdump dst port 23 - Capturar todo el tráfico con destino o origen puerto 80
tcpdump port 23
- Capturar todo el tráfico con destino al puerto 23
- less longitud. Cierto en caso de que el tamaño del paquete sea menor o igual longitud.
- greater longitud. Cierto en caso de que el tamaño del paquete sea mayor o igual que logitud.
- ip proto protocolo. En este caso escucha el protocolo que se le indique. El protocolo puede ser icmp, icmp6, igmp (internet group managent protocol), igrp (interior gateway routing protocol), pim (protocol independent multicast), ah (IP Authentication header), esp (encapsulating security payload), udp o tcp. En caso de usar icmp, udp o tcp hay que escapar el protocolo, poniendo un \, es decir, ip proto \icmp. Ojo con ese caracter que también hay que escaparlo en los shells de Unix.
Ejemplos:
- Capturar el todo los paquetes icmp
tcpdump ip proto \\ip
(en Unix hay que escapar el \). - Capturar todo el tráfico udp
tcpdump ip proto \\udp
tcpdump udp
(el alias es más cómodo)
- Capturar el todo los paquetes icmp
- ip6 proto protocolo. Cierto si es un paquete de IPv6 con el protocolo protocolo.
- ip6 protochain protocolo. Es un número que en los Unix puede leerse en /etc/protocols. En este caso lo que se busca es que dentro de los diferentes cabeceras que puede tener un paquete IPv6 una de ellas sea el protocolo especificado.
- ip protochain protocolo. Igual que el caso anterior pero para IPv4.
- ether broadcast. Cierto si la trama capturada va dirigida hacia la dirección de difusión ethernet. La palabra ether es opcional.
- ip broadcast. Cierto si el paquete va dirigido a la dirección de difusión de IP. Esta dirección se comprueba si es todo 0 o 1, o bien se comprueba la dirección local de la subred.
- ether multicast. Cierto si la trama va dirigida a una dirección multicast ethernet.
- ip multicast. Cierto si el paquete va dirigido a una dirección multicast IP.
- ip6 multicast. Cierto si el paquete va dirigido a una dirección multicast IPv6.
- ether proto protocolo. Cierto si el protocolo que contiene la trama es de tipo protocolo Los protocolos son ip, ip6, arp, rarp, atalk, aarp, decnet, sca, lat, mopdl moprc e iso. Además estos nombres son identificadores que deben de ser escapados con \.
Ejemplos:
- Capturar todo tráfico arp
tcpdump -n ether proto \\arp
tcpdump -n arp
(el alias es más cómodo) - Capturar todo tráfico ip
tcpdump -n ether proto \\ip
tcpdump -n ipi
- Capturar todo tráfico arp
- vlan [vlanid]. Cierto si la trama capturada es un paquete 802.1Q VLAN. Hacer notar de que esto cambia el resto de la interpretación del paquete capturado, en especial los desplazamientos a partir de los cuales empiezan a decodificar los protocolos, ya que se asume que estamos capturando paquetes que viajan en tramas VLAN. Por último si esta presente el parametro vlanid, sólo se mostraran aquellos paquetes que vayan a la VLAN vlanid.
Valora este capítulo:
Autor y licencia de 'Pequeño tutorial de TCPDump - Filtros'
|
Opiniona sobre 'Pequeño tutorial de TCPDump - Filtros' (0)
Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.
Opina sobre este tutorial |
Wikis relacionados con 'Pequeño tutorial de TCPDump - Filtros'
Los sitios web han de convertirse en filtros de información, es decir, deben ofrecer una...
Más »
Amplio tutorial de Java para empezar a trabajar y ampliar conocimientos de este lenguaje.
Este tutorial presenta los conceptos básicos de líneas de transmisión (Transmission lines), así como una...
Más »
PHP se ha convertido en el lenguaje de facto de Internet y no es difícil...
Más »
Si tuviera que buscar un adjetivo para calificar a Sendmail, pensaría en "excesivo". Excesivo puesto...
Más »


