Hatena::ブログ(Diary)

今日の更新はありません

2010-09-15

パケットの気持ち(透過型プロキシの有無を調べる)

23:30

パケットの気持ちになって透過型プロキシの有無を調べたい!

まずは透過型プロキシの復習.

f:id:ogata-y:20110207222116j:image

ユーザはウェブサーバにアクセスしているつもりでも,中継ルータが強制的にプロキシサーバに向けてしまう.

つまり,ウェブサーバだと思っていた通信相手は実はプロキシサーバだったんだよ!!!

ってことが観測できれば私の勝ち.

ここでユーザから送信されるパケットの気持ちになって考えると,ウェブサーバ(破線)かプロキシサーバ(実線)との通信で何が違うかというと,サーバまでのホップ数が違う.ホップ数が違うってことは,サーバから戻ってくるのパケットACKとか)のTTLが違うはず!!!

サーバからのパケットTTLを予想:

という予想の元で,やってみた.

環境

上図の環境でやってみた.

ウェブアクセスは

hping3 -c 1 -S -p 80 www.freebsd.org

でやった.最低限のパケットキャプチャで済むので,キャプチャ解析がやりやすい.

まずはプロキシサーバがある場合

f:id:ogata-y:20100915232344j:image

TTL=62で予想通り!!!

続いてプロキシサーバがない場合

f:id:ogata-y:20100915232345j:image

TTL=62よりずっと小さいので,こちらも予想通り!!!

ちなみにプロキシサーバを介さないであろう icmp のパケットも覗いてみた.

f:id:ogata-y:20100915232343j:image

プロキシサーバが無い場合と同じTTL.言い換えると,サーバから来るicmpパケットTTLと,ウェブアクセスでサーバから来るパケットTTLが一緒だとプロキシサーバが無い.違う値だとあるってことがわかる.


まとめ

pingあたりを打って,echo-replyTTLを調べた後,適当にウェブアクセスをしてサーバから来るパケットTTLをみて,同じならプロキシサーバ無し,違うならプロキシサーバあり.

トラックバック - http://d.hatena.ne.jp/ogata-y/20100915/1284561038