10月 182017
 

※TCP は詳しくないので間違いあるかも

発生していた問題

  • 2017/10/17のDMMメンテ後、Nekoxy を通した通信で osapi.dmm.com サーバーだけが応答しなくなった
    • 他のサーバーは問題ない
  • Nekoxy が利用している TrotiNet 単体でも発生する
  • 上流に Fiddler 等のプロキシを挟むと発生しない

影響

  • Nekoxy を利用していたアプリケーション全般で DMM のゲーム等ができなくなっていたかと
    • 提督業も忙しい!
    • 七四式電子観測儀
    • 回転母港
      など

何故発生するのか

  • osapi.dmm.com が複数の TCP パケットに分割された HTTP リクエストを正常に受け取ってくれないため
    • 上流に別のプロキシを挟むと、上流プロキシが Nekoxy に代わってサーバーと TCP おしゃべりするため、その実装がこの問題に触れていなければ通信障害は発生しない

Continue reading »

5月 272015
 

さて巷ではJVNVU#98282440: 「提督業も忙しい!」(KanColleViewer) がオープンプロキシとして動作する問題が話題ですが、FiddlerCore は何も考えないで実装すると恐らくこうしてしまうような仕様です。クソですね。。

そもそも何が問題なのか

とりあえず適当に FiddlerCore を使ったアプリケーションを立ち上げてみましょう。

FiddlerApplication.Startup(55555, FiddlerCoreStartupFlags.Default);

するとあら不思議、0.0.0.0:55555でListningされてしまいます。

C:\Windows\system32>netstat -a -b -n -o -p TCP

アクティブな接続

プロトコル  ローカル アドレス          外部アドレス        状態           PID
...(中略)...
  TCP    0.0.0.0:55555          0.0.0.0:0              LISTENING       6688
 [FiddlerTest.vshost.exe]

これではアプリが立ち上がってる間は外部からHTTPプロキシとして利用できてしまいます。
知らず知らずのうちに他所様への攻撃の踏み台にされて、ある日突然警察がやってくるなんてこともあるかもしれません。怖いですね。

で、どうすればいいかというと、127.0.0.1:55555でLisningするようにできればローカルプロセスしかアクセスできなくなるので、そう変更したいですね?
これはごく簡単で、AllowRemoteClientsfalseにしてやればOKです。

FiddlerApplication.Startup(55555
    , FiddlerCoreStartupFlags.RegisterAsSystemProxy
    | FiddlerCoreStartupFlags.ChainToUpstreamGateway
    | FiddlerCoreStartupFlags.MonitorAllConnections
    | FiddlerCoreStartupFlags.CaptureLocalhostTraffic);

Flagなので指定しなければOK。

C:\Windows\system32>netstat -a -b -n -o -p TCP

アクティブな接続

プロトコル  ローカル アドレス          外部アドレス        状態           PID
...(中略)...
  TCP    127.0.0.1:55555        0.0.0.0:0              LISTENING       7128
 [FiddlerTest.vshost.exe]

つまりFiddlerCoreStartupFlags.Defaultがイカンわけです。
でも FiddlerCore は Fiddler.exe のUI以外の部分を抜き出したものなわけですから、Fiddler.exe 自体がそういうもんだという可能性もあります。


参照: FiddlerCore – Fiddler Proxy Engine for your .NET Applications

ここで Fiddler.exe および FiddlerCore のデフォルト値を見てみましょう。

Continue reading »

7月 182012
 

※あまり詳しい事は調べてない。

内部httpサーバーが302responseを返した際に、Locationヘッダをhttpsに書き換えてくれないため、httpにリダイレクトされてしまう。

[squid-users] SSL rev proxy, redirector, 302 problems from Jesse Reynolds on 2003-12-03 (squid-users)

回避策は調べてない。

Squid3では’Front- End-Https: On’で対処可能な模様?