GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser Wireshark Tshark pour spécifier les limites de capture de fichiers, d'heures et de tampons

Ce didacticiel explique quelques scénarios pratiques et utiles lors de l'utilisation de la commande tshark.

Vous comprendrez comment enregistrer automatiquement des captures dans plusieurs fichiers, enregistrer automatiquement des captures en fonction de délais, spécifier votre propre taille de tampon pour la capture, extraire des champs spécifiques de la capture et afficher des statistiques pour un protocole spécifique à partir d'une capture. br />

1. Enregistrement automatique des captures dans plusieurs fichiers

Par exemple, sur votre serveur de production, vous souhaitez capturer des données de trafic pendant une période prolongée. Vous aimez utiliser ces captures plus tard pour analyser les données.

Dans cette situation, au lieu de stocker toutes les sorties dans un seul fichier, vous souhaiterez peut-être décomposer automatiquement les captures en plusieurs fichiers en fonction d'une taille que vous spécifiez.

L'exemple suivant capture le trafic réseau dans 20 fichiers, chacun d'une taille de 100 Ko, puis la capture s'arrête automatiquement.

# 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

Dans ce qui précède :

  • -b est l'option de tampon circulaire
  • filesize :100 indique que la taille maximale du fichier de capture de sortie est de 100 Ko
  • files:20 indique que le nombre total de fichiers de sortie à créer est de 20
  • -a indique l'arrêt automatique

2. Captures d'enregistrement automatique en fonction de la limite de temps

L'exemple suivant capture le trafic réseau vers plusieurs fichiers. Mais, il passera aux nouveaux fichiers lorsque la taille du fichier atteint 10240 Ko ou lorsqu'une seconde s'est écoulée. Vous pouvez utiliser les conditions d'arrêt automatique en conséquence.

# 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. Spécifiez la taille du tampon de capture

Ce scénario est utile lorsque vous faites face à des abandons de paquets pendant la capture.

Dans ces situations, vous pouvez spécifier une taille de tampon de capture en Mo à l'aide de l'option -B. La taille de capture par défaut est de 1 Mo.

Ceci est utilisé par le pilote de capture pour mettre en mémoire tampon les données des paquets jusqu'à ce que ces données puissent être écrites sur le disque. Si vous rencontrez des pertes de paquets lors de la capture, essayez d'augmenter cette taille.

# 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. Capturer en utilisant l'option "décoder en tant que"

Ce scénario est utile lorsque vous devez spécifier comment un type de couche doit être disséqué.

C'est la même chose que l'option Wireshark "décoder en tant que", mais parfois la valeur de sélecteur spécifiée est différente de la valeur présente dans le paquet. Par exemple, supposons qu'un paquet de diamètre ait un numéro de port source et de destination différent de 3868 (numéro de port par défaut), vous devez alors spécifier cette valeur à tshark afin qu'il puisse le disséquer correctement.

# 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. Extraire des champs spécifiques

Par exemple, ce scénario est utile lorsque vous souhaitez extraire des champs spécifiques à partir de paquets de protocole de diamètre.

Vous savez déjà comment capturer des données pour des services qui s'exécutent sur des ports non standard à l'aide de la commande tshark.

Actuellement, tshark prend en charge cette option pour quelques ensembles de protocoles.

Vous pouvez également faire la même chose en utilisant l'option -V et en la combinant avec un script rapide ou une commande grep. Cependant, la méthode ci-dessous est plus rapide pour les fichiers très volumineux.

# 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. Afficher les statistiques pour un protocole spécifique

Vous pouvez également afficher les statistiques d'un fichier capturé pour un protocole spécifique.

Par exemple, ce qui suit imprime les statistiques d'un fichier capturé pour le protocole 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. Comment utiliser autofs pour monter des partages NFS

  2. Comment supprimer le fichier Root Mails (Mailbox) sous Linux

  3. Comment utiliser la commande Tar sous Linux

  4. Comment utiliser le type de fichier dans Vim ?

  5. Linux :Comment utiliser un fichier en entrée et en sortie en même temps ?

Comment utiliser FFMpeg pour effectuer une conversion audio simple

Comment utiliser la commande Truncate sous Linux

Comment installer et utiliser Wireshark sur Ubuntu 20.04 LTS

Comment utiliser la commande lsof sous Linux

Comment utiliser gzip sous Linux ?

Comment utiliser la commande shred Linux