Wiresharkの基本的な使い方

Wiresharkは、ネットワークトラフィックをキャプチャし、解析するための強力なネットワークツールです。以下に、Wiresharkの基本的な使い方を説明します。

※社内ネットワーク等で使うときは必ず管理者に確認してください。禁止されていることも多いです。

インストールと起動

Wiresharkを公式ウェブサイト(https://www.wireshark.org)からダウンロードしてインストールします。インストールが完了したら、Wiresharkを起動します。

ping
Wiresharのダウンロードページ

インターフェースの選択

Wiresharkが起動すると、利用可能なネットワークインターフェースの一覧が表示されます。キャプチャしたいインターフェースをダブルクリックして選択します。研修では一般的に有線接続またはWi-Fiのインターフェースを選択します。

ping
利用可能なネットワークインターフェースの一覧

トラフィックのキャプチャの開始

インターフェースを選択したらトラフィックのキャプチャを開始します。

トラフィックの解析

Wiresharkは、キャプチャされたトラフィックをリアルタイムで表示します。パケットの詳細情報やプロトコルの解析結果を確認することができます。

ping
キャプチャされたトラフィック

主なアイコン

ping
主なアイコン
  • パケットキャプチャを開始します。
  • パケットキャプチャを停止します。
  • 現在のキャプチャを再スタートします。
  • キャプチャオプション(インターフェースを選択し直すことが出来ます)

以下に表示フィルタについて解説します。

フィルタリング

いきなりパケットキャプチャを開始すると大量のパケットを補足してしまい圧倒されます。まずはターゲットを決めてフィルタリングをかけてからパケットキャプチャを開始することをお薦めします。

  • Wiresharkでは、表示するパケットを絞り込むためのフィルタリング機能があります。例えば、特定のIPアドレスやポート番号のトラフィックのみ表示することができます。
  • パケットの詳細情報を見るには、該当するパケットをクリックします。すると、画面の下半分にパケットの詳細情報が表示されます。パケットの情報は、パケットの各層(物理層、ネットワーク層、トランスポート層など)についての詳細情報を提供します。特定の部分を展開してさらに詳細な情報を取得することができます。これは、特定のプロトコルヘッダーまたは特定のパケットフィールドを見たい場合に特に便利です。
ping
フィルタリング機能とパケットの詳細情報

パケットの色分け

パケットを色分けすることにより、特定のタイプの通信を視覚的に識別しやすくなります。この色分けのルールは「表示 -> 色付けルール」で定義されています。このルールは上から順に適用されます。

デフォルトでは以下のような色分けが設定されています:

黒: パケットにエラーがあるか、特定の問題が検出された場合に黒色が使用されます。たとえば、チェックサムエラーがあるパケットはこの色で表示されます。

赤:TCPリトランスミッション(再送)等を表す色です。TCPリトランスミッションは、ネットワーク上でパケットが失われたとき、またはパケットが遅延してデータがタイムアウトしたときに発生します。

その他:プロトコルの種類ごとに色分けされます。

ping
パケットの色分けルール

列の設定

Wiresharkで表示列を変更方法は以下の通りです。

Wiresharkのメインウィンドウで「編集 -> 外観 -> 列」を選択します。

ここで、既存の列を変更したり、新しい列を追加したり、不要な列を削除したりできます。

列を追加するには、「+」ボタンをクリックします。新しい列がリストの最後に追加されます。新しく作成された列をクリックし、そのプロパティ(「題名」と「種別」)を設定します。

列のタイトルを変更するには、その列をクリックし、「題名」フィールドを編集します。

列のタイプを変更するには、その列をクリックし、「種別」ドロップダウンメニューから適切なオプションを選択します。

列を削除するには、その列をクリックし、「-」ボタンをクリックします。

必要な変更をすべて行ったら、「OK」をクリックします。

以下はIPアドレスとポート番号が横に並ぶおすすめの設定です。

ping
列の設定

解析の詳細

Wiresharkは多くのプロトコルをサポートしており、パケットの解析結果を詳細に表示することができます。プロトコルのフィールド値やストリームの復元、統計情報の表示など、さまざまな解析機能があります。

ストリームの復元の手順
ping
ストリームの復元
  • 特定のストリームが関連付けられているパケットをパケットリストウィンドウから選択します。
  • メインメニューの「分析」をクリックしてから、「追跡」を選択し、その後、関連するプロトコル(TCP, UDP, HTTP, etc.)を選択します。
  • 新しいウィンドウが開き、選択したストリームのデータが表示されます。ここには、選択したストリームに関連するすべてのパケットデータが表示されます。
  • このウィンドウでは、ストリーム内のデータを「ASCII」、「UTF-8」など、いくつかの異なる形式で表示することが可能です。これはウィンドウの下部にあるドロップダウンメニューから選択できます。
ping
ストリームの復元
統計情報の表示

メニューの「統計」ではキャプチャしたパケットデータの統計情報を表示するための多くのツールが提供されています。

以下に、「統計」メニューのいくつかのオプションを示します:

キャプチャファイルプロパティ: キャプチャに関する基本的な統計情報を提供します。これには、キャプチャ期間、キャプチャされたパケット数、平均パケットレートなどの情報が含まれます。

プロトコル階層: キャプチャ内の各プロトコルの使用状況を表示します。これはパケット数またはバイト数で表示することができます。

ping
プロトコル階層

対話:キャプチャ内のすべての「会話」を一覧表示します。ここでの「会話」は、2つのエンドポイント間で交換されるパケットのシーケンスを指します。

終端: キャプチャ内のすべてのエンドポイントを一覧表示します。エンドポイントは一意のネットワークアドレス(IPアドレスやMACアドレスなど)を指します。

キャプチャの停止と保存

キャプチャを停止するには、赤い四角の"キャプチャを停止"ボタンをクリックします。キャプチャしたトラフィックは、"ファイル"メニューから保存することができます。保存されたキャプチャファイルは、後で再度Wiresharkで開くことができます。

フィルタリング

表示フィルタ

  1. 表示フィルタの使用方法:
    • Wiresharkのフィルタバーに表示フィルタを入力します。例えば、"ip.src == 192.168.0.1"と入力すると、送信元IPアドレスが192.168.0.1のパケットのみ表示されます。
    • 表示フィルタは論理演算子(AND、OR、NOT)や比較演算子(==、!=、>、<、>=、<=)を使用して複雑な条件を組み合わせることができます。

イメージとして論理演算子を講師がベン図にまとめますので下にメモしておきましょう。

ベン図

A AND BA OR BNOT A







表示フィルタの一覧

フィルタは、パケットの特定の属性や条件に基づいてトラフィックを絞り込むためのものです。なお、フィルタは英字小文字で指定します。

プロトコルによるフィルタリング

以下の操作をする際には、コマンドプロンプトを管理者として開きます。これは、スタートメニューで "cmd" を検索し、結果で表示された "コマンドプロンプト" 上で右クリックして "管理者で実行" を選択します。

dns

DNSトラフィックのみ表示します。

DNS【Domain Name System】は、インターネット上のコンピュータ、サービス、またはその他のリソースに対して名前を割り当て、それを対応するIPアドレスに変換するためのシステムです。このシステムの存在により、我々は人間にとって覚えやすい名前(たとえばsaycon.co.jp)を使用してウェブサイトにアクセスでき、その背後の複雑なIPアドレス(たとえば202.254.239.89)を直接覚える必要がありません。

DNSの基本的な動作は次の通りです:

  • ユーザーがブラウザにウェブサイトのURL(例:saycon.co.jp)を入力します。
  • そのリクエストは、設定されたDNSサーバーに送信されます。このDNSサーバーは、要求されたドメイン名(saycon.co.jp)に対応するIPアドレスを探します。
  • DNSサーバーがIPアドレスを知っていれば、それをブラウザに返します。知らない場合、他のDNSサーバーに問い合わせを行い、IPアドレスを見つけ出します。
  • ブラウザは得られたIPアドレスに基づいてウェブサイトに接続し、ユーザーが要求したコンテンツを取得します。

DNSは、人間が覚えやすいドメイン名とマシンが理解できるIPアドレスの間の「翻訳者」の役割を果たしています。このため、インターネットの基本的な機能の一部と言えます。

Windowsでは、コマンドプロンプトを使ってnslookupコマンドを使用することで、DNS(Domain Name System)のパケット送受信を発生させることができます。

①以下のようにnslookupコマンドを使用します。

nslookup [ターゲットのドメイン名]

②例えば、当社のドメイン名に対してDNSルックアップを行う場合は、以下のようになります。DNSクエリがターゲットのドメイン名に対して送信され、DNSレスポンスパケットが返ってきます。

nslookup saycon.co.jp

ping
nslookupの例

ping
dnsでフィルタ

http

HTTPトラフィックのみ表示します。

HTTP【Hypertext Transfer Protocol】は、インターネット上で情報を送受信するためのプロトコルです。ウェブブラウザ(クライアント)とウェブサーバー(サーバ)間でデータのやり取りを行う際に広く使用されています。

HTTPにおいてそれぞれのリクエストとレスポンスは独立していて、以前のリクエストや未来のリクエストとは関連性を持っていません。(statelessといいます)この性質がHTTPをシンプルに保つ一方で、セッション状態の管理(例えば、ログイン状態の維持や買い物カゴの内容の保持)のためには追加のメカニズム(クッキーなど)が必要になります。

HTTPリクエストはいくつかの異なる「メソッド」を使用して行われます。最も一般的なメソッドは以下の二つです:

  • GET:指定したリソースを取得します。ブラウザでウェブページを開くときには、基本的にGETリクエストが行われます。
  • POST:サーバーにデータを送信します。これはフォームを送信したり、APIにデータを送信したりするときに使用されます。

また、HTTPは元々暗号化されていませんでしたが、セキュリティ上の理由からHTTPS(HTTP Secure)が導入され、ウェブの通信はますますHTTPSへ移行しています。HTTPSはSSL/TLSというプロトコルを使用してHTTP通信を暗号化し、第三者によるデータの閲覧や改ざんを防いでいます。

Windowsでは、HTTP(Hypertext Transfer Protocol)のパケット送受信を発生させるために、curlコマンドを使用できます。このコマンドはHTTPリクエストを送信し、HTTPレスポンスを受け取ります。

①以下のようにcurlコマンドを使用します。

curl [ターゲットのURL]

②例えば、Googleのトップページに対してHTTPリクエストを送信する場合は、次のようになります。HTTPリクエストがターゲットのURLに対して送信され、HTTPレスポンスパケットが返ってきます。

curl http://www.google.com

その際、以下のエラーメッセージが出ることがあります。

curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - 失効の関数は証明書の失効を確認できませんでした。

その場合は以下のように-kオプションで回避できます。

curl -k https://saycon.co.jp

もちろんhttp通信が可能なWebサイトにアクセスすることでもHTTP(Hypertext Transfer Protocol)のパケット送受信を発生させることは可能です。

ping
httpでフィルタ

tcp

TCPパケットのみ表示します。

TCP(Transmission Control Protocol)は、多くのネットワークアプリケーションにおいて使用されるプロトコルであり、たとえばHTTPやHTTPS、FTP、SSHなどのプロトコルがTCPを使用します。

TCPはTransmission Control Protocol(トランスミッション コントロール プロトコル)と呼ばれるのは、その役割に関連しています。

TCPは、インターネット上でデータの信頼性と制御を提供するプロトコルです。その主な目的は、データの正確な転送と到着の確認を保証することです。これは、データパケットの紛失、順序の入れ替わり、重複、または損傷といった問題に対処することを意味します。

「Transmission(トランスミッション)」という用語は、データの送信と受信を指しています。TCPは、データを分割し、ネットワーク上を「転送」する責任を持ちます。データが送信元から宛先に到着するまでの間、TCPはデータの整合性と完全性を確保します。

自動車でもオートマチックトランスミッション(AT)といったりしますね。車のトランスミッションは、エンジンの出力を車輪に伝えるものですが、このように何かを伝えるのがトランスミッションです。

一方、「Control(コントロール)」という用語は、TCPがデータ転送の制御を担当することを示しています。TCPは、送信元と宛先の間で通信を確立し、データの流れを制御します。それにより、データが適切な順序で送信され、適切なタイミングで受信側に到着するようにします。

Wiresharkはプロトコルスタックの各レベルを解析するため、プロトコル欄では最上位のプロトコルを表示します。

下図でTLSやHTTPもフィルタリングされているのはこれらのプロトコルがTCPプロトコルを使用しているためです。

ping
tcpでフィルタ
ip

IPパケットのみ表示します。

IP【Internet Protocol】は、インターネット上でデータを送受信するための主要なプロトコルの一つです。IPアドレスという一意の識別子を使用して、ネットワーク上のデバイス間でデータパケットを正確に送受信するためのルールを定めています。

IPには、主にIPv4(インターネット・プロトコル・バージョン4)とIPv6(インターネット・プロトコル・バージョン6)の2つのバージョンがあります。

IPv4は、32ビットのアドレスを使用し、約43億のユニークなアドレスを提供します。これは「202.254.239.89」のような形式で表されます。しかし、インターネット接続デバイスの急速な増加により、IPv4アドレスは枯渇しつつあります。

この問題を解決するために導入されたのがIPv6です。IPv6は128ビットのアドレスを使用しており、その提供できるユニークなアドレス数は非常に大きいです。これは「2001:0db8:85a3:0000:0000:8a2e:0370:7334」のような形式で表されます。

IPはデータをパケットとして送受信しますが、これはTCP(Transmission Control Protocol)やUDP(User Datagram Protocol)などのトランスポート層のプロトコルと組み合わせて、さまざまなタイプのデータ(Webページ、メール、動画など)を送受信するために使用されます。

なお、下図でTLSやTCP、UDPといったプロトコルがフィルタリングされているのはこれらのプロトコルはIPの上位層のプロトコルであるためです。これらのプロトコルがIPプロトコルを使用しているためです。

ping
ipでフィルタ

dhcp

DHCPパケットのみ表示します。

DHCP【Dynamic Host Configuration Protocol】は、ネットワーク上のデバイスに対して動的にIPアドレスを割り当てるためのネットワークプロトコルです。これにより、管理者は各デバイスに手動でIPアドレスを設定する必要がなくなり、デバイスの追加や変更が容易になります。

DHCPは以下のようなプロセスで動作します:

  • DHCP Discover:新たにネットワークに接続したデバイス(クライアント)は、「私は新しいデバイスで、IPアドレスが必要です」というDHCP Discoverメッセージをネットワーク上にブロードキャストします。
  • DHCP Offer:DHCPサーバーはこのリクエストを受け取ると、自身が管理するIPアドレスプールから未使用のIPアドレスを選び、それをクライアントにオファーするDHCP Offerメッセージを送信します。
  • DHCP Request:クライアントはオファーを受け取ると、そのIPアドレスの使用を正式にリクエストするDHCP Requestメッセージをサーバーに送信します。
  • DHCP Acknowledgment:サーバーはクライアントのリクエストを確認し、そのIPアドレス(およびその他のネットワーク設定情報、例えばサブネットマスク、デフォルトゲートウェイ、DNSサーバー等)を正式に割り当てるDHCP Acknowledgmentメッセージをクライアントに送信します。

このプロセスを通じて、クライアントはネットワークに接続し、適切なIPアドレスを取得します。これにより、ネットワーク管理者は各デバイスに個別にIPアドレスを手動で割り当てる手間を省くことができます。

Windowsでは、コマンドプロンプトを使用してDHCPのリースを手動で更新することができます。これにより、DHCPパケットの送受信が発生します。

①以下のコマンドを打ちます。このコマンドは、すべてのネットワークアダプタのIPアドレスをリリースします。

ipconfig /release

②次に以下のコマンドを打ちます。このコマンドは、新たにIPアドレスを取得します。このとき、PCとDHCPサーバーとの間でDHCPパケットの送受信が発生します。

ipconfig /renew

ping
dhcpのキャプチャ
icmp

ICMPパケットのみ表示します。

ICMP【Internet Control Message Protocol】は、インターネット・プロトコル・スイートの一部で、IPレベルでのエラーメッセージ伝送と操作メッセージ伝送を提供するためのプロトコルです。

ICMPは主にネットワークデバイス間の通信問題を報告するために使用されます。例えば、あるルーターが別のルーターに到達できない場合や、パケットがライフタイム【TTL, Time to Live】を超えた場合などにICMPメッセージが送信されます。

また、ICMPは「ping」や「traceroute」などのネットワーク診断ツールの基盤ともなっています:

  • Ping:PingツールはICMP Echo RequestとEcho Replyメッセージを使用して、特定のネットワークホストがオンラインで応答可能かどうかを確認します。
  • Traceroute:TracerouteツールはICMP Time Exceededメッセージを利用して、データパケットがソースホストから目的地までの経路(経由するルーター)を表示します。

ICMPはエラーメッセージと操作メッセージの伝送を担当していますが、データ自体の転送は行わないことに注意が必要です。その役割は、IPというネットワークレイヤーのプロトコルが効果的に機能するためのサポートを提供することです。

Windowsでは、コマンドプロンプトを使ってpingコマンドを利用することで、ICMP(Internet Control Message Protocol)のパケット送受信を発生させることができます。

①以下のようにpingコマンドを使用します。ICMPエコーリクエストパケットがターゲットのIPアドレスに送信され、エコーレスポンスパケットが返ってきます。

ping [ターゲットのIPアドレスまたはホスト名]

ping
pingの例

ping
icmpでフィルタ

arp

ARPトラフィックのみ表示します。

ARP【Address Resolution Protocol】は、ネットワーク層のIPアドレスをデータリンク層の物理アドレス(MACアドレス)に変換するためのプロトコルです。この変換は、LANなどの同一のネットワークに存在するデバイス間で通信を行う際に必要となります。

ARPの基本的な動作は以下の通りです:

デバイスAがデバイスBと通信したい場合、デバイスAは自身が知っているデバイスBのIPアドレスを元にARPリクエストをブロードキャストします。このリクエストには「デバイスBのIPアドレスを持つデバイスは、自身のMACアドレスを応答してください」というメッセージが含まれています。

全てのデバイスがこのリクエストを受け取りますが、要求されたIPアドレスを持つデバイスBだけが応答します。デバイスBはARPレスポンスを生成し、その中に自身のMACアドレスを含め、デバイスAに対して直接送信します。

デバイスAはこの応答を受け取り、自身のARPテーブル(ARPキャッシュ)を更新します。ARPテーブルはIPアドレスとMACアドレスのマッピング情報を保持しています。

ARPはこのようなプロセスを経て、IPネットワーク上で物理的なデバイスを識別し、データを正しくルーティングするための情報を提供します。

以下の操作でARPの動作を見てみましょう。

①まず、はじめに現在のARPテーブルを確認します。以下のコマンドを入力してください。aは【all】という意味です。

arp -a

ping
arpテーブル

なお、種類の意味は以下のとおりです。

  • 動的エントリ:動的ARPエントリはネットワーク上のデバイスからのARPリクエストに対する応答として自動的に作成されます。デバイスが特定のIPアドレスを持つデバイスのMACアドレスを知りたいとき、ARPリクエストをブロードキャストします。対象のデバイスがこれに応答すると、要求したデバイスのARPテーブルに動的エントリが追加されます。これらのエントリは一定時間が経過すると自動的に削除(タイムアウト)されます。
  • 静的エントリ:静的ARPエントリは管理者が手動で設定します。これは特定のIPアドレスとMACアドレスの関連付けを常に同じに保つために用いられます。静的エントリは手動で削除しない限りタイムアウトせず、ARPテーブルに永続的に存在します。

上記のARPテーブルはクリアしないでください。なぜなら、このあとそのIPアドレスにpingコマンドを打つからです。

②ARPキャッシュを削除するために以下のコマンドを入力します。

arp -d *

すかさずarp-aを打つと以下のようにテーブルから情報が削除されているはずです。

ping
削除後のarpテーブル

③上記リストにないローカルネットワーク上のデバイスに対してpingコマンドを実行します。これにより、そのデバイスのIPアドレスとMACアドレスの対応関係を再度取得する必要があり、そのためにARPリクエストが発生します。

ping [ローカルネットワーク上のデバイスのIPアドレス]

ping
arpでフィルタ
udp

UDPパケットのみ表示します。

UDP【User Datagram Protocol】は、インターネットプロトコルスイートの一部で、データをパケットとしてネットワークを通じて送受信するためのプロトコルです。UDPはTCP【Transmission Control Protocol】と並んで広く利用されるトランスポート層のプロトコルで、それぞれが異なる特性と利用ケースを持っています。

UDPの主な特性は以下の通りです:

  • UDPは接続を確立せずにデータを送信します。これにより、通信の開始と終了に関するオーバーヘッドが削減されます。
  • UDPはデータの到着を確認したり、並び替えたり、再送したりする機能を提供しません。パケットが失われた場合や順序が乱れた場合でも、アプリケーションはそのまま進行します。
  • 上記の特性の結果、UDPはTCPよりも速度が速い傾向があります。これは、ネットワーク遅延やパケットロスが頻繁に発生する状況(例えば動画の配信)で特に顕著です。

これらの特性から、UDPはリアルタイムのアプリケーション(例えば、VoIP、ビデオストリーミング、ゲームなど)に適しています。これらのアプリケーションでは、情報が即時に送られることが重要であり、途中で一部のパケットが失われても全体の経験に大きな影響を与えないからです。

WindowsでUDPパケットの送受信を行うには、例えば、コマンドプロンプトからnslookupコマンドを使用してDNSクエリを実行することで、UDPパケットの送受信を引き起こすことができます。

ping
udpでフィルタ

ssl

SSL/TLSトラフィックのみ表示します。

SSL【Secure Sockets Layer】は、インターネット上でデータを安全に送受信するためのプロトコルです。SSLはデータを暗号化し、第三者によるデータの傍受や改ざんを防ぎます。SSLは主にウェブブラウザとウェブサーバー間の通信を保護するために使用されますが、他のプロトコルのセキュリティを強化するためにも使用できます。

SSLは公開鍵暗号化と秘密鍵暗号化の両方を使用します。公開鍵暗号化では、データを暗号化するための公開鍵とデータを復号化するための秘密鍵が使用されます。一方、秘密鍵暗号化では、同じ鍵が暗号化と復号化の両方に使用されます。

SSLの基本的な動作は次のような手順で行われます:

  1. クライアント(通常はウェブブラウザ)がサーバーに接続を要求します。
  2. サーバーはSSL証明書をクライアントに送信します。この証明書には、公開鍵と証明書の所有者に関する情報が含まれています。
  3. クライアントはこの証明書を確認し、信頼できる場合は、公開鍵を使用して新たな秘密鍵を暗号化し、サーバーに送り返します。
  4. サーバーはその秘密鍵を復号化し、その鍵を使用して以降の通信を暗号化します。

SSLは以前は広く使用されていましたが、現在ではその後継プロトコルであるTLS【Transport Layer Security】に置き換えられています。しかし、"SSL"という名前は依然として一般的に使用されており、しばしばTLSを指して使用されます。

主に使われているTLSのバージョンには、1.2と1.3があります。TLS 1.3は通信の速度とセキュリティが向上しています。ただし、古いシステムやデバイスではTLS 1.3をサポートしていない場合があります。

Windowsでsslパケットの送受信を行うのは簡単で、どこかのWebサイトにアクセスすればそれはおそらくTLS通信です。

ping
sslでフィルタ

論理演算子によるフィルタリング

複数のフィルタ条件を組み合わせるために論理演算子を使用することができます。主な論理演算子として、&&(AND)、||(OR)、!(NOT)があります。

  1. AND(&&): この演算子は2つの条件が両方とも真である場合に真となるようなフィルタを作成します。たとえば、「IPアドレスが192.168.1.1で、かつプロトコルがTCPである」パケットをフィルタリングするには、以下のようなフィルタを作成します:ip.addr == 192.168.1.1 && tcp
  2. OR(||): この演算子は2つの条件のうち少なくとも1つが真である場合に真となるようなフィルタを作成します。たとえば、「IPアドレスが192.168.1.1またはプロトコルがTCPである」パケットをフィルタリングするには、以下のようなフィルタを作成します:ip.addr == 192.168.1.1 || tcp
  3. NOT(!): この演算子は条件が偽である場合に真となるようなフィルタを作成します。たとえば、「IPアドレスが192.168.1.1でない」パケットをフィルタリングするには、以下のようなフィルタを作成します:!ip.addr == 192.168.1.1

これらの演算子を組み合わせて、より複雑なフィルタを作成することも可能です。たとえば、「送信元IPアドレスが192.168.1.1で、かつ宛先IPアドレスが192.168.1.2でなく、かつプロトコルがTCPである」パケットをフィルタリングするには、以下のようなフィルタを作成します:

ip.src == 192.168.1.1 and ip.dst != 192.168.1.2 and tcp

IPアドレスによるフィルタリング

特定のIPアドレスに基づくフィルタリングを行うことができます。これは特定のホストとの通信を追跡する際や、特定のネットワークアクティビティを調査する際に有用です。

以下に、一部のIPアドレスに関連するフィルタリングの例を示します。(目的のパケットの特定のカラムを右クリックしたりドラッグアンドドロップしたりすると楽にフィルタリングできます。ポート番号でも同様)

特定のIPアドレスのパケットをフィルタリングする:

ip.addr == 192.168.1.1

これにより、送信元または宛先が192.168.1.1のパケットのみが表示されます。

特定の送信元IPアドレスのパケットをフィルタリングする:

ip.src == 192.168.1.1

これにより、送信元が192.168.1.1のパケットのみが表示されます。

特定の宛先IPアドレスのパケットをフィルタリングする:

ip.dst == 192.168.1.1

これにより、宛先が192.168.1.1のパケットのみが表示されます。

特定のIPアドレス範囲のパケットをフィルタリングする:

ip.addr >= 192.168.1.1 && ip.addr <= 192.168.1.100

これにより、送信元または宛先のIPアドレスが192.168.1.1から192.168.1.100の間のパケットのみが表示されます。

ポート番号によるフィルタリング

特定のTCPまたはUDPポートを使用する通信をフィルタリングすることができます。これは、特定のアプリケーションやサービス(たとえば、HTTPは通常ポート80または443を使用します)のネットワークアクティビティを調査する際に非常に有用です。

以下に、ポート番号に基づくフィルタリングの例を示します。

特定のポートを使用するパケットをフィルタリングする:

tcp.port == 80 OR udp.port == 80

これにより、TCPまたはUDPでポート80を使用するパケットのみが表示されます。

特定の送信元ポートを使用するパケットをフィルタリングする:

tcp.srcport == 80 || udp.srcport == 80

これにより、送信元ポートが80のTCPまたはUDPパケットのみが表示されます。

特定の宛先ポートを使用するパケットをフィルタリングする:

tcp.dstport == 80 || udp.dstport == 80

これにより、宛先ポートが80のTCPまたはUDPパケットのみが表示されます。

これらのフィルタは単独で使用することも、他のフィルタ(IPアドレス、プロトコルなど)と組み合わせて使用することもできます。

分析メニュー

Wiresharkの「統計」メニューは、通信ネットワーク上で発生しているさまざまなイベントの統計情報を提供します。統計情報は、ネットワークの問題を特定し、パフォーマンスを改善するためのヒントを提供します。

以下に、Wiresharkの「統計」メニューのいくつかの主要な項目について解説します。

プロトコル階層

キャプチャしたパケットに含まれる各プロトコルの統計情報を提供します。これは、トラフィックの大部分を占めているプロトコルを特定するのに役立ちます。

ping

入出力グラフ

経過時間とともに入出力されるパケット数またはバイト数のグラフを生成します。

ping

セイ・コンサルティング・グループのネットワーク&セキュリティ研修の内容を見る