【超便利】tcpdumpコマンドでネットワークトラフィックを監視

※本サイトにはプロモーション・広告が含まれています。

(最終更新日:2023年6月)

✔このような方へ向けて書かれた記事となります

「tcpdumpコマンドの使い方が知りたい」
「tcpdumpコマンドでできることを詳しく知りたい」
「tcpdumpコマンドの具体的な使用例を見たい」

✔当記事を通じてお伝えすること

  • tcpdumpコマンドの基本概念
  • tcpdumpコマンドの使用方法と応用テクニック
  • tcpdumpコマンドの実践的な例

当記事では、tcpdumpコマンドの基本から応用まで、実践的な例を交えながらわかりやすく解説していきます。

ぜひ最後までお読みいただき、tcpdumpコマンドの活用をマスターしましょう。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

tcpdumpコマンドの概要と主な用途について

tcpdumpコマンドの基本的な特徴や重要性を解説します。

  • tcpdumpコマンドの概要
  • tcpdumpの主な用途と重要性

tcpdumpコマンドの概要

tcpdumpは、ネットワークパケットをキャプチャし分析するためのコマンドラインツールです。

パケットを「捕まえ」、それを人間が読める形式で表示することが可能。

それはちょうど道路に設置されたカメラが車の通行を記録するようなものです。

このアナロジーを使えば、ネットワーク上を流れる情報パケットが「車」で、tcpdumpがその「カメラ」であると言えます。

tcpdumpの主な用途と重要性

tcpdumpの主な用途は、ネットワークトラフィックの分析とデバッグです。

例えば、あるネットワークのトラフィック量が異常に多いとき、tcpdumpはその原因を突き止めるのに役立ちます。

また、セキュリティ監視やパフォーマンス分析など、様々なシナリオで活用できます。

tcpdumpコマンドの基本実行方法

tcpdumpコマンドの基本的な使い方を見ていきます。

  • インストールと実行
  • シンプルな使い方

インストールと実行

大抵のLinuxディストリビューションでは、tcpdumpはデフォルトでインストールされています。

もしインストールされていなければ、たとえばUbuntuでは以下のコマンドでインストール可能です。

sudo apt-get install tcpdump

シンプルな使い方

基本的な使用方法はこちら。

tcpdump -i [インターフェース]

特定のネットワークインターフェースからのパケットをキャプチャします。

インターフェース名は、ip address showなどのコマンドで調べられます。

こちらは「eth0」インターフェースでの例です。

tcpdump -i eth0

これにより、そのインターフェースに流れる全てのパケットが表示されます。

tcpdumpオプションとフィルタリングの紹介

tcpdumpのオプションとパケットフィルタリングの方法を見ていきます。

  • オプションの概要
  • 使用例で学ぶフィルタリング

オプションの概要

tcpdumpには多くのオプションがあります。

これらのオプションを使うことで、出力の詳細度を調整したり、特定のパケットだけをフィルタリングしたりできます。

例えば “-v” オプションは出力を詳細にし、”-nn” オプションはIPアドレスとポート番号を数字で表示します。

使用例で学ぶフィルタリング

tcpdumpの強力なフィルタリング機能を活用することで、特定の情報だけを表示できます。

たとえば、特定のIPアドレスからのパケットだけを表示したい場合は以下のとおり。

tcpdump src 192.0.2.1

もしくは、特定のポートを使用するパケットだけを表示する場合はこちらです。

tcpdump port 80

tcpdumpコマンドのオプション一覧

tcpdumpの主要なオプションはこちらです。

オプション名説明
-iインターフェースを指定します。デフォルトでは最初に見つかったアクティブなインターフェースが使用されます。tcpdump -i eth0
-n名前解決を無効にします。これにより、ホスト名、ポート名、ユーザー名の表示を省略し、出力を速くします。tcpdump -n
-v, -vv, -vvv詳細な出力を提供します。vを増やすほど、より詳細な情報が表示されます。tcpdump -vvv
-c指定された数のパケットをキャプチャした後でtcpdumpを終了します。tcpdump -c 10
-sキャプチャするパケットのサイズを指定します。デフォルトでは最初の68バイトだけがキャプチャされます。tcpdump -s 500
-w指定したファイルにパケットデータを書き込みます。これは後で分析するために使用されます。tcpdump -w output.pcap
-r指定したファイルからパケットデータを読み込みます。これは -w オプションで保存されたデータの分析に使用されます。tcpdump -r output.pcap
-Xそれぞれのパケットのデータを16進数とASCIIで表示します。tcpdump -X
-fIPアドレスを全て数字で表示します。tcpdump -f
port特定のポートに関連するパケットだけを表示します。tcpdump port 80

これらのオプションは組み合わせて使用することができ、より具体的なネットワークトラフィックのフィルタリングや分析が可能になります。

tcpdumpを活用する具体的なケース

ここでは、tcpdumpを活用した具体的なケースを見ていきます。

  • パケットキャプチャを保存し解析
  • 特定のホストやプロトコルのトラフィックを抽出
  • キャプチャの詳細レベルを変更して状況対応

パケットキャプチャを保存し解析

tcpdumpを使ってパケットキャプチャを保存することで、後からゆっくりと分析することができます。

これは “-w” オプションを使って実現します。

tcpdump -w output.pcap

キャプチャしたパケットをoutput.pcapという名前のファイルに保存します。

特定のホストやプロトコルのトラフィックを抽出

特定のホストやプロトコルのトラフィックだけを抽出することも可能です。

指定したホストとの通信だけが表示する方法はこちら。

tcpdump host 192.0.2.1

ICMPプロトコルを使った通信だけが表示するのは以下のとおりです。

tcpdump icmp

キャプチャの詳細レベルを変更して状況対応

tcpdumpの出力は、使用するオプションにより詳細度を変更できます。

例えば、”-v” オプションをつけるとより詳細な情報が出力され、深いレベルのトラフィック解析が可能になります。

逆に、”-q” オプションを使用すれば、出力は最小限になり、大量のトラフィックを一望するのに適しています。

tcpdumpで実現するネットワークトラブルシューティング

次に、tcpdumpを用いてどのようにネットワークトラブルシューティングが行えるのか、その方法を紹介します。

  • パフォーマンス問題の調査
  • セキュリティ上のリスク分析

パフォーマンス問題の調査

tcpdumpは、ネットワークパフォーマンスの問題を調査するための強力なツールです。

遅延やパケットロスなどの問題が発生した場合、tcpdumpでパケットキャプチャを行うことで、問題の原因を特定する手がかりを得られます。

手順例はこちらです。

  1. パケットキャプチャの開始
  2. 問題の発生
  3. パケットキャプチャの停止
  4. パケットデータの分析

パケットキャプチャの開始

問題が発生しているネットワークインターフェースでtcpdumpを実行します。

例えば、eth0インターフェースでのパケットキャプチャを行う場合、以下のようなコマンドを使用しましょう。

tcpdump -i eth0 -w output.pcap

このコマンドは、eth0インターフェースのトラフィックをキャプチャし、それをoutput.pcapファイルに書き込みます。

問題の発生

通常は、問題が発生するタイミングを予測することは難しいため、一定期間パケットをキャプチャし続けます。

パケットキャプチャの停止

Ctrl+Cを押すことで、パケットキャプチャを停止できます。

パケットデータの分析

output.pcapファイルに保存されたパケットデータを分析します。

これにはtcpdump自体またはWiresharkなどのGUIベースのネットワーク分析ツールが使えるでしょう。

たとえば、以下のコマンドでパケットデータを表示します。

tcpdump -r output.pcap

問題の特定

パケットデータを見て、パケットロスや遅延が発生しているかどうかを確認します。

パケットロスの場合、送信されたパケットが宛先に到達していないか、または応答が送信元に戻ってこないことが確認できます。

遅延の場合、特定のパケットのRTT(Round Trip Time)が通常よりも大幅に長いことが確認できます。

セキュリティ上のリスク分析

tcpdumpを使って不審な通信を検出できます。

セキュリティ上のリスクを分析するための一般的な手順は次のとおりです。

  • パケットキャプチャの開始
  • パケットキャプチャの停止
  • パケットデータの分析
  • 不審な通信の検出

パケットキャプチャの開始

tcpdumpを使用して、全てのネットワークインターフェースまたは特定のインターフェースでパケットキャプチャを開始します。

この例では、eth0インターフェースでキャプチャをおこないましょう。

tcpdump -i eth0 -w suspicious.pcap 

eth0インターフェースでのネットワークトラフィックがすべてsuspicious.pcapファイルに保存されます。

パケットキャプチャの停止

Ctrl+Cを押してパケットキャプチャを停止します。

または、あらかじめ -c オプションを使用して、特定の数のパケットをキャプチャした後で停止も可能です。

パケットデータの分析

保存したパケットデータ(suspicious.pcap)を分析します。

以下のコマンドを使って読み込めます。

tcpdump -r suspicious.pcap

WiresharkのようなGUIツールを使うことで、パケットデータをより詳細に視覚的に分析することも可能です。

不審な通信の検出

分析する際には以下のような項目に注意を払います。

  • 未知のIPアドレスからの通信: もしシステムが未知のIPアドレスと頻繁に通信している場合、それは不審な活動の兆候である可能性があります。
  • 通常とは異なるポートの使用: 通常とは異なるポートや、一般的に攻撃に使用されるポート(例えば、TCP 4444やUDP 5060など)での通信がある場合、それは問題の可能性があります。
  • 多数のICMPトラフィック: 通常以上に多いICMP(Internet Control Message Protocol)パケットが見つかる場合、それはネットワークスキャンやDoS攻撃の可能性があります。
  • 多数のARPリクエスト: 多数のARP(Address Resolution Protocol)リクエストは、ARPスプーフィング攻撃の兆候である可能性があります。
  • 予期しないプロトコルの使用: 予期しないプロトコル(例えば、システムが通常

まとめ:tcpdumpコマンドの魅力とその活用による効果

当記事でお伝えしてきたことは以下のとおり。

  • tcpdumpコマンドは、初心者にも取り組みやすいツール
  • tcpdumpコマンドには、豊富なオプションとフィルタリング機能がある
  • tcpdumpコマンドにより、効率的なネットワーク管理やトラブルシューティングが可能

tcpdumpの直感的なコマンドラインインターフェイスのおかげで、初心者でも簡単に取り組めます。

リアルタイムにネットワークを監視し、問題が発生した際にはすぐに対処する。

これにより、ネットワークの健全性を維持し、ダウンタイムを最小限に抑えることができるでしょう。

これがtcpdumpを学び、使いこなす大きな動機となるでしょう。

タイトルとURLをコピーしました