ゲートウェイ(2)

−ゲートウェイでインターネットからLAN内部に建てたサーバへのアクセスを中継する−

作成日:2002.9.14

 ゲートウェイ ではAN HTTPDを使ってインターネットに直接接続していない LAN内のホストからプロバイダのメールサーバにアクセスしてメールを送受信したり、プロバイダなどの ftpサーバに対してファイル転送をしたり、telnet、ネットニュース(NetNews)やチャット(IRC)などを使用するための設定方法を説明した(下図の青のルート)。

 自宅サーバをインターネット上に公開する場合には、インターネットに直接接続してグローバルIPアドレスを持っているホスト(下図ではPC1)でサーバを建てるのが一般的である。ただ現実にはルータを使っている方が多く、その場合にはグローバルIPアドレスを持っているのはルータであり、ルータの NAT機能によってサーバへのリクエストを LAN内部のホストに振り分けている。すなわち、ルータがあればゲートウェイは特に必要としないが、ルータを使わずに NIC二枚刺しのネットワーク構成などでは以下の説明は有効であろう。

 ここではインターネットから LAN内部のホストで建てた Webサーバなどにアクセスを可能とする(下図の赤のルート)ためのゲートウェイの設定方法について説明する。
 AN HTTPDでプロクシタブの「サーバIPアドレス」欄にはIPアドレスを一つしか書くことができず、LAN内からインターネットにアクセスするために プロクシ/ゲートウェイ/SOCKS の中継機能を使用する場合には、プライベートIPアドレスを設定するより仕方がなかった。

 ところが「サーバIPアドレス」欄に「0.0.0.0」と設定すれば特定のIPアドレスとしてではなく、全てのIPアドレスに対応した動作をするように実装されていることは以下のコメントから分かるようにかなり早くから実現されていたようである。しかし、セキュリティ上の配慮からか、そのような使い方はこれまでほとんど説明されてこなかった。この下の一番下のコメントで初めて詳しく説明された。
 http://homepage1.nifty.com/yito/namazu/gbook/20000724.1600.html
 http://homepage1.nifty.com/yito/namazu/gbook/20000818.0223.html
 http://homepage1.nifty.com/yito/namazu/gbook/20001115.1023.html
 http://homepage1.nifty.com/yito/namazu/gbook/20020704.2326.html
 http://homepage1.nifty.com/yito/namazu/gbook/20020828.1909.html

  1. LAN内部の HTTPサーバを公開する

     上図のPC3(IPアドレス:192.168.0.4)で動作している HTTPサーバをインターネット上に公開するケースを例に設定手順を以下に示す。

     (1) インターネットに直接接続したホスト(PC1)で 二つ目の AN HTTPDを起動オプション付きで起動する(httpd.exe へのショートカットを作成し、プロパティのリンク先に例えば以下のように proxy2(任意の名前可) というオプションを付けて起動)。
    	"C:\Program Files\anhttpd\httpd.exe" proxy2
    
     (2) 一般タブのHTTPサーバ機能、プロクシタブのプロクシサーバ機能のチェックを外す。
     (3) ゲートウェイの TELNET にチェックし、
    	受けポート:80
    	ホスト名:  192.168.0.4
    	ポート:    80
    
    を設定する(ポートフォワーディング)。
     (4) プロクシタブの「サーバIPアドレス」を「0.0.0.0」に設定する。
     (5) プロクシのアドレス制限タブで許可IPアドレスを「*.*.*.*」に設定する。





     (注1) 上記(1)で AN HTTPDを二つ起動するのはLANから外へのアクセス用と、インターネットから内部へのアクセス用の設定を完全に分離してセキュリティ上の問題を起こし難くするためであり、絶対に厳守すること。ただ、分けたから安全というわけでもないので設定には細心の注意が必要である。

     (注2) 上記(2)で HTTPサーバ機能を止めるのは80番ポートが重複しないためであり、止めないと以下のエラー(「Winsock error 0: TELNETゲートウェイスレッドをたちあげられません」)が出る。プロクシサーバ機能のチェックを外すのは公開プロクシサーバになってしまわないためであり、絶対に守ること。同様に、デフォルトでチェックは付いていないが、SOCKSサーバ機能にもチェックを付けないこと。


     (注3) 上記(3)で「受けポート」はインターネットからこのゲートウェイ(PC1)がアクセスされるときのポート番号である。通常は80番を使うが、80番は他で使われている、あるいはサーバの存在を分かり難くする目的などで他の番号に変えてもよい。下側の「ポート」はその上で設定したホスト(PC3)で稼働しているHTTPサーバのポート番号なので80番以外で動作していればそれに合わせる。また、デフォルトで設定済のポート番号23の設定情報は残さずに削除すること。

     (注4) 上記(4)では「0.0.0.0」の代わりに「*.*.*.*」としても同じである。

     (注5) 上記(5)では「*.*.*.*」は全てのIPアドレスからのアクセスを許可するの意味なので、公開する範囲が限定できるのであればそのIPアドレスだけ(コンマ区切りで複数指定可、ワイルドカード使用可)を設定する方が望ましい。


  2. LAN内部のFTPサーバ、メールサーバを公開する
     LAN内部のホストで稼働中のFTPサーバ、メールサーバをインターネットに公開する場合も、この上の HTTPサーバの場合と同様な設定で可能である。すなわち、一つはTELNET欄にポート21, 25, 110などを追加する方法がある。この設定方法の欠点はオン/オフの制御がTELNETの前のチェック一つなので他のプロトコルと一括になってしまうことである。
     もう一つの設定方法は、ゲートウェイタブにある SMTP, POP3, FTP をそのまま使う方法である(上の図で SMTP, POP3, FTP にチェックすると 192.168.0.4 で稼働しているサーバを公開することができる)。この方法であれば Webサーバ、FTPサーバ、SMTPサーバ、POP3サーバの公開を個別にオン/オフすることができるのでこちらの方がいいだろう。

     FTPサーバやメールサーバの公開はWebサーバと比べてはるかに危険なことを認識しておくことが重要である。興味だけで安易にこれらのサーバ公開をすることは絶対に避けないといけない。

    (注1) FTPのパスワードは平文でインターネット上を流れるので覗き見される危険性がある。

    (注2) SMTPの公開では SPAMメール送信の踏み台にされないための対策をとること。自分が被害者ではなく加害者になるのだということがどういうことか理解できないならSMTPの公開は諦めることである。



  3. LAN内部の複数PC上のWebサーバを公開する
     上の説明 1.(3) でポート80だけでインターネットに公開できるのは LAN 内部の一台のPCだけである。その PCでバーチャルホストを使えば異なるホスト名/ドメイン名の Webサーバにインターネットからアクセスすることは可能である。ただ、いくら頑張っても AM HTTPDで LAN内部の複数PC上のWebサーバを外部に公開することは無理である。どうしてもというときは、異なる受ポートを使う以外にはない。

     ところが、DeleGate というソフトを使えば複数台公開が可能になるのである。LAN内の複数台のWebサーバを公開したいという場合には DeleGate を使ってみるといいだろう。DeleGateを使ってLAN内部のサーバを公開する でその設定方法を説明する。


作成:いと,mailto:gfh05223@nifty.com