GNU/Linux >> Znalost Linux >  >> Linux

Jak používat Wireshark Tshark k určení limitů souborů, času a zachycování vyrovnávací paměti

Tento tutoriál vysvětluje několik praktických a užitečných scénářů při používání příkazu tshark.

Pochopíte, jak automaticky ukládat zachycené soubory do více souborů, automaticky ukládat zachycené soubory na základě časových limitů, určit vlastní velikost vyrovnávací paměti pro zachycení, extrahovat konkrétní pole ze zachycení a zobrazit statistiky pro konkrétní protokol ze zachycení.

1. Automatické ukládání snímků do více souborů

Například na svém produkčním serveru chcete zaznamenávat provozní údaje po delší dobu. Tyto zachycování rádi použijete později k analýze dat.

V takové situaci můžete místo ukládání všech výstupů do jednoho souboru chtít automaticky rozdělit zachycené soubory do více souborů podle velikosti, kterou určíte.

Následující příklad zachytí síťový provoz do 20 souborů, každý o velikosti 100 kB, a poté se zachytávání automaticky zastaví.

# 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

Ve výše uvedeném:

  • -b je volba kruhové vyrovnávací paměti
  • filesize:100 udává, že maximální velikost výstupního zachyceného souboru je 100 kB
  • files:20 udává, že celkový počet výstupních souborů, které by měly být vytvořeny, je 20
  • -a označuje automatické zastavení

2. Automatické ukládání snímků na základě časového limitu

Následující příklad zachytí síťový provoz do více souborů. Ale přepne se na nové soubory, když velikost souboru dosáhne 10240 KB nebo když uplyne 1 sekunda. Podle toho můžete použít podmínky automatického zastavení.

# 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. Zadejte velikost vyrovnávací paměti pro zachycení

Tento scénář je užitečný, když se během zachycení setkáte s pády paketů.

V těchto situacích můžete zadat velikost vyrovnávací paměti pro zachycení v MB pomocí volby -B. Výchozí velikost záznamu je 1 MB.

To je používáno ovladačem pro zachycení k ukládání dat paketů do vyrovnávací paměti, dokud nelze tato data zapsat na disk. Pokud při zachycování zaznamenáte poklesy paketů, zkuste tuto velikost zvětšit.

# 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. Zachytit pomocí možnosti „dekódovat jako“

Tento scénář je užitečný, když potřebujete určit, jak má být typ vrstvy rozřezán.

Toto je stejné jako volba „dekódovat jako“ wireshark, ale někdy se zadaná hodnota selektoru liší od hodnoty přítomné v paketu. Předpokládejme například, že paket s průměrem má číslo zdrojového a cílového portu odlišné od 3868 (výchozí číslo portu), pak musíte tuto hodnotu zadat tshark, aby jej mohl správně rozebrat.

# 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. Extrahujte specifická pole

Tyto scénáře jsou například užitečné, když chcete extrahovat konkrétní pole z paketů protokolu průměru.

Již víte, jak zachytit data pro služby, které běží na nestandardních portech pomocí příkazu tshark.

V současné době tshark podporuje tuto možnost pro několik sad protokolů.

Totéž můžete udělat také pomocí volby -V a kombinací s rychlým skriptováním nebo příkazem grep. Níže uvedená metoda je však rychlejší pro velmi velké soubory.

# 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. Zobrazit statistiky pro konkrétní protokol

Můžete také zobrazit statistiky z nahraného souboru pro konkrétní protokol.

Následující příklad například vytiskne statistiku ze zachyceného souboru pro protokol 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. Jak používat autofs k připojení sdílených složek NFS

  2. Jak odstranit soubor root Mails (Mailbox) v Linuxu

  3. Jak používat příkaz Wireshark tshark pro vlastní porty a textové soubory

  1. Jak používat příkaz Tar v Linuxu

  2. Jak používat typ souboru ve Vimu?

  3. Jak použít chmod ke změně oprávnění k souboru?

  1. Jak používat CherryTree pro psaní poznámek

  2. Jak používat příkaz md5sum v Linuxu

  3. Linux:Jak použít soubor jako vstup a výstup zároveň?