【Linux】tcpdump ~パケットキャプチャ~

■ はじめに

 * ネットワークのキャプチャをとる
  => 思ってたより、構築も使い方も簡単だった。

■ 環境構築

* 今回の想定環境は、以下の通り。
 * OS : CentOS7

インストール

# インストール
sudo yum install tcpdump

# バージョン確認
tcpdump --help
Debian系の場合
# インストール
sudo apt-get install tcpdump

■ 使い方

# w : 出力ファイル名
sudo tcpdump host 127.0.0.1 -w dump.pcap

# ssh以外をキャプチャリング(not port 22)
sudo tcpdump -w dump.pcap not port 22

 => 出力ファイルを、Wireshark(以下の関連記事を参照)で開き、ダンプファイルを調査する
https://blogs.yahoo.co.jp/dk521123/31486925.html
sudo tcpdump -i eth1 port 8080

sudo tcpdump -i any port 8080

オプション

`オプション`説明備考
-i [Interface]インターフェースを指定any を指定すると全てのインタフェース
-w [file]キャプチャ結果を書き出す
https://qiita.com/tossh/items/4cd33693965ef231bd2a
http://itpro.nikkeibp.co.jp/article/COLUMN/20140512/556024/?rt=nocnt
http://blog.livedoor.jp/sonots/archives/18239717.html

使用上の注意

 * root権限で実行する
 * 出力ファイルの拡張子は「.pcap」にしといたほうがいい(Wiresharkで開くために)

トラブル

トラブル内容
 * tcpdumpコマンドを実行したところ、以下の「エラー内容」が表示され
   キャプチャが開始されない
エラー内容
tcpdump: WARNING: SIOCGIFADDR: nflog: No such device
tcpdump: NFLOG link-layer type filtering not implemented
解決案
https://centossrv.com/patio/centossrv.cgi?read=2898&ukey=0
より

[1] 「ip addr」を実行する
~~~~
1: enoxxxxxxxx: <BROADCAST,MULTICAST,UP,LOWER_UP> ... << 「enoxxxxxxxx」をメモっとく
 ...
~~~~

[2] 「sudo tcpdump -D」を実行する
~~~~
1.nflog ...
2.nfqueue ...
3.enoxxxxxxxx ... << 「enoxxxxxxxx」の番号「3」をメモっとく
 ...
~~~~

[3] 「-iオプション」で、手順[2]の番号を指定する(キャプチャ開始されるはず)
~~~~
$ sudo tcpdump -i 3 host 127.0.0.1 -w dump.pcap
tcpdump: listening on enoxxxxxxxx, link-type EN10MB (Ethernet), capture size 65535 bytes
~~~~


関連記事

Wireshark ~パケットキャプチャ~

https://blogs.yahoo.co.jp/dk521123/31486925.html