このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

tcpdumpメモ

tcpdumpの説明では、http://www.wakhok.ac.jp/~kanayama/summer/02/site/node201.html がわかりやすかった。

表示のフィールド:

  1. タイムスタンプ 
  2. 送信ホスト名(IP アドレス).ポート番号
  3. '>'
  4. 受信ホスト名.ポート番号:
  5. フラグ
  6. シーケンス番号
  7. 'ack' ack番号
  8. win ウィンドウサイズ
  9. urgent フラグオプション

'-q' オプション指定時:

  1. タイムスタンプ 
  2. 送信ホスト名(IP アドレス).ポート番号
  3. '>'
  4. 受信ホスト名.ポート番号:
  5. プロトコル
  6. バイト数

プリミティブ と呼ばれる要素式。http://www.wakhok.ac.jp/~kanayama/summer/02/site/node201.html から引き写し。

  • dst host ホスト名
    指定した送信先のホスト宛のパケット
  • src host ホスト名
    指定した発信元のホストからのパケット
  • host ホスト名
    指定したホスト宛/からのパケット ; host の前にキーワード ip, arp, rarp をつけることが できる。
  • gateway ホスト名
    ホストを gateway として使用するパケット ; したがって、ホスト名で指定したルーターを通るパケットに対して真。
  • dst net ネットワーク・アドレス
    指定ネットワーク宛のパケット ; ネットワーク・アドレスは、例えば 202.11.100.1 のホストならば、 202.11.100 がネットワーク・アドレスとなる。
  • src net ネットワーク・アドレス
    指定ネットワークからのパケット
  • net ネットワーク・アドレス
    指定ネットワーク宛/からのパケット
  • dst port ポート番号
    TCP/UDP の指定したポート番号宛のパケット
  • src port ポート番号
    TCP/UDP の指定したポート番号からのパケット
  • port ポート番号
    TCP/UDP の指定したポート番号宛/からのパケット
  • ether broadcast
    イーサネット・ブロードキャスト ; ether は省略可。
  • ip broadcast
    IP ブロードキャスト ; all 1 および all 0 もチェックする。サブネットマスクも考慮してくれる。

要するに、原子論理式を構成する基本述語がプリミティブ。tcp などは単独で述語として使える;proto = tcp の意味。

プリミティブ(述語)への値の例:

IPアドレス/ホスト 192.168.1.1, 名前もOK
ネットワークアドレス 192.168.1.0/24, 192.168.1.0/255.255.255.0, 名前もOK
ポート番号 23, 54, 80, 110, 名前もOK
プロトコル tcp, udp, icmp

論理結合子は:

  • ! または not
  • && または and
  • || または or
  • '('と')'

オプションは(http://home.k05.itscom.net/aperuto/tcpdump.htmlから)

オプション 説明
-F (file) 条件式を file から読み込む。
-i (name) モニタリングするインタフェースを指定。-i ed0 や -i ppp -i loなど。
-n アドレスを名前に変換しない。これは IP アドレスだけでなく、ポート番号なども数字のまま出力する。
-w (file) ネットワークに流れるパケットをそのままファイルに保存する。
-r (file) これは前もって -w オプションなどで作成したファイルからパケットを読み込む。
-s (size) パケットから取り出すデータの長さ。-s 1600 なら1600バイト
-x パケットの中身を 16 進数で表示する。
-X パケットの中身を ASCII で表示する。これは大抵 16 進数も同時に表示する。