GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar Wireshark Tshark para especificar límites de captura de archivo, tiempo y búfer

Este tutorial explica algunos escenarios prácticos y útiles al usar el comando tshark.

Comprenderá cómo guardar capturas automáticamente en varios archivos, guardar capturas automáticamente en función de los límites de tiempo, especificar su propio tamaño de búfer para la captura, extraer campos específicos de la captura y mostrar estadísticas para un protocolo específico de una captura.

1. Guardado automático de capturas en varios archivos

Por ejemplo, en su servidor de producción, desea capturar datos de tráfico durante un período de tiempo prolongado. Te gusta usar estas capturas más tarde para analizar los datos.

En esa situación, en lugar de almacenar todas las salidas en un solo archivo, es posible que desee dividir automáticamente las capturas en varios archivos según el tamaño que especifique.

El siguiente ejemplo capturará el tráfico de red en 20 archivos, cada uno con un tamaño de 100 KB, y luego la captura se detendrá automáticamente.

# tshark -b filesize:100 -a files:20 -w temp.pcap 
Running as user "root" and group "root". This could be dangerous. 
Capturing on eth0 
28 

# ls -lrt 
total 12 
-rw------- 1 root root 1088 Apr 10 16:02 capture_00001_20140410160213.pcap 
-rw------- 1 root root 1088 Apr 10 16:02 capture_00002_20140410160215.pcap

En lo anterior:

  • -b es la opción del búfer circular
  • filesize:100 indica que el tamaño máximo del archivo de captura de salida es de 100 KB
  • files:20 indica que el número total de archivos de salida que deben crearse es 20
  • -a indica parada automática

2. Capturas guardadas automáticamente según el límite de tiempo

El siguiente ejemplo capturará el tráfico de red en varios archivos. Sin embargo, cambiará a nuevos archivos cuando el tamaño del archivo alcance los 10240 KB o cuando haya transcurrido 1 segundo. Puede utilizar las condiciones de parada automática en consecuencia.

# tshark -b filesize:10240 -b duration:1 -w temp.pcap 
Running as user "root" and group "root". This could be dangerous. 
Capturing on eth0 
34 

# ls -lrt 
-rw------- 1 root root 1863 Apr 10 16:13 temp_00001_20140410161312.pcap 
-rw------- 1 root root 1357 Apr 10 16:13 temp_00002_20140410161313.pcap 
-rw------- 1 root root 1476 Apr 10 16:13 temp_00003_20140410161314.pcap 
-rw------- 1 root root 1216 Apr 10 16:13 temp_00004_20140410161315.pcap

3. Especifique el tamaño del búfer de captura

Este escenario es útil cuando enfrenta caídas de paquetes durante la captura.

En esas situaciones, puede especificar un tamaño de búfer de captura en MB mediante la opción -B. El tamaño de captura predeterminado es 1 MB.

El controlador de captura lo utiliza para almacenar en búfer los datos del paquete hasta que esos datos se puedan escribir en el disco. Si encuentra caídas de paquetes durante la captura, intente aumentar este tamaño.

# tshark -B 2 
2.	Running as user "root" and group "root". This could be dangerous. 
3.	Capturing on eth0 
4.	  0.000000 LannerEl_24:eb:40 -> Broadcast    ARP 60 Who has 10.30.59.101?  Tell 10.30.32.1 
5.	  0.064507 LannerEl_24:eb:40 -> Broadcast    ARP 60 Who has 10.70.11.143?  Tell 10.70.0.1 
6.	  0.067515 LannerEl_24:eb:40 -> Broadcast    ARP 60 Who has 10.70.11.143?  Tell 10.70.0.1 
7.	  0.089554 LannerEl_24:eb:40 -> Broadcast    ARP 60 Who has 10.30.50.212?  Tell 10.30.32.1 
8.	  0.183726 LannerEl_24:eb:40 -> Broadcast    ARP 60 Who has 10.30.36.86?  Tell 
10.30.32.1

4. Captura usando la opción "decodificar como"

Este escenario es útil cuando necesita especificar cómo se debe diseccionar un tipo de capa.

Esto es lo mismo que la opción "decodificar como" de Wireshark, pero a veces el valor del selector especificado es diferente del valor presente en el paquete. Por ejemplo, suponga que un paquete de diámetro tiene un número de puerto de origen y de destino diferente de 3868 (número de puerto predeterminado), entonces necesita especificar este valor a tshark para que pueda diseccionarlo correctamente.

# tshark -r capture.pcap -d sctp.port==3869,diameter   
82 212.059173 192.168.105.20 -> 192.168.105.30 DIAMETER 262 cmd=Capabilities-ExchangeRequest(257) flags=R--- appl=Diameter Common Messages(0) h2h=204a16 e2e=67700000 
 83 212.059330 192.168.105.30 -> 192.168.105.20 SCTP 62 SACK 
 84 212.078804 192.168.105.30 -> 192.168.105.20 DIAMETER 294 cmd=Capabilities-ExchangeAnswer(257) flags=---- appl=Diameter Common Messages(0) h2h=204a16 e2e=67700000 
 85 212.080569 192.168.105.30 -> 192.168.105.20 DIAMETER 146 cmd=Device-WatchdogRequest(280) flags=R--- appl=Diameter Common Messages(0) h2h=5542a29 e2e=63d00002 
 86 212.084960 192.168.105.20 -> 192.168.105.30 SCTP 62 SACK 
 87 212.084998 192.168.105.20 -> 192.168.105.30 DIAMETER 178 SACK cmd=Device-WatchdogAnswer(280) flags=---- appl=Diameter Common Messages(0) h2h=5542a29 e2e=63d00002 
 88 212.100324 192.168.105.30 -> 192.168.105.20 DIAMETER 146 cmd=Device-WatchdogRequest(280) flags=R--- appl=Diameter Common Messages(0) h2h=5542a2a e2e=63d00003 
 89 212.101629 192.168.105.20 -> 192.168.105.30 DIAMETER 178 SACK cmd=Device-WatchdogAnswer(280) flags=---- appl=Diameter Common Messages(0) h2h=5542a2a e2e=63d00003 
 90 212.110997 192.168.105.30 -> 192.168.105.20 SCTP 62 SACK 
 91 212.119855 192.168.105.30 -> 192.168.105.20 DIAMETER 146 cmd=Device-WatchdogRequest(280) flags=R--- appl=Diameter Common Messages(0) h2h=5542a2b e2e=63d00004

5. Extraer campos específicos

Por ejemplo, estos escenarios son útiles cuando desea extraer campos específicos de paquetes de protocolo de diámetro.

Ya sabe cómo capturar datos para servicios que se ejecutan en puertos no estándar mediante el comando tshark.

Actualmente, tshark admite esta opción para algunos conjuntos de protocolos.

También puede hacer lo mismo usando la opción -V y combinándola con un script rápido o un comando grep. Sin embargo, el método que se muestra a continuación es más rápido para archivos muy grandes.

# tshark  -q -r capture.pcap -R diameter -z diameter,avp,257,Origin-Host 
Running as user "root" and group "root". This could be dangerous. 
frame='82' time='212.059176' src='192.168.105.20' srcport='35132' dst='192.168.105.30' dstport='3868' proto='diameter' msgnr='0' is_request='1' cmd='257' req_frame='82' ans_frame='0' resp_time='0.000000' Origin-Host='backend.eap.testbed.aaa' 
frame='84' time='212.078807' src='192.168.105.30' srcport='3868' dst='192.168.105.20' dstport='35132' proto='diameter' msgnr='0' is_request='0' cmd='257' req_frame='82' ans_frame='84' resp_time='0.019631' Origin-Host='gw.eap.testbed.aaa' 
frame='126' time='225.283773' src='192.168.105.40' srcport='2844' dst='192.168.105.30' dstport='3868' proto='diameter' msgnr='0' is_request='1' cmd='257' req_frame='126' ans_frame='0' resp_time='0.000000' Origin-Host='opendiam.eap.testbed.aaa' 
frame='130' time='225.295815' src='192.168.105.30' srcport='3868' dst='192.168.105.40' dstport='2844' proto='diameter' msgnr='0' is_request='0' cmd='257' req_frame='126' ans_frame='130' resp_time='0.012042' Origin-Host='gw.eap.testbed.aaa' 
=== Diameter Summary === 
requset count:	2 
answer count:	2 
req/ans pairs:	2

6. Mostrar estadísticas para un protocolo específico

También puede mostrar estadísticas de un archivo capturado para un protocolo específico.

Por ejemplo, lo siguiente imprime las estadísticas de un archivo capturado para el protocolo HTTP

# tshark  -q -r a.pcap -R http -z http,tree 
Running as user "root" and group "root". This could be dangerous. 

=================================================================== 
 HTTP/Packet Counter           value	        rate	     percent 
------------------------------------------------------------------- 
 Total HTTP Packets               7       0.000375                
  HTTP Request Packets            4       0.000214          57.14% 
   GET                            4       0.000214         100.00% 
  HTTP Response Packets           3       0.000161          42.86% 
   2xx: Success                   2       0.000107          66.67% 
    200 OK                        2       0.000107         100.00% 
   3xx: Redirection               1       0.000054          33.33% 
    302 Found                     1       0.000054         100.00% 
   5xx: Server Error              0       0.000000           0.00% 
  Other HTTP Packets              0       0.000000           0.00% 

Linux
  1. Cómo usar autofs para montar recursos compartidos NFS

  2. Cómo eliminar el archivo de correo raíz (buzón) en Linux

  3. Cómo usar el comando Tar en Linux

  4. ¿Cómo usar el tipo de archivo en Vim?

  5. Linux:¿Cómo usar un archivo como entrada y salida al mismo tiempo?

Cómo usar FFMpeg para hacer una conversión de audio simple

Cómo usar el comando Truncar en Linux

Cómo instalar y usar Wireshark en Ubuntu 20.04 LTS

Cómo usar el comando lsof en Linux

¿Cómo usar gzip en Linux?

Cómo usar el comando shred de Linux