GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare Wireshark Tshark per specificare i limiti di acquisizione di file, tempo e buffer

Questo tutorial spiega alcuni scenari pratici e utili nell'uso del comando tshark.

Imparerai come salvare automaticamente le acquisizioni su più file, salvare automaticamente le acquisizioni in base ai limiti di tempo, specificare la dimensione del buffer per l'acquisizione, estrarre campi specifici dall'acquisizione e visualizzare le statistiche per un protocollo specifico da un'acquisizione.

1. Salvataggio automatico delle acquisizioni su più file

Ad esempio, sul tuo server di produzione, desideri acquisire i dati sul traffico per un periodo di tempo prolungato. Ti piace usare queste acquisizioni in seguito per analizzare i dati.

In tale situazione, invece di archiviare tutti gli output in un unico file, potresti voler suddividere automaticamente le acquisizioni in più file in base a una dimensione specificata.

L'esempio seguente acquisirà il traffico di rete su 20 file, ciascuno delle dimensioni di 100 KB, quindi l'acquisizione si interromperà automaticamente.

# 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

In quanto sopra:

  • -b è l'opzione del buffer dell'anello
  • filesize:100 indica che la dimensione massima del file di acquisizione dell'output è 100 KB
  • files:20 indica che il numero totale di file di output che dovrebbero essere creati è 20
  • -a indica l'arresto automatico

2. Salvataggio automatico delle acquisizioni in base al limite di tempo

L'esempio seguente acquisirà il traffico di rete su più file. Ma passerà ai nuovi file quando la dimensione del file raggiunge 10240 KB o quando è trascorso 1 secondo. Puoi utilizzare le condizioni di arresto automatico di conseguenza.

# 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. Specifica la dimensione del buffer di acquisizione

Questo scenario è utile quando si verificano perdite di pacchetti durante l'acquisizione.

In queste situazioni, puoi specificare una dimensione del buffer di acquisizione in MB usando l'opzione -B. La dimensione di acquisizione predefinita è 1 MB.

Viene utilizzato dal driver di acquisizione per memorizzare nel buffer i dati dei pacchetti fino a quando tali dati non possono essere scritti su disco. Se riscontri perdite di pacchetti durante l'acquisizione, prova ad aumentare questa dimensione.

# 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. Cattura utilizzando l'opzione "decodifica come"

Questo scenario è utile quando devi specificare come sezionare un tipo di livello.

Questo è lo stesso dell'opzione "decodifica come" di Wireshark, ma a volte il valore del selettore specificato è diverso dal valore presente nel pacchetto. Ad esempio, supponiamo che un pacchetto di diametro abbia un numero di porta di origine e di destinazione diverso da 3868 (numero di porta predefinito), quindi devi specificare questo valore su tshark in modo che possa sezionarlo correttamente.

# 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. Estrai campi specifici

Ad esempio, questo scenario è utile quando desideri estrarre campi specifici da pacchetti di protocollo di diametro.

Sai già come acquisire dati per servizi eseguiti su porte non standard utilizzando il comando tshark.

Attualmente tshark supporta questa opzione per pochi set di protocolli.

Puoi anche fare la stessa cosa usando l'opzione -V e combinandola con un comando rapido di scripting o grep. Tuttavia, il metodo mostrato di seguito è più veloce per file molto grandi.

# 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. Visualizza statistiche per protocollo specifico

Puoi anche visualizzare le statistiche da un file acquisito per un protocollo specifico.

Ad esempio, quanto segue stampa le statistiche da un file acquisito per il protocollo 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. Come utilizzare autofs per montare condivisioni NFS

  2. Come eliminare il file di posta principale (cassetta postale) in Linux

  3. Come utilizzare il comando Tar in Linux

  4. Come utilizzare il tipo di file in Vim?

  5. Come utilizzare il comando tshark di Wireshark per porte personalizzate e file di testo

Come utilizzare FFMpeg per eseguire una semplice conversione audio

Come usare il comando Tronca in Linux

Come installare e utilizzare Wireshark su Ubuntu 20.04 LTS

Come usare il comando lsof in Linux

Come usare gzip in Linux?

Come utilizzare il comando shred Linux