NTPプロトコルのdump内容を見てみる
前回「パケットキャプチャ方法の調査中 - maru.cc@はてな」の続き。
tsharkコマンドを使用してのパケットキャプチャ。
- dオプションを指定していたが、フィルタをするには、-zオプションのようだ。
[root@host1]# /usr/sbin/tshark -z conv,udp,ntp&&ip.addr==192.168.0.82
これで、192.168.0.82のサーバとのやり取りのみキャプチャできる。
しかし、SSHなどのほかのポートでのやり取りも全て保存されてしまう。
細かい指定方法もあるようだが、いまいちよくわからない。
次に、-xオプションを付けることで、送受信の内容を表示できる。
そのまま標準出力に出してしまうと、すごい勢いで流れていってしまうので、ファイルに保存してみる。
ファイルに保存するのは -w
サーバ1(192.168.0.82)で、NTPサーバを動かしつつ、パケットキャプチャ
[root@host1]# /usr/sbin/tshark -w log -x -z conv,udp,ntp&&ip.addr==192.168.0.82
サーバ2(192.168.0.237)で、ntpdateコマンドを実行してみる
[root@host2]# /usr/sbin/ntpdate -p1 -s 192.168.0.82
で、作成できたlogをとりあえず、lessで開いてみる。が、バイナリっぽいです。
tsharkで作成したファイルは -rオプションで読み込むことが出来る。
[root@host1]# /usr/sbin/tshark -r log | less
これだと、IP間やり取りの記録しか出てこない。読み取り時も-xオプションが必要なようです。
[root@host1]# /usr/sbin/tshark -r log -x | less
結果。
なんかMACアドレスっぽいのが出ていますが、ローカルサーバなので、いいかなーと思うのですが、どうなんでしょう?
34 3.559788 192.168.0.237 -> 192.168.0.82 NTP NTP client 0000 00 0c 29 ea 50 20 00 08 74 dc f4 a4 08 00 45 00 ..).P ..t.....E. 0010 00 4c 00 00 40 00 40 11 b8 11 c0 a8 00 ed c0 a8 .L..@.@......... 0020 00 52 00 7b 00 7b 00 38 69 bb e3 00 04 fa 00 01 .R.{.{.8i....... 0030 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0050 00 00 cb 74 7f f2 fc 38 e2 9f ...t...8.. 35 3.560114 192.168.0.82 -> 192.168.0.237 ICMP Destination unreachable (Port unreachable) 0000 00 08 74 dc f4 a4 00 0c 29 ea 50 20 08 00 45 c0 ..t.....).P ..E. 0010 00 68 8e 08 00 00 40 01 69 3d c0 a8 00 52 c0 a8 .h....@.i=...R.. 0020 00 ed 03 03 7f d6 00 00 00 00 45 00 00 4c 00 00 ..........E..L.. 0030 40 00 40 11 b8 11 c0 a8 00 ed c0 a8 00 52 00 7b @.@..........R.{ 0040 00 7b 00 38 69 bb e3 00 04 fa 00 01 00 00 00 01 .{.8i........... 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cb 74 ...............t 0070 7f f2 fc 38 e2 9f ...8..
このデータを見つつ、RFCの仕様を見てみよう。
http://tools.ietf.org/html/rfc1305
http://tools.ietf.org/html/rfc2030
このあたりかな?