WiresharkはGUIネットワークプロトコルアナライザです。ライブネットワークまたは以前に保存されたキャプチャファイルからのパケットデータをインタラクティブに参照できます。これにより、ネットワークで何が起こっているかを微視的なレベルで確認できます。
TSharkは、インタラクティブなユーザーインターフェイスが不要または利用できない場合にパケットをキャプチャして表示するように設計されたWiresharkの端末指向バージョンです。 Wiresharkと同じオプションをサポートします。 Wiresharkは、そのWebサイトで、その豊富な機能セットを次のように説明しています。
- 何百ものプロトコルの詳細な検査。常に追加されています
- ライブキャプチャとオフライン分析
- マルチプラットフォーム:Windows、Linux、macOS、Solaris、FreeBSD、NetBSD、その他多くの製品で動作します
- 業界で最も強力なディスプレイフィルター
- 豊富なVoIP分析
- tcpdump(libpcap)、Pcap NG、Cisco Secure IDS iplog、Microsoft Network Monitor、その他多くのさまざまなキャプチャファイル形式の読み取り/書き込み
- gzipで圧縮されたキャプチャファイルはその場で解凍できます
- ライブデータは、イーサネット、IEEE 802.11、Bluetooth、USBなど(プラットフォームによって異なります)から読み取ることができます
- IPsec、ISAKMP、Kerberos、SNMPv3、SSL / TLS、WEP、WPA/WPA2などの多くのプロトコルの復号化サポート
- カラーリングルールをパケットリストに適用して、すばやく直感的に分析できます
- 出力はXML、PostScript、CSV、またはプレーンテキストにエクスポートできます
インストール
Wiresharkは、標準の簡単なコマンドでインストールできます。
Red Hat Enterprise Linux(RHEL)7の場合:
yum install wireshark
Red Hat Enterprise Linux(RHEL)8の場合:
dnf install wireshark
ユースケース
オプションを設定しない場合、TSharkはtcpdumpのように機能します。 pcapを使用します 最初に利用可能なネットワークインターフェイスからトラフィックをキャプチャし、受信した各パケットの標準出力に要約行を表示するライブラリ。
キャプチャを開始する前に、TSharkがサーバー上のどのインターフェイスを使用できるかを定義する必要があります。 sudo
を使用する必要がある場合があります またはこの場合はrootアクセス。
[あなたも好きかもしれません:私のお気に入りの5つのLinuxシステム管理者ツール]
この情報を取得するには、以下のコマンドを実行する必要があります:
# tshark –D
出力例は次のとおりです。
[root@server ~]# tshark -D
1. eth0
2. nflog
3. nfqueue
4. usbmon1
5. any
6. lo (Loopback)
eth0でトラフィックをキャプチャしたい場合 、次のコマンドで呼び出すことができます:
tshark -i eth0
サンプル出力:
[root@server ~]# tshark -i eth0
Running as user "root" and group "root". This could be dangerous.
Capturing on 'eth0'
1 0.000000000 41.242.139.31 -> 207.180.200.5 TCP 60 61513 > tcoaddressbook [ACK] Seq=1 Ack=1 Win=508 Len=0
2 0.103588364 41.242.139.31 -> 207.180.200.5 TCP 60 61513 > tcoaddressbook [ACK] Seq=1 Ack=81 Win=508 Len=0
3 0.690499219 173.212.240.3 -> 255.255.255.255 DHCP 362 DHCP ACK - Transaction ID 0x6b443d32
4 0.819279418 207.180.200.5 -> 41.242.139.31 TCP 342 tcoaddressbook > 61513 [PSH, ACK] Seq=81 Ack=1 Win=283 Len=288
5 0.987663435 45.77.145.115 -> 207.180.200.5 TCP 60 wso2esb-console > https [SYN] Seq=0 Win=5840 Len=0
6 0.987758650 207.180.200.5 -> 45.77.145.115 TCP 54 [TCP ACKed unseen segment] https > wso2esb-console [ACK] Seq=1 Ack=316217230 Win=29200 Len=0
7 1.001310441 207.180.200.5 -> 45.77.145.115 TCP 58 [TCP ACKed unseen segment] [TCP Retransmission] https > wso2esb-console [SYN, ACK] Seq=0 Ack=316217230 Win=29200 Len=0 MSS=1460
8 1.002550877 41.242.139.31 -> 207.180.200.5 TCP 60 61513 > tcoaddressbook [ACK] Seq=1 Ack=369 Win=513 Len=0
9 1.014391846 207.180.200.5 -> 80.237.128.149 NTP 90 NTP Version 4, client
10 1.039819501 80.237.128.149 -> 207.180.200.5 NTP 90 NTP Version 4, server
上記のパケットは、行の先頭に番号で示されています。
これらの行には、矢印の両側に2つのIPアドレスが含まれています。これらは、パケットを交換しているホストです。矢印の方向は、パケットが進む方向を示します。したがって、 41.242.139.31-> 207.180.200.5 パケットがホスト41.242.139.31で発信されたことを意味します 、これは私のコンピューターで、目的地 207.180.200.5に向かっています。 、TSharkがインストールされているリモートサーバーです。私のコンピュータはこのサーバーに接続しようとしているので、TCPハンドシェイクを通過しています。
TSharkがどのように機能するかについての基本的な説明は次のとおりです。TSharkがインストールされているサーバーとの間で開始されるすべてのトラフィックをキャプチャします。 TSharkのフィルタリング機能を使用すると、関心のあるトラフィックを表示できます。
キャプチャの出力を特定の行に制限することもできます。たとえば、出力を10行に制限する場合は、次のコマンドを使用します。
# tshark -i eth0 -c 10
1つのホストとの間のトラフィックをキャプチャする
特定のホストからのトラフィックを除外できます。たとえば、 8.8.8.8との間で送受信されるトラフィックを検索するには 、次のコマンドを使用します:
# tshark -i eth0 -c 10 host 8.8.8.8
8.8.8.8からのトラフィックの場合 :
# tshark -i eth0 src host 8.8.8.8
8.8.8.8に向かうトラフィックの場合 :
# tshark -i eth0 dst host 8.8.8.8
サンプル出力:
[root@server2 ~]# tshark -i eth0 -c 10 host 8.8.8.8
Running as user "root" and group "root". This could be dangerous.
Capturing on 'eth0'
1 0.000000000 8.8.8.8 -> 207.180.229.97 DNS 185 Standard query response 0x8d7a No such name
2 0.004498954 8.8.8.8 -> 207.180.229.97 DNS 184 Standard query response 0x2302 No such name
3 0.024649288 8.8.8.8 -> 207.180.229.97 DNS 146 Standard query response 0x24d2 No such name
4 0.125434062 8.8.8.8 -> 207.180.229.97 DNS 125 Standard query response 0xf89a NS ns1.mail.rhsblmail.com NS ns2.mail.rhsblmail.com
5 0.138280488 8.8.8.8 -> 207.180.229.97 DNS 105 Standard query response 0x1d17 MX 10 mail.rhsblmail.com
6 0.143231852 8.8.8.8 -> 207.180.229.97 DNS 134 Standard query response 0xc774 NS ns1.hongkongserver.net NS ns2.hongkongserver.net
7 0.144433854 8.8.8.8 -> 207.180.229.97 DNS 99 Standard query response 0x4682 A 119.8.46.109
8 0.201845674 8.8.8.8 -> 207.180.229.97 DNS 150 Standard query response 0xfb47 No such name
9 0.205827278 207.180.229.97 -> 8.8.8.8 DNS 72 Standard query 0x74e3 MX dalcargo.net
10 0.482611966 8.8.8.8 -> 207.180.229.97 DNS 102 Standard query response 0x74e3 MX 0 mx.sinanet.com
上記の出力では、 8.8.8.8との間で送受信されるトラフィックが表示されています。 。ホスト8.8.8.8 サーバーに応答を送信しています207.180.229.97 以前に開始したクエリについて。
ネットワークとの間のトラフィックをキャプチャする
また、特定のネットワークへのトラフィックをキャプチャすることもできます。これを行うには、次のコマンドを使用します:
# tshark -i eth0 net 10.1.0.0 mask 255.255.255.0
または
# tshark -i eth0 net 10.1.0.0/24
ソースまたは宛先に基づいてフィルタリングすることもできます。
ソース(からのトラフィック)に基づく:
# tshark -i eth0 src net 10.1.0.0/24
目的地に基づく(行き先の交通量):
# tshark -i eth0 dst net 10.1.0.0/24
ポート番号との間のトラフィックをキャプチャします
他にも多くのバリエーションがあります。
DNSポート53トラフィックのみをキャプチャします:
# tshark -i eth0 port 53
特定のホストの場合:
# tshark -i eth0 host 8.8.8.8 and port 53
HTTPSトラフィックのみをキャプチャする:
# tshark -i eth0 -c 10 host www.google.com and port 443
ポート80と25を除くすべてのポートをキャプチャします:
tshark -i eth0 port not 53 and not 25
出力をファイルに保存する
キャプチャの出力をファイルに保存して、後で読むことができます。 Wiresharkの新しいバージョンでは、出力が pcapngに保存されます。 デフォルトでは。ただし、他の形式で保存することもできます。サポートされている形式を確認するには、次のコマンドを実行します。
# tshark -F
出力を保存するには、-w
を使用します スイッチ。 -w
を使用する スイッチは、テキストではなく生のパケットデータを提供します。テキスト出力が必要な場合は、stdoutをリダイレクトする必要があります(例:>
を使用) )。 -w
は使用しないでください このためのオプション。
キャプチャをファイル名に保存するにはhttp_capture.pcapng
:
# tshark -i eth0 -c 10 port 80 -w http_capture.pcapng
pcapで保存できます フォーマット。tcpdumpおよび古いバージョンのWiresharkで読み取ることができます:
# tshark -i eth0 -c 10 port 80 -w http.pcap -F libpcap
[セキュリティについてもっと知りたいですか? ITセキュリティとコンプライアンスのチェックリストを確認してください。 ]
まとめ
TSharkは、システム管理者がツールセットに追加する必要のある包括的なツールです。これは、2部構成のシリーズのパート1です。パート2では、より高度なフィルターと、出力をより読みやすくする方法について説明します。