Second Life にアクセスするための企業内ファイアウォールの設定方法

== 概要 ==
この記事では、イントラネットの中で Second Life ビューワ (クライアント) を使えるようにするファイアウォールの設定方法を解説します。これはネットワーク管理者やその他ネットワークセキュリティの担当者向けに書かれています。
ファイアウォールはネットワークセキュリティプログラムの基本コンポーネントです。「最小権限の法則(principle of least privilege)」に従って、ファイアウォールはサポートするネットワークアプリケーションのみが企業のイントラネットと公開ネットワークの間を通れるように制限をかけます。このため、ファイアウォールは基本的に日常使うアプリケーション、Domain Name Service (DNS)、電子メール、ウェブブラウズが通れるように設定されています。しかし、Second Life は通常使用しないポートをたくさん使用しており、これらのポートはほとんどのファイアウォールがデフォルトでブロックしています。
=== ボイスチャット ===
ボイスチャットは、Second Life そのもののように、「ゼロコンフィグレーション(zero configuration)」で動くようになっており、ほとんどのファイアウォールでは動作するはずです。ポート 5060 の SIP 接続がダメだった場合 (ルーターが VoIP サービスを自分で提供するようになっているのかもしれません) 、ビューワは自動的にポート 5062 でリトライします。つまり、きついファイアウォールでは、ポート 5062 を開ける必要があるかもしれません。
最初に Second Life ビューワを起動すると、"SLVoice.exe" と "SLVoiceAgent.exe" のインターネットアクセスを許可するかをファイアウォールが尋ねてくることもあります。
ファイアウォールの内側の人が Second Life を使えるようにするには、この文書の手順を実行します。
== 手順 ==
ファイアウォールによって細かいところは異なってきますが、一般的な手順を説明します。
# TPC ポートのアウトバウンドアクセスを許可します。Second Life サーバは Second Life ビューワが動作しているクライアントシステムに向けてインバウンドの TCP 接続を確立しません。その代わり、「要求/応答」メッセージパターンを使用します。
#* アウトバウンドの TCP アクセスをポート 80, 443, 5060, 5062, 12043, 21002 で許可します。
# UDP ポートの「セッション」アクセスを許可します。UDP はセッションレス通信ですが、多くのファイアウォールは、つい最近同じポートから外向きの UDP 通信があった場合を除いて、特定のポートへの承諾のない内向きの UDP 通信をブロックします。
#* アウトバウンドの UDP アクセスをポート 5060, 5062, 12000 ～ 13050 で許可します。
# 監視します。最近のファイアウォールは複雑で、全てのネットワーク設定を 1 つの文書でカバーするのは難しいです。ntop や nprobe のようなツールを使って Second Life ビューワとサーバの間のネットワークフローを監視して、ファイアウォールにブロックされるネットワークフローを特定しましょう。
== ポート ==
DNS ルックアップや Web アクセスに使用する標準ポートの他に、Second Life ビューワは以下の表にリストアップされたポートを必要とします。
ポート 	プロトコル 	用途
53 	UDP/TCP 	DNS ルックアップ
80 	TCP 	Second Life に関連した Web リソースへのアクセス
443 	TCP 	Second Life に関連した Web リソースへのアクセスとクライアント認証
5060 	UDP and TCP	Voice / SIP のトラフィック
5062 	UDP and TCP	Voice / SIP (Session Initiation Protocol) のトラフィック
12000 - 15000	UDP 	Voice / RTP のトラフィック
12035 	UDP 	コアプロトコル通信
12043 	UDP 	シミュレータ通信とマップ関連の機能
12043 	TCP 	ケイパビリティ・ベース (Capability-based) のシミュレータ通信
13000-13050 	UDP 	コアプロトコル通信
21002 	TCP 	音声信号
注記:
* RTP: Real-time Transport Protocol
* SIP: Session Initiation Protocol
== サーバの IP アドレス ==
IP アドレスの最新情報は、こちらを参照してください。
* Second Life サーバの IP アドレスは What are Second Life's subnets?
* Voice サーバの IP アドレスは Can I use voice from behind a firewall?
更新したら通知が受け取れるように、これらの記事を読者登録することもできます。
Second Life ビューワは Linden Lab 以外の組織が提供する仮想世界にアクセスするのにも使えます。使用する IP アドレスを提供機関に問い合わせてください。
== ハードウェアベンダー特有の事項 ==
ファイアウォールの設定方法の手順は、ファイアウォールの説明書やベンダーの Web サイトを見てください。
===Cisco===
リフレクシブ ACL (reflexive access lists) を使用する Cisco のルータ/スイッチ (IOS 11.0 以降) では、アウトバンドアクセスリストに以下の行を追加します。
 permit tcp any any eq 443
 permit udp any any eq 12035 reflect outbound-SL
 permit udp any any eq 12036 reflect outbound-SL
 permit udp any any range 13000 13050 reflect outbound-SL
それから、インバウンドアクセスリストに以下の行を追加します。
 permit tcp any any established
 evaluate outbound-SL
追加したら、アクセスリストを適用します。
===Linux Killerwall===
Killerwall を使用している Linux システムでは、これらの行を /etc/killerwall.acl に追加します。
 IN IFACE <your lan interface> FROM 0.0.0.0/0 TO 0.0.0.0/0 tcp TOPORT 443 ACCEPT
 IN IFACE <your lan interface> FROM 0.0.0.0/0 TO 0.0.0.0/0 udp TOPORT 12035 ACCEPT
 IN IFACE <your lan interface> FROM 0.0.0.0/0 TO 0.0.0.0/0 udp TOPORT 12036 ACCEPT
 IN IFACE <your lan interface> FROM 0.0.0.0/0 TO 0.0.0.0/0 udp TOPORT 13000-13050 ACCEPT
そして、Killerwall を再起動します。Killerwall は自動的に返答パケットを追跡するので、Second Life が正常に動作するようになります。
===Linux Firewall===
IPF (Linux ファイアウォール) を使用している Linux では、以下のように設定します。
 pass out quick on rl0 proto tcp from any to any port = 443 flags S keep state
 pass out quick on rl0 proto udp from any to any port = 12035
 pass out quick on rl0 proto udp from any to any port = 12036
 pass out quick on rl0 proto tcp from any to any port = 12043 flags S keep state
 pass out quick on rl0 proto udp from any to any port 12999 <> 13051
 pass in quick on rl0 proto tcp from any to any port = 443 flags S keep state
 pass in quick on rl0 proto udp from any to any port = 12035
 pass in quick on rl0 proto udp from any to any port = 12036
 pass in quick on rl0 proto udp from any to any port 12999 <> 13051
===FreeBSD IPFW===
Ipfirewall (ipfw) ベースのファイアウォールでは、以下の行を /etc/rc.firewall に追加します。
 ipfw add allow tcp from any to any 443 setup
 ipfw add allow udp from any to any 12035 keep-state
 ipfw add allow udp from any to any 12036 keep-state
 ipfw add allow tcp from any to any 12043 keep-state
 ipfw add allow udp from any to any 12999-13051 keep-state
== 参考情報 ==
* How do I configure my software firewall?
* How do I configure my hardware firewall (such as a router)?
* Unusually restrictive firewalls block teleporting