Home


Community


Resources

File Center
Links




Since April 10th, 2000



View Support Pages INVITE OTHERS | HELP | FEEDBACK
GUEST LOG IN | JOIN GROUP  
  Back to all pages
サポート
Main | FAQ | Tutorial | Corporate | Firewalls

サポート : ファイヤーウォール

Gnutella とファイヤーウォール
Maintained By manuka
Last Update: May 21, 2000



インターネット上にはいろいろなファイヤーウォールの内側にいる多くの人々がいる。このことはGnutellaを使う上で幾分障害になりうる。もしあなたがファイヤーウォールの内側にいる場合、この文書はGnutellaをほとんどのファイヤーウォールから救い出す方法を理解するのに役立つだろう。

ファイヤーウォールについて

ファイヤーウォールは特定の望ましい性質のネットワーク接続のみを通過させ、危険なパケットを取り除き、内側のシステムを攻撃から守るというものである。いろいろな種類のファイヤーウォールが使われているが、Gnutellaという文脈でファイヤーウォールの扱い方をそれぞれ別々に説明することにしよう。

Gnutellaはどのようにファイヤーウォールを乗り越えるか

どんなファイヤーウォールでもファイヤーウォール越しに接続を確立するのにいくつかの特別な手続きがGnutellaによって初期化されなければならない。ファイヤーウォールがある場合、明示的に通過が許されていない接続は壁の内側のシステムによって初期化されていなければならない。あるファイルを要求する場合Gnutellaにとってこのことが問題になる。このことを解決するためにGnutellaの設計者達は"PUSHリクエスト"を考え出した。

Gnutellaがファイヤーウォールの内側にあるシステムから何かをダウンロードしようとするとき、はじめにそのシステムに接続する能力を妨害するものがなく、標準の"pull"リクエストをそのシステムに試したと仮定しよう。もしそれが失敗すれば、その後質問としてGnutellaNetを通じてそのシステムに"pushリクエスト"と呼ばれるパケットを送りつける。このリクエストを受信した上でファイヤーウォール内側のシステムは要求主との接続を初期化しようとし、要求主にファイルを送る。この仕組みは、もちろん、要求主のシステムもファイヤーウォールによって守られていると動作しない。なぜなら、外側のシステムは接続を初期化しようとはしないからだ。これは普通あなたが何かをダウンロードできないことの理由である。ファイヤーウォールに守られているシステムの一つの指標は、そのIPアドレスがプライベートネットワーク空間としてRFC 1918に定義されている範囲にあるかどうかである。これらの範囲は以下のとうり:

  • 10.0.0.0 から 10.255.255.255 まで(クラス A)
  • 172.16.0.0 から 172.31.255.255 まで(クラス B)
  • 192.168.0.0 から 192.168.255.255 まで(クラス C)
この範囲にあるIPは、そのシステムがNATIP マスカレードしているゲートウェイの内側にあって、ゆえにそのアドレスではパケットは到達不可能である。

パケットフィルター

パケットフィルタリングファイヤーウォールはオフィス環境でよく見かける類のファイヤーウォールだ。それらは攻撃から守ったり、従業員を非生産的なサイトへアクセスさせないように特定のサービス(httpのような)の出入りのみを許可するように設定している。多くの管理者が出入りするGnutellaのデフォルトポート(6346)をふさいでいるけど、これはGnutellaにとってはほとんど問題にはならない。

もし、あなたが外へファイルを共有していないなら、他のGnutellaユーザが聞こうとしているポートのことのみ心配すればいいのでそれほど問題ではない。多くの人はずっとデフォルトポートを使っているが、だんだん多くの人が君のような人々を助けようと使用するポート番号をランダムにしつつある。

もし君が外へファイルを共有しみんながアクセスできるようにしたいと思っているのなら、ファイヤーウォール上の開いているincomingポートを見つける必要がある。このための典型的なポート番号はメールサーバ(25, 110, 143)やウェブサーバ(80, 443, 8000, 8080)やtelnet(23)やsshサーバ(22)が使っているものである。しかしながら、脳たりんのシステム管理者がこれらのポートを公式なビジネスのためのサービスをするシステムにのみ行くように制限するだろうということに注意すべきだ。ひょっとしたら...君は成功するかもしれない。

NAT ゲートウェイ

NATは"Network Address Translation"の省略形だ。NATはファイヤーウォール(あるいはゲートウェイ/ルーター)に経路指定可能なIPアドレスを割り振り、より多くのマシンにでIPを共有するというファイヤーウォールの一つの形式だ。たとえば、君が5つのIPアドレスしか割り当てられていないネットワークのオフィスをもってて、でも15のマシンを接続しなければならないような場合がそうだ。同じことが利用可能なIPが一つしかない場合にも適用できる。

NAT と Windows

Windows 98 や Windows 2000といったマイクロソフト Windowsは "Internet Connection Sharing"という機能を持っている。これはネットワーク全体をまかなっているシステムのIPアドレスを共有できるようにするとても簡単なNATシステムだ。これはもし君と二人のルームメイトが一つのアイヤルアップ接続を共有したい場合に使うことになるだろう。Windowsは典型的に(RFC 1918で定義されている)クラスCの内部予約アドレス空間(192.168.*.*)を使うだろう。

実はこの場合Gnutellaはあっけなく動作する。さらにプロパティーを設定する場合(あなたがWindowsに"この接続を共有せよ"と指示する場合)あなたは"サービスをエクスポートする"という設定項目をみるだろう。ここまできたら、あなたはNAT機器のポート上の接続を一つの内部アドレスにフォワードするようにNATシステムに 指示することができる。

少しの間君がDSL上でWindows NATを走らせていて君がIPSからもらったIPアドレスが1.2.3.4だと仮定しよう。 Windows は192.168.0.1をネットワーク内部に割り当て、基本的なDHCPサーバをセットアップするだろう。君のマシンは192.168.0.6で君はGnutellaをポート6350で走らせている。君はNATの設定にポート6350を192.168.0.6にエクスポートするように指示するだろう。Gnutella側では、君は設定(configure)項目へ行き Force Local IP をNATシステムのアドレス(1.2.3.4)へと設定するだろう。こうして、君はGnutellaNetに君が1.2.3.4:6350でサーバントを走らせていることを知らせることができ、そこにみんなが接続できるようになる。なぜなら、ポート6350上のサービスは192.168.0.6にエクスポートされ君のワークステーション上で走っているGnutellaサーバントにそのことが伝えられるからだ。

NAT と Linux

Linuxは今のところカーネルレベルでNATをサポートしていない 。(2.4カーネルリリースで開発中である。現在の安定板カーネルではipchainsでIPマスカレード機能を使う必要がある。)

NAT と ルーター

多くの家庭用、小規模ビジネス用のルータも組み込みNAT機能を持っている。それらにも"エクスポートするサービス"という設定項目がある。その設定の仕方はルータ毎に大きく異なっているのでルータに付属してきた説明書を参考にしてほしい。ここではいくつかの有名なルータについてベンダーが書いた文書へちょっとだけリンクを張っておこう:

IP マスカレード

IPマスカレードは、NATで行っているレイヤーとは異なるレイヤーで動作するということ以外では、NATと同じように動作する。IPマスカレードはパケットレベルで機能し同じくPAT (Packet Address Translation)を参照している。IPマスカレードのアプリケーションの例はLinuxでのipchainsや他のUnixシステムのipfwやWindows上のWingateだ。

いくつかのアプリケーションはIPマスカレードでメチャメチャになって特別な処理を施す必要のあるパケットに困っている。Linuxはこれをカーネルモジュールの形式で処理する。Gnutellaは現在特別な処置が全く必要がないようだ。マスカレードされたシステムでの設定は、あなたのマスカレードアプリケーション上でポートフォワードユーティリティーを必要とすること以外はNATの設定とほどんと変わらない。詳細は付属する文書を参照してみてください。

SOCKS

Gnutellaやそのクライアントのどれも現時点ではSOCKSプロキシをネイティブサポートしていないようだ。しかしながら、君はSocksCAPのようなユーティリティーを持ったアプリケーションやHummingbird SOCKS Clientのようなアプリケーションを備えた完全なシステムをSOCKS化してみてもよい。君のクライアントのドキュメントを参照してみてください。Gnuellaはこのような環境でとってもよく動く、しかし安全な戻りSOCKSクライアントを使わなければ、ファイヤーウォールの外側からやってくる接続を受信することができない。






Wego.com, Inc., does not claim ownership of or take responsibility for any content on this site.
There is no warranty or guarantee on anything downloaded from this site.
Gnutella Website Support