Linuxでネットワークのトラブルシューティングやセキュリティ診断を行う際、強力なツールとなるのが「tcpdump」です。tcpdumpは、ネットワーク上を流れるパケットをリアルタイムでキャプチャし、中身を確認できる便利なコマンドラインツールです。GUIに頼らずに軽量で高性能な解析ができるため、システム管理者やセキュリティエンジニアには欠かせません。本記事では、tcpdumpの基本的な使い方から応用的なフィルタリング方法、ログ保存のテクニックまでを詳しく解説します。初心者の方でも読みながら実践できる内容を心がけていますので、ぜひ参考にしてください。
tcpdumpは、UNIX系のOSで利用できるネットワークパケットキャプチャツールです。コマンドラインから簡単にネットワークインターフェースを監視し、流れているパケットの情報を表示することができます。トラブルシューティング、セキュリティ調査、ネットワークの挙動確認など、幅広い用途に対応しており、シンプルながら非常に強力なツールです。
tcpdumpの大きな特長は、以下の通りです。
tcpdumpは多くのLinuxディストリビューションで標準または簡単にインストールできます。
多くのLinux環境ではtcpdumpがデフォルトでインストールされている場合もありますが、入っていない場合は以下のコマンドでインストールできます。
sudo apt update
sudo apt install tcpdump
sudo yum install tcpdump
sudo pacman -S tcpdump
インストール後、tcpdump --version
でバージョンを確認できます。
tcpdumpを実行するには、管理者権限(root権限)が必要です。以下は最も基本的な使用例です。
sudo tcpdump
このコマンドで、デフォルトのネットワークインターフェースに流れるすべてのパケットが表示されます。ただし、情報量が多いため、以下のようにオプションをつけて絞り込むのが一般的です。
利用可能なインターフェースを確認する:
tcpdump -D
特定のインターフェース(例:eth0)でキャプチャ:
sudo tcpdump -i eth0
指定した数のパケットだけをキャプチャ:
sudo tcpdump -c 10 -i eth0
tcpdumpの強みは、フィルター機能にあります。以下のように条件を指定して、必要なパケットだけを表示することができます。
特定の送信元または宛先IP:
sudo tcpdump host 192.168.1.10
送信元IPだけを指定:
sudo tcpdump src 192.168.1.10
宛先IPだけを指定:
sudo tcpdump dst 192.168.1.10
特定のポート通信(例:HTTPの80番):
sudo tcpdump port 80
送信元または宛先ポートを指定:
sudo tcpdump src port 22
sudo tcpdump dst port 443
sudo tcpdump tcp
sudo tcpdump udp
sudo tcpdump icmp
複数条件の組み合わせ(AND/OR/NOT)も可能です:
sudo tcpdump 'tcp and port 80 and src 192.168.1.10'
tcpdumpの出力結果は1行ごとに1つのパケット情報を示します。
例:
15:02:18.123456 IP 192.168.1.10.56234 > 93.184.216.34.http: Flags [S], seq 123456789, win 29200, options [mss 1460], length 0
この行を分解すると以下の意味になります。
パケットを後から解析したい場合は、ファイルに保存しておくことも可能です。
sudo tcpdump -i eth0 -w capture.pcap
この.pcap
ファイルは、WiresharkなどのGUIツールで開くこともできます。
tcpdump -r capture.pcap
フィルターをつけて読み込むこともできます。
tcpdump -r capture.pcap port 80
sudo tcpdump -i eth0 port 53
sudo tcpdump -i eth0 port 443
sudo tcpdump -i eth0 and not src net 192.168.0.0/16
オプション | 内容 |
---|---|
-i | インターフェース指定 |
-c | キャプチャするパケット数 |
-w | ファイルに書き出し |
-r | 保存ファイルの読み込み |
-n | ホスト名を解決しない(高速) |
-nn | ホスト名+ポート名も解決しない |
-v, -vv | 詳細な表示(vの数で情報量が変わる) |
tcpdumpは非常に強力なツールである反面、通信内容を傍受することもできるため、使用には十分な注意が必要です。権限のあるユーザーのみが利用するべきであり、不要なデータの保存や共有は控えるべきです。また、社内ネットワークでの利用はポリシーを遵守しましょう。