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

Tcpdumpを使用してパケットをキャプチャし、UbuntuでWiresharkを使用して分析します

このガイドでは、Linuxでネットワークパケットを分析する方法を紹介します。 ToolsTcpdumpとWiresharkを使用します。このチュートリアルではOSとしてUbuntuを使用していますが、他のLinuxディストリビューションにも適用できます。

なぜTcpdumpが必要なのですか?

頭に浮かぶかもしれない明らかな質問は、Wiresharkでほとんどすべてを実行できるのに、なぜTcpdumpを気にするのかということです。これに対する答えは次のとおりです。Wiresharkと比較して、パケットキャプチャにTcpdumpを使用する方が便利な場合があります。たとえば、パケットをキャプチャしているターゲットマシンが、Wiresharkがインストールされていないリモートマシンである場合、またはリモートヘッドレスマシンである場合、どちらの場合も、Tcpdumpは非常に便利です。 Tcpdumpで使用できるさまざまなオプションを確認するには、マニュアルページを検索してください。

Tcpdumpとは何ですか?

Tcpdumpは、Wiresharkのコマンドライン代替手段です。これは、トラフィックをキャプチャして分析するWiresharkと同じ目的を果たします。 Tcpdumpは別のアプリケーションであり、Wiresharkコマンドラインインターフェイスと見なすべきではありません。コマンドラインインターフェイスに基づいているため、Wiresharkほど簡単に処理することはできません。新規ユーザーは、使い始めたときに最初は気が遠くなるかもしれませんし、覚えにくいコマンドや構文をたくさん見つけることができます。

このチュートリアルの概要

このガイドの主な目的に移りましょう。このガイドでは、TcpdumpをWiresharkと対話する方法を説明します。ここでは、このガイドで行う作業を指摘します:

  1. SSHを使用したリモートマシン(ホスト2)との接続。
  2. Tcpdumpを使用してトラフィックをキャプチャし、キャプチャを保存します。
  3. Wiresharkがインストールされているオンサイトマシン(ホスト1)にキャプチャファイルを送信します。
  4. キャプチャされたTcpdumpセッションを分析するためのWiresharkの使用。

飛行前チェック

このチュートリアルでは、2台のUbuntu20.04マシンを使用しています。自分で設定する必要があります。 IP構成は次のとおりです。

ホスト1(オンサイトマシン):192.168.186.150

ホスト2(リモートマシン):192.168.186.201

このガイドに記載されている手順は、次の要件が満たされているすべてのLinuxシステムで機能することを前提としています。

  1. WiresharkがインストールされSSHが構成されたオンサイトホスト(ホスト1)。
  2. オンサイトホスト(ホスト1)からリモートホスト(ホスト2)へのSSHアクセス。
  3. リモートホスト(ホスト2)で構成されたTcpdumpとSSH。
  4. Tcpdumpを実行するためのホスト2およびホスト1の「sudo」ユーザーアカウント(Wiresharkの構成方法によって異なります)。

始めましょう…

さらに先に進むには、SSHアクセスプロトコルを使用して、オンサイトマシン(ホスト1)からリモートマシン(ホスト2)に接続します。 2台のマシン間にSSH接続をすでに設定しています。したがって、ホスト1端末から以下のコマンドを使用してホスト2に接続します。

$ ssh‘user_name’ @’IP_of_Host2’

ここで、「user_name」を接続先のホスト2のユーザー名に置き換え、「IP_of_Host2」はホスト2のIPアドレスです。以下の図を参照してください。

>


次に、Tcpdumpがキャプチャできるリモートマシンで使用可能なインターフェイスを確認します。これには、次のコマンドを使用します:

$ tcpdump --list-interfaces

出力例:

1.enp0s3 [Up、Running]
2.lo [Up、Running、Loopback]
3.any(すべてのインターフェースでキャプチャする疑似デバイス)[Up、Running]
4。 eno1 [Up]
5.bluetooth-monitor(Bluetooth Linux Monitor)[none]
6.nflog(Linux netfilter log(NFLOG)interface)[none]
7.nfqueue(Linux netfilterキュー(NFQUEUE)インターフェース)[なし]
8.bluetooth0(Bluetoothアダプター番号0)[なし]


ご覧のとおり、インターフェース「enpos3」が稼働しています。それでは、それをターゲットインターフェイスとして設定し、ここでtcpdumpコマンドを実行してみましょう。十分なパケットをキャプチャしたと感じたら、「Ctrl+c」を押してパケットキャプチャを終了します。コマンドは次のとおりです。

$ sudo tcpdump -s 65535 -i enp0s3 -w my_remote_capture.pcap


上記のコマンドでは、Tcpdumpで次のオプションを使用しています。

  1. -s:古いバージョンのTcpdumpカットオフパケットは68バイトまたは96バイトです。 「-s」オプションは、完全な長さのパケットをキャプチャするために使用されます。
  2. -i:リッスンするインターフェースを選択します。
  3. -w:キャプチャされた生のパケットを端末に表示するのではなく、ファイルに保存します。

キャプチャされたトラフィックは、「my_remote_capture.pcap」という名前のファイルに保存されます。次に、Wiresharkで分析するために、このファイルをホスト1に転送します。ファイルの転送には、「scp」コマンドを使用しています。ここでも、2台のマシン間で動作するように「scp」を構成しました。コマンド構文は次のとおりです。

$ scp my_remote_capture.pcap'ユーザー名'@'IP_of_remote_machine':

ここで、「username」はホスト1のユーザーの名前であり、「IP_of_remote_machine」はホスト1のIPでもあります。


オンサイトマシン(ホスト1)で、ファイルを受信したかどうかを確認します。この例では、ファイルを正常に受信し、以下に示すようにWiresharkを使用してファイルを開きます。


これがホスト1からのキャプチャファイルのスクリーンショットです:

キャプチャファイルの分析

上記のファイルに表示フィルターを適用してみましょう。 SSHを使用してホスト2に接続したため、SSHプロトコルの痕跡がいくつかあるはずです。表示フィルターに対応するテキストフィールドに「ssh」と入力します:


上の画像では、「SSH」プロトコルのパケットのみを確認できます。

まとめ…

おめでとうございます。ついに、マシンでリモートキャプチャを実行する方法を示しました。 TcpdumpをWiresharkと組み合わせる方法を見てきました。


Ubuntu
  1. VagrantとUbuntu12.10のRvmでのエラー?

  2. NvidiaGpuとUbuntu16.04の問題?

  3. tcpdumpでパケットをキャプチャする

  1. UbuntuにMySQLWorkbenchをインストールして使用を開始する

  2. ApacheとMySQLを使用したUbuntuLinuxへのWordPressのインストール

  3. Debian 9 / Ubuntu 16.04/17.10にWiresharkをインストールして使用する方法

  1. Linuxでtcpdumpコマンドを使用してパケットをキャプチャおよび分析する方法

  2. Ubuntu18.04とDebianにEasyEngineでWordPressをインストールする方法

  3. UbuntuでのAudacityによる録音と編集