[Ultramonkey-l7-develop 98] Re: [PATCH] cinsert モジュールの X-Forwarded-For 対応パッチ

Zurück zum Archiv-Index

Shinya TAKEBAYASHI makot****@kanon*****
2007年 11月 23日 (金) 18:21:03 JST


田沼 様


  竹林です.
  お疲れ様です.
  
> プロキシを多重で経由した場合などに、全てのIPアドレスを
> 残すためだと思いますが、RFC のどこで定義されているのかが
> 見つかりません…。

  X-Forwarded-For をはじめ,X で始まるヘッダはローカル拡張ヘッダであって
RFC には明記されていません.
  Squid で付けていて,それが慣例的に広まった・・・と思っています.

  MUA がよく付ける X-Mailer も,RFC には定義されていませんし.
  もちろん X-Moe なんてのもありません.
# X-Mailer は RFC2076 には Non Internet Standard として載っているだけで
# 詳細については解説していません
  
  
  クライアントからのリクエスト中にすでに X-Forwarded-For がある
場合のことは,考慮する必要がありますね.
  Cisco のサイトにある情報 [1] によると,プロクシを通過するごとに
「後ろに追記」されていくようです.

  たとえば Client - Squid - UM - RS とある場合は,X-Forwarded-For は
「X-Forwarded-For: Client, Squid」 となるみたいですね.

  [1] http://www.cisco.com/japanese/warp/public/3/jp/service/manual_j/cnw/acns/acnscmd/chapter15/8091_01_15.shtml
  
  
  Squid をフォワードプロクシとして使っている場合,大抵は
実クライアントの IP アドレスは教えたくない(X-Forwarded-For を付けない)
場合が多いでしょうから,実装のプライオリティは低いかと思います.
  ただ,リバースプロクシが間に挟まれている場合などが考えられ,
すべての場合で不要かと言われればそうでもない気がするので,
時間があるときに実装してみます.


> あと、X-Forwarded-For と似たようなヘッダフィールドとして
> Via がありますので、こちらについても実装の必要があるのか
> 検討したいですね。

  Via は最後に通ったプロクシの情報を入れるところですね.
  Squid では IP アドレスやポート番号,バージョン情報を入れて
返してくれるようですが,LB の場合はあまり必要ない気がします.

  どのみち LB 通過後の src ip は LB になるわけですから,
Via に LB の IP アドレスが入っていても,嬉しいことは少ないかな,と.

  Apache 側でもクライアントの IP アドレスに LB が入っていて,
X-Forwarded-For に実クライアントの IP アドレスが入っているので
どちらの IP アドレスもログに残すことができます.

----------------------------------------------------------------
Shinya TAKEBAYASHI

E-mail(Office) : takeb****@nttco*****
E-mail(private): makot****@kanon*****
GPG ID : FFD20D1F
GPG FP : 7B5B E0FC B785 7457 683C  47D6 5564 DDDD FFD2 0D1F
 CC FP : 7456 70EE 0A68 BC95 B1FC  F78F C6A9 3E0E F798 A218
----------------------------------------------------------------



*** Kouhei TANUMA wrote in message <20071****@nttco*****
>
*** Subject: [Ultramonkey-l7-develop 93] Re: [PATCH] cinsert モジュールの X-
Forwarded-For 対応パッチ
*** Date:    Wed, 21 Nov 2007 18:07:48 +0900
> 竹林 様
> 
> 田沼です。
> 
> X-Forwarded-For のパッチいいですね。
> たしか squid では、X-Forwarded-For が既に存在する場合に、
> 
> X-Forwarded-For: client-ip, old-x-forwarded-for-data
> 
> のようにしていたと思います。(順番が逆かも…)
> プロキシを多重で経由した場合などに、全てのIPアドレスを
> 残すためだと思いますが、RFC のどこで定義されているのかが
> 見つかりません…。
> 
> あと、X-Forwarded-For と似たようなヘッダフィールドとして
> Via がありますので、こちらについても実装の必要があるのか
> 検討したいですね。
> 
> 
> On Tue, 20 Nov 2007 04:14:37 +0900
> Shinya TAKEBAYASHI <makot****@kanon*****> wrote:
> 
> > 竹林です.
> > お疲れ様です.
> > 
> > 
> >   以前から懸案していたことですが,リアルサーバにクライアントの
> > IP アドレスを渡せるようにした方が良いですね.
> > 
> >     http://bcube.jp/blog/?p=3
> >   
> >   こちらの方が L7-LB を導入しようとして,結局 Pound に
> > 落ち着いているようです.
> > 
> >   X-Forwarded-For ヘッダにクライアントの IP アドレスを放り込む
> > ようにすれば解決できそうですね.
> > 
> >   ・・・という訳で,l7vsd-1.0.0-0 の cinsert で X-Forwarded-For を
> > 入れるパッチを作りました.
> >   Set-Cookie を入れる関数を流用しているので,コード上は綺麗では
> > ありませんが,とりあえず動きます.
> > 
> >   リクエストヘッダの最後尾に X-Forwarded-For: 192.168.0.2 のように
> > クライアントの IP アドレスがくっつくので,リアルサーバの Apache で
> > このフィールドを出力するように Custom Log の設定をすることで
> > クライアントの IP アドレスも記録できるようになります.
> > 
> >   自宅の環境ではとりあえず動いていて,Apache にクライアントの
> > IP アドレスを記録させることも出来ています.
> > 
> >   少し時間をとって検証してみたいですね.
> > ----------------------------------------------------------------
> > Shinya TAKEBAYASHI
> > 
> > E-mail(Office) : takeb****@nttco*****
> > E-mail(private): makot****@kanon*****
> > GPG ID : FFD20D1F
> > GPG FP : 7B5B E0FC B785 7457 683C  47D6 5564 DDDD FFD2 0D1F
> >  CC FP : 7456 70EE 0A68 BC95 B1FC  F78F C6A9 3E0E F798 A218
> > ----------------------------------------------------------------




Ultramonkey-l7-develop メーリングリストの案内
Zurück zum Archiv-Index