Linuxサーバでのパケットキャプチャを実施する場合に重宝する「tcpdump」でよく使うコマンドを現役エンジニアがまとめてみました。「tcpdump」自体たまにしか使わないのでオプションなどをすぐ忘れてしまうんですよね。 自分への備忘録的な意味も含めつつ書いていきます。
tcpdumpで使う事が多いコマンドをまとめる
用途別
▼IPを指定する場合
tcpdump host 192.168.100.1
▼ネットワークアドレスで指定する場合
tcpdump net 192.168.100.0 mask 255.255.255.0
▼ポート番号を指定する場合
tcpdump port 80
▼Wireshark解析用にファイルを保存する場合
tcpdump -s 0 -w [ファイル名]
-w [ファイル名]でWiresharkで読めるような形式で保存が出来るが、デフォルトのキャプチャ用バッファが小さく全てのデータを取る事が出来ないので、[-s 0]をつけて全てを取るようにしている。
▼ローテートしたファイルをgzipで固める場合
tcpdump host 1.1.1.1 -w /tmp/test.pcap -C 1 -z gzip
-z gzipを指定すると上記コマンドの場合は、1MB毎にローテートされたファイルをgzipで固める事が出来る。 なお実際にgzipで固めたらファイルサイズは8分の1ぐらいになった。
オプション一覧
-nn | 対象のIPやポート番号について名前に変換しない |
-i | キャプチャ対象のインターフェースを指定する |
-w | 生データでファイルに保存する。Wiresharkで見れる。 |
-s | キャプチャサイズの指定。0を付けると全てを対象とする。 |
-A | ASCII文字で表示 |
-X | 16進とASCII文字で表示 |
-G | ファイルを指定時間感覚でローテートする。 |
-C | 一定のファイルサイズでローテートする。 |
-p | プロミスキャスモードにしない。 |
-z | 作成したファイルに対してコマンドを実行できる。 |
最後に
お役に立てましたでしょうか? 本当はトラブルなど起きず、tcpdumpなぞ打たないことが望ましい(ToT)