El programa tcpdump, escrito por Van Jacobson, Craig Leres, y Steven McCanne, y ampliado por Andrew Tridgell, te permite monitorear tráfico de red a tiempo real. Están disponibles una variedad de formatos de salida y puedes filtrar la salida para buscar sólo un tipo particular de tráfico. El programa tcpdump te permite examinar todas las conversaciones entre el cliente y el servidor, incluyendo mensajes de broadcast SMB y NMB. Mientras que sus capacidades ee detección de errores están principalmente a nivel de capa de red (OSI), todavía puedes usar su salida para obtener una idea general que qué están intentando hacer el servidor y el cliente.
A continuación, un ejemplo de registro tcpdump. En este ejemplo, el cliente ha solicitado un listado de directorios, y el servidor ha respondido apropiadamente, dando los nombres de directorios homes, public, IPC$, y temp (hemos añadido unas cuantas aclaraciones a la derecha de las líneas):
$ tcpdump -v -s 255 -i eth0 port not telnet SMB PACKET: SMBtrans (REQUEST) Paquete de Respuesta SMB Command = 0x25 La petición fue ls o dir. [000] 01 00 00 10 .... >>> Paquete NBT Outer frame of SMB packet NBT Session Packet Flags=0x0 Length=226 [lines skipped] SMB PACKET: SMBtrans (REPLY) Comienzo de una respuesta a una petición SMB Command = 0x25 El comando fue un ls o un dir Error class = 0x0 Error code = 0 No hay errores Flags1 = 0x80 Flags2 = 0x1 Tree ID = 105 Proc ID = 6075 UID = 100 MID = 30337 Word Count = 10 TotParamCnt=8 TotDataCnt=163 Res1=0 ParamCnt=8 ParamOff=55 Res2=0 DataCnt=163 DataOff=63 Res3=0 Lsetup=0 Param Data: (8 bytes) [000] 00 00 00 00 05 00 05 00 ........ Data Data: (135 bytes) Directorio Actual contiene: [000] 68 6F 6D 65 73 00 00 00 00 00 00 00 00 00 00 00 homes... ........ [010] 64 00 00 00 70 75 62 6C 69 63 00 00 00 00 00 00 d...publ ic...... [020] 00 00 00 00 75 00 00 00 74 65 6D 70 00 00 00 00 ....u... temp.... [030] 00 00 00 00 00 00 00 00 76 00 00 00 49 50 43 24 ........ v...IPC$ [040] 00 00 00 00 00 00 00 00 00 00 03 00 77 00 00 00 ........ ....w... [050] 64 6F 6E 68 61 6D 00 00 00 00 00 00 00 00 00 00 donham.. ........ [060] 92 00 00 00 48 6F 6D 65 20 44 69 72 65 63 74 6F ....Home Directo [070] 72 69 65 73 00 00 00 49 50 43 20 53 65 72 76 69 ries...I PC Servi [080] 63 65 20 28 53 61 6D ce (Sam
Esto es parte de la misma sesión de depuración que con el comando trace; el listado de un directorio. Las opciones que usamos han sido -v (verboso), -i eth0 para decirle a tcpdump el interfaz por el que escuchar (un puerto Ethernet), y -s 255 para decirle que almacene los primeros 255 bytes de cada paquete, en vez del valor por defecto, que es los primeros 68. La opción port not telnet es usada para evitar pantallas de tráfico de telnet, ya que estamos logeados en el sistema remotamente. El programa tcpdump actualmente tiene opciones para filtrar sólo el tráfico que quieres vigilar. Si ya has usado comandos como snoop o etherdump, esto te resultará vagamente familiar.
Puedes descargar el tcpdump modificado desde el servidor FTP de Samba en ftp://samba.anu.edu.au/pub/samba/tcpdump-smb. Otras versiones no incluyen soporte para el protocolo SMB; si no ves salidas como la mostrada en el ejemplo, necesitarás usar la versión preparada para SMB.
TLDP-ES 03/11/2002