GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie Wireshark Tshark zum Festlegen von Datei-, Zeit- und Puffererfassungsgrenzen

Dieses Tutorial erklärt einige praktische und nützliche Szenarien zur Verwendung des Befehls tshark.

Sie erfahren, wie Sie Captures automatisch in mehreren Dateien speichern, Captures basierend auf Zeitlimits automatisch speichern, Ihre eigene Puffergröße für die Erfassung angeben, bestimmte Felder aus der Erfassung extrahieren und Statistiken für ein bestimmtes Protokoll aus einer Erfassung anzeigen.

1. Captures automatisch in mehreren Dateien speichern

Beispielsweise möchten Sie auf Ihrem Produktionsserver Verkehrsdaten über einen längeren Zeitraum erfassen. Sie möchten diese Aufnahmen später verwenden, um die Daten zu analysieren.

Anstatt alle Ausgaben in einer einzigen Datei zu speichern, möchten Sie in dieser Situation die Aufnahmen möglicherweise automatisch in mehrere Dateien aufteilen, basierend auf einer von Ihnen angegebenen Größe.

Im folgenden Beispiel wird der Netzwerkverkehr in 20 Dateien mit einer Größe von jeweils 100 KB erfasst, und die Erfassung wird dann automatisch beendet.

# 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

Oben:

  • -b ist die Ringpufferoption
  • filesize:100 gibt an, dass die maximale Größe der Ausgabe-Capture-Datei 100 KB beträgt
  • files:20 gibt an, dass die Gesamtzahl der zu erstellenden Ausgabedateien 20 beträgt
  • -a zeigt Autostopp an

2. Automatisches Speichern von Aufnahmen basierend auf dem Zeitlimit

Das folgende Beispiel erfasst den Netzwerkverkehr in mehreren Dateien. Es wird jedoch zu neuen Dateien gewechselt, wenn die Dateigröße 10240 KB erreicht oder wenn 1 Sekunde verstrichen ist. Sie können Auto-Stopp-Bedingungen entsprechend verwenden.

# 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. Größe des Erfassungspuffers angeben

Dieses Szenario ist hilfreich, wenn Sie während der Erfassung mit Paketverlusten konfrontiert werden.

In diesen Situationen können Sie mit der Option -B eine Erfassungspuffergröße in MB angeben. Die Standardaufnahmegröße beträgt 1 MB.

Dies wird vom Erfassungstreiber verwendet, um Paketdaten zu puffern, bis diese Daten auf die Festplatte geschrieben werden können. Wenn Sie während der Erfassung auf Paketverluste stoßen, versuchen Sie, diese Größe zu erhöhen.

# 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. Erfassen mit der Option „decodieren als“

Dieses Szenario ist hilfreich, wenn Sie angeben müssen, wie ein Schichttyp seziert werden soll.

Dies ist dasselbe wie die Wireshark-Option „Decodieren als“, aber manchmal unterscheidet sich der angegebene Selektorwert von dem im Paket vorhandenen Wert. Angenommen, ein Diameter-Paket hat eine andere Quell- und Zielportnummer als 3868 (Standardportnummer), dann müssen Sie diesen Wert für tshark angeben, damit es ihn richtig zerlegen kann.

# 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. Bestimmte Felder extrahieren

Dieses Szenario ist beispielsweise hilfreich, wenn Sie bestimmte Felder aus Diameter-Protokollpaketen extrahieren möchten.

Sie wissen bereits, wie Sie mit dem Befehl tshark Daten für Dienste erfassen, die auf nicht standardmäßigen Ports ausgeführt werden.

Derzeit unterstützt tshark diese Option für wenige Protokolle.

Sie können dasselbe auch mit der Option -V tun und mit einem schnellen Skript- oder grep-Befehl kombinieren. Aber die unten gezeigte Methode ist schneller für sehr große Dateien.

# 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. Statistiken für bestimmte Protokolle anzeigen

Sie können auch Statistiken aus einer kopierten Datei für ein bestimmtes Protokoll anzeigen.

Im Folgenden werden beispielsweise die Statistiken aus einer erfassten Datei für das HTTP-Protokoll gedruckt

# 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. So verwenden Sie autofs zum Mounten von NFS-Freigaben

  2. So löschen Sie die Root-E-Mail-Datei (Postfach) unter Linux

  3. So verwenden Sie den Tar-Befehl unter Linux

  4. Wie verwende ich chmod, um die Dateiberechtigung zu ändern?

  5. So verwenden Sie den Wireshark-Tshark-Befehl für benutzerdefinierte Ports und Textdateien

Wie man FFMpeg verwendet, um eine einfache Audiokonvertierung durchzuführen

So verwenden Sie den Truncate-Befehl unter Linux

So installieren und verwenden Sie Wireshark unter Ubuntu 20.04 LTS

So verwenden Sie den Befehl lsof unter Linux

Wie verwende ich gzip unter Linux?

So verwenden Sie den Linux-Befehl shred