■ はじめに
tcpdumpコマンドに関するメモ。
【1】tcpdumpコマンド
* ネットワークパケットの内容を確認するツール => ネットワークのキャプチャをとることができる => 思ってたより、構築も使い方も簡単だった。
【2】環境構築
* 今回の想定環境は、以下の通り。 * OS : CentOS7
1)インストール
# インストール sudo yum install tcpdump # バージョン確認 tcpdump --help
Debian系の場合
# インストール
sudo apt-get install tcpdump
【3】使い方
# 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
1)オプション
オプション | 説明 |
---|---|
-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
参考文献
http://qiita.com/tossh/items/4cd33693965ef231bd2a
https://www.softel.co.jp/blogs/tech/archives/5257
関連記事
conntrackコマンド
https://dk521123.hatenablog.com/entry/2017/07/03/233336
Wireshark ~パケットキャプチャ~
https://dk521123.hatenablog.com/entry/2013/04/18/234813