lunes, 17 de mayo de 2010

Como usar el comando tcpdump en Linux

tcpdump es un herramienta en línea de comandos cuya utilidad principal es analizar el tráfico que circula por la red.

Permite al usuario capturar y mostrar a tiempo real los paquetes transmitidos y recibidos en la red a la cual el ordenador está conectado. Está escrito por Van Jacobson, Craig Leres, y Steven McCanne que trabajaban en ese momento en el Grupo de Investigación de Red del Laboratorio Lawrence Berkeley. Más tarde el programa fue ampliado por Andrew Tridgell.

tcpdump funciona en la mayoría de los sistemas operativos UNIX: Linux, Solaris, BSD, Mac OS X, HP-UX y AIX entre otros.

En esos sistemas, tcpdump hace uso de la biblioteca libpcap para capturar los paquetes que circulan por la red.

Existe una adaptación de tcpdump para los sistemas Windows que se llama WinDump y que hace uso de la biblioteca Winpcap.

En UNIX y otros sistemas operativos, es necesario tener los privilegios del root para utilizar tcpdump.

El usuario puede aplicar varios filtros para que sea más depurada la salida.

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.

Parámetros de tcpdump:

tcpdump [-aAdDeflLnNOpqRStuUvxX] [-c count] [ -C file_size ]
[ -E algo:secret ] [ -F file ] [ -i interface ] [ -M secret ]
[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ] [ -y datalinktype ] [ -Z user ]
[ expression ]

-A: Imprime cada paquete en código ASCII
-D: Imprime la lista de interfaces disponibles
-n: No convierte las direcciones de salida
-p: No utliza el interfaz especificado en modo promiscuo
-t: No imprime la hora de captura de cada trama
-x: Imprime cada paquete en hexadecimal
-X: Imprime cada paquete en hexadecimal y código ASCII
-c count: Cierra el programa tras recibir ‘count’ paquetes
-C file_size
-E algo:secret
-F file
-i interface: Escucha en el interfaz especificado
-M secret
-r file
-s snaplen
-T type
-w file: Guarda la salida en el archivo ‘file’
-W filecount
-y datalinktype
-Z user

Ejemplos de tcpdump

Capturar tráfico cuya dirección IP de origen sea 192.168.3.1
tcpdump src host 192.168.3.1

Capturar tráfico cuya dirección origen o destino sea 192.168.3.2
tcpdump host 192.168.3.2

Capturar tráfico con destino a la dirección MAC 50:43:A5:AE:69:55
tcpdump ether dst 50:43:A5:AE:69:55

Capturar tráfico con red destino 192.168.3.0
tcpdump dst net 192.168.3.0

Capturar tráfico con red origen 192.168.3.0/28
tcpdump src net 192.168.3.0 mask 255.255.255.240
tcpdump src net 192.168.3.0/28

Capturar tráfico con destino el puerto 23
tcpdump dst port 23

Capturar tráfico con origen o destino el puerto 110
tcpdump port 110

Capturar los paquetes de tipo ICMP
tcpdump ip proto \icmp

Capturar los paquetes de tipo UDP
tcpdump ip proto \udp
tcpdump udp

Capturar el tráfico Web
tcpdump tcp and port 80

Capturar las peticiones de DNS
tcpdump udp and dst port 53

Capturar el tráfico al puerto telnet o SSH
tcpdump tcp and (port 22 or port 23)

Capturar todo el tráfico excepto el web
tcpdump tcp and not port 80


Digg Technorati Delicious StumbleUpon Reddit BlinkList Furl Mixx Facebook Google Bookmark Yahoo
ma.gnolia squidoo newsvine live netscape tailrank mister-wong blogmarks slashdot spurl

No hay comentarios: