GNU/Linux >> Linux の 問題 >  >> Linux

Wireshark Tshark を使用してファイル、時間、バッファ キャプチャの制限を指定する方法

このチュートリアルでは、tshark コマンドを使用する際のいくつかの実用的で役立つシナリオについて説明します。

キャプチャを複数のファイルに自動保存する方法、時間制限に基づいてキャプチャを自動保存する方法、キャプチャ用に独自のバッファ サイズを指定する方法、キャプチャから特定のフィールドを抽出する方法、およびキャプチャから特定のプロトコルの統計を表示する方法を理解できます。 br />

1.キャプチャを複数のファイルに自動保存

たとえば、運用サーバーで、トラフィック データを長期間キャプチャする必要があるとします。これらのキャプチャを後で使用して、データを分析したいと考えています。

そのような状況では、すべての出力を 1 つのファイルに保存する代わりに、指定したサイズに基づいてキャプチャを複数のファイルに自動的に分割することができます。

次の例では、ネットワーク トラフィックを 20 個のファイル (それぞれのサイズは 100 KB) にキャプチャし、キャプチャは自動的に停止します。

# 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

上記では:

  • -b はリングバッファオプションです
  • filesize:100 は、出力キャプチャ ファイルの最大サイズが 100 KB であることを示します
  • files:20 は、作成する出力ファイルの総数が 20 であることを示します
  • -a は自動停止を示します

2.制限時間に基づいてキャプチャを自動保存

次の例では、ネットワーク トラフィックを複数のファイルにキャプチャします。ただし、ファイルサイズが 10240KB に達するか、1 秒経過すると新しいファイルに切り替わります。それに応じて自動停止条件を使用できます。

# 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.キャプチャ バッファ サイズの指定

このシナリオは、キャプチャ中にパケット ドロップが発生した場合に役立ちます。

このような状況では、-B オプションを使用してキャプチャ バッファ サイズを MB 単位で指定できます。デフォルトのキャプチャ サイズは 1MB です。

これは、データがディスクに書き込まれるまで、パケット データをバッファリングするためにキャプチャ ドライバによって使用されます。キャプチャ中にパケット ドロップが発生した場合は、このサイズを増やしてみてください。

# 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. 「decode as」オプションを使用してキャプチャ

このシナリオは、レイヤー タイプを分析する方法を指定する必要がある場合に役立ちます。

これはwiresharkの「decode as」オプションと同じですが、指定されたセレクタ値がパケットに存在する値と異なる場合があります。たとえば、diameter パケットの送信元と宛先のポート番号が 3868 (デフォルトのポート番号) とは異なる場合、適切に分析できるように、この値を tshark に指定する必要があります。

# 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.特定のフィールドを抽出

たとえば、このシナリオは、Diameter プロトコル パケットから特定のフィールドを抽出する場合に役立ちます。

tshark コマンドを使用して非標準ポートで実行されるサービスのデータをキャプチャする方法は既に知っています。

現在、tshark はいくつかのプロトコル セットに対してこのオプションをサポートしています。

-V オプションを使用し、クイック スクリプトまたは grep コマンドと組み合わせて同じことを行うこともできます。ただし、非常に大きなファイルの場合は、以下に示す方法の方が高速です。

# 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.特定のプロトコルの統計を表示

特定のプロトコルのキャプチャされたファイルから統計を表示することもできます。

たとえば、次の例では、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. autofsを使用してNFS共有をマウントする方法

  2. Linuxでルートメール(メールボックス)ファイルを削除する方法

  3. LinuxでTarコマンドを使用する方法

  1. Vimでファイルタイプを使用する方法は?

  2. chmodを使用してファイルのパーミッションを変更するにはどうすればよいですか?

  3. Linux:ファイルを入力と出力として同時に使用する方法は?

  1. CherryTreeを使用してメモを取る方法

  2. Linuxでmd5sumコマンドを使用する方法

  3. カスタム ポートとテキスト ファイルに Wireshark tshark コマンドを使用する方法