#author("2025-04-15T05:32:45+00:00","default:iseki","iseki")
#author("2025-04-15T05:33:18+00:00","default:iseki","iseki")
* Webプロキシ機能  
** 帯に短し襷に長し

*** [[Second Life]] Viewer のWEBプロキシ機能
 Second Life の Viewer(v1.19) のWEBプロキシ機能はかなりいい加減で,用途も限定的です(たぶん ).
 ログイン時には指定されたWEBプロキシを使用しますが,その後の CAPsの通信では相変わらずSIMサーバと直接通信を行います.
 また,MediaURL(ParcelProperties)での(土地に関連した)メディアデータの転送では WindowsのIEのプロシキ設定(システムの設定?)で指定したプロキシサーバを使用しているようです(MacOS, Linuxの場合は不明).
 ただし,ログイン画面や In Worldで外部のWEBページを見る場合には ViewerのWEBプロキシ設定を使用している様子で,この場合は有効のようです.


*** [[sl_relay]] の対応
 いずれにせよ,Relay Server([[sl_relay]])では,Viewerで WEBプロシキが設定された場合に,その対応を行う必要があります.
 なぜなら,[[sl_relay]]はセキュリティ機能として,一つの中継プロセスは同一のIPアドレス,ポート番号のViewerからの接続しか許可しないからです.Viewer側で WEBプロキシの設定をした場合,ログイン時の接続(プロキシからの接続)とその後のHTTP(S)のCAPsの接続(Viewerからの接続)はIPアドレスが異なるため,中継プロセスがViewerからの接続を拒否し,その結果,通信が遮断されます.
 この問題を回避したい場合には,[[sl_relay]] を -xp オプションで起動し,同時に Viewerで指定したWEBプロキシサーバのFQDNまたはIPアドレスとポート番号を続けて指定します(FQDN:port または IP:port の形式).
 WEBプロキシサーバの指定は,設定ファイルの [[ExternalWebProxy>..​/ExternalWebProxy]]の項目で行っても構いません.オプションと設定ファイルの両方でWEBプロキシサーバを指定した場合は,設定ファイルの方が優先されます.
 WEBプロキシサーバの指定は,設定ファイルの [[ExternalWebProxy>sl_relay/ExternalWebProxy]]の項目で行っても構いません.オプションと設定ファイルの両方でWEBプロキシサーバを指定した場合は,設定ファイルの方が優先されます.

 -xp オプションで [[sl_relay]] を起動し,Webプロシキサーバを指定した場合は,中継プロセスに於いて一度だけ接続 IPアドレスとport番号がWEBプロキシサーバのそれから変更されます.これにより,ログイン処理後にViewerから接続要求が来た場合は,通信対象のIPアドレスとport番号が記憶し直されて,正常に通信を続ける事が可能になります.


*** セキュリティ
 一方,この方法では,正規のViewerよりも先に別のプロセスが中継プロセスに接続をかけると,その別のプロセスが中継プロセスの通信対象となり,正常なViewerが通信を行えなくなります.
 中継プロセスの接続を乗っ取ったプロセスがSIMサーバと通信を続けるには,事前にログイン時の情報を盗聴している事が必要条件になりますが,Viewer <--> sl_relay でHTTPSを使用しない場合には,このリスクが高くなります.
 この問題も含め,サイト内の全てのユーザが信頼できるものでない限り,できるならば,Viewer <--> Relay Server間の通信では HTTPSを使用することをお勧めします.


*** 内蔵WEBプロキシ機能
 自前で squidなどのWEBプロキシを立ち上げることが困難な場合や,サイト内の既にあるプロキシが認証を要求するような場合は,Viewerが外部のWEBプロキシを利用することは困難となります(Viewer(v1.19.x)は認証を必要とするWEBプロキシには対応していない模様).

 そこで,sl_relay では -ip オプションで内臓のWEBプロキシを作動させることができます.
 ただし,内部プロキシ機能を使用すると新たな問題が発生する場合があります.それは,上記にあるようにサイト内部のプロキシが認証を必要としている場合です(例えば情報大).この場合,sl_relay の内蔵WEBプロキシは,認証が必要なプロキシのバイパスにされる恐れがあります.

 これを防止するには -ipxオプションを使用します.-ipxオプションで起動された場合,内蔵WEBプロキシは制限モードで実行されます.制限モード下では,設定ファイルの Proxy_Allow_File項目に設定されたファイルに書かれているサイトにしか接続が許可されません.接続先が限定されますが,サイトのセキュリティポリシーとのバランスを考えて使用してください.
 Proxy_Allow_Fileのデフォルトは /usr/local/etc/sl_proxy/proxy_dist.allow​です.書式は [[Hosts_Allow_File>sl_proxy​/Hosts_Allow_File]] と同じです.


*** 実際の設定
 では,どのような場合に ViewerのWEBプロキシの設定が必要なのでしょうか?

+ 使用しているPCがファイアウォール内にあり,直接外部(インターネット)のWEBページを見ることができない.
+ ログイン画面で,外部(インターネット)のWEBページ(通常は Lindenlabのページ)を表示したい.
+ In WorldでWEBページを表示させたい.

 上記の場合は Viewerの WEBプロキシを設定する必要があります.さらに

サイト内のプロキシは認証を必要とする.または サイト内に適当なWEBプロキシが存在しない.
の場合には,[[sl_relay]] の内蔵プロキシ機能を(必要なら制限モードで)使用します.

 上記の場合,Windowsを使用しているなら,IEのプロキシも,Viewerのプロキシと同じにすると良いでしょう.このようにすれば,MediaURLの指定による(土地に関連付けられた)ビデオやオーデオのデータもプロキシ経由とすることが可能です.ただし制限モードの場合は,IEは特定のページしか見られなくなります.

 この辺の調整は,個人個人の環境によって千差万別となりますので,よく考えて自分の環境にあった方法を採用してください.


*** 他の手法
 MediaURLのデータに関しては,-mmオプションで [[sl_relay]] 自身にデータを中継させることも可能です.ただしこの場合は,状況によっては副作用(土地のMediaURLが勝手に書き換わるなど)が発生する場合があります. 

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS