Solarisでパケットキャプチャ(tcpdump)




ネットワークを管理する中で実際の通信でどのようなパケットが流れているかを
知りたいことがよくある

ここでは、「tcpdump」を使ってパケットキャプチャする

まずは、「tcpdump」をインストールする
URL:http://www.sunfreeware.com/からパッケージをダウンロードする
ダウンロードしたら、解凍して
# pkgadd -d tcpdump-3.9.4-sol8-sparc-local
(Solaris8)

「tcpdump」を使う
# tcpdump -vvi hme1 host 1.1.1.1 and ! port 23
これで標準出力にキャプチャしたパケットが出力される

オプションの意味としては、
「i」・・・キャプチャするインターフェースの指定
「vv」・・・取得する情報の詳細度合い。ほかにも「v」、「vvv」がある。多い方が詳細。
「host 1.1.1.1」・・・送信元あるいは送信先が1.1.1.1
「and」・・・条件式の結合。A and B・・・AかつB。orも使用できる。
「!」・・・続く表現を否定。notでも可。
「port 23」・・・TCPあるいはUDPで送信元あるいは送信先のポートが23
つまり、telnet以外で1.1.1.1がやり取りした通信をキャプチャしている

出力をファイルに保存する場合は、
# tcpdump -vvi hme1 "host 1.1.1.1 and ! port 23" > /tmp/test.txt
テキストファイルができる

上記のコマンドでパケットの流れは分析することができるが、
次の段階としてデータの中身なども分析したい

そこで、使用するのが「ethereal」

まずは、「ethereal」で分析できるようにデータを取得する必要がある
# tcpdump -vvi hme1 -axs 512 -w /tmp/test.cap host 1.1.1.1 and ! port 23
作成された/tmp/test.capは「ethereal」で分析することができる
テキストファイルではない

「ethereal」を使わずにこのファイルを見たい場合には
# tcpdump -r /tmp/test.cap