前回は、ポートフォワーディングを利用して公開する方法を確認しました。
前回前々回で紹介した2種類の手法は、不特定多数の方にサービスを提供できる方法です。今回紹介するVPNを利用する方法は、特定の方にのみサービスを提供する方法です。

VPNを利用して公開する

VPNとは、複数のLANをインターネットを介して、プライベートなネットワークとしてつなぐ技術です。この手法を利用すると、自宅から会社のLANに接続するといったことができるようになります。
VPNではLANをつなぐ際に認証を行う機能が提供されています。これにより、未知のネットワークからの接続は拒否されます。つまり、認証に必要な情報を事前に知っている必要がありますので不特定多数に対して公開することはできません。これは欠点のようにも見えますが、用途によっては十分なセキュリティーを確保しつつ、インターネットを介してLANにつながったサーバを別のネットワークからアクセスできるようにする方法です。
ただし、VPNに対応したルーターが必要ですし、ルーターに割り振られたグローバルIPアドレスを知るための工夫も必要になります。
ISPとの契約によりますが、ルーターに割り振られるグローバルIPアドレスは常に同じという保証はありません。このため、DDNS(Dynamic Domain Name System)などを利用してプログラムが正しいIPアドレスを知るか、グローバルIPアドレスを固定して割り振ってくれるサービスの利用を検討する必要があります。

最近では、次のVPNのプロトコルがよく利用されています。

  • PPTP(Point-to-Point Tunneling Protocol)
  • IPsec(Security Architecture for Internet Protocol)

前者は、クライアントとLANを接続する際によく利用されます。
後者は、LANLANを接続する際によく利用されます。

ここに、PPTPを使ってVPNを構築した際の通信例として図-8を示します。
ここでは、リクエストを送るパソコンのプライベートIPアドレスを、192.168.BBB.SSSとします。VPN対応のルーターに割り振られたグローバルIPアドレスを、CCC.DDD.EEE.FFFとします。実際にリクエストを処理するサーバのIPアドレスは、192.168.AAA.UUUとします。

  1. リクエストを送るパソコンよりVPNルーターに向けてPPTPVPNを構築します。
  2. VPNが構築されると、パソコンにプライベートIPアドレス(192.168.AAA.TTT)が割り振られます。
  3. パソコンから、送信先のIPアドレスを192.168.AAA.UUU、ポートを433番に、送信元のIPアドレスを192.168.AAA.TTT、ポートをm番にして、リクエストパケットを作成します。
  4. 作成されたリクエストパケットを送信します。
  5. サーバはリクエストを処理して、送信先のIPアドレスを192.168.AAA.TTT、ポートをm番に、送信元のIPアドレスを192.168.AAA.UUU、ポートを433番にしてレスポンスパケットを作成します。
  6. 作成されたレスポンスパケットを送信します。

このように同じLANにつながっているサーバに対して通信するのと同じように通信ができるようになります。

VPNによる通信のイメージ
図-8

最後に

これまでの説明のとおり、LANにつながっている機器にインターネットからアクセスすることは可能です。しかしコストやセキュリティーの問題があるため、メリット・デメリットを十分に見極めた上で決定することをお勧めします。なおLANにつながっている機器を公開する際は、セキュリティーに十分に注意して、自己責任でお願いします。


実践編 VPNを構築してサテライトオフィスに設置した弊社製WSD001A-Jを鳴らしてみた

1. はじめに
2. 静的NATによる公開
3. ポートフォワーディングによる公開
4. VPNによる公開