VPN の導入

セキュリティ向上月間?


リモート操作の必要性

 家族に PC を普及する際に、ひとつの問題点(?)としてあげられるのが、サポートの話です。我が家も例に漏れず、この問題に直面しています。同居している家族であれば、家に帰ったときに面倒を見ればよいのですが、離れて暮らしている場合には、相手の居住区によっては、なかなか現場へ出向くわけにも行かないのが、現実問題として存在します。

 サポートを行っているときに、もっとも要望したいこととして、相手の画面を見えるようにしたい、ということがあります。ある程度の知識を有したユーザー同士であれば、いくつかの確認を行っていくことである程度理解できることが多くありますが、家族間のサポートを要求される場合などは、必ずしもこの前提が成り立つとはいえず、むしろ基本的な単語さえ知らない場合も往々にして多く、相手との会話からだけでは、その内容を判断することが非常に困難なことがあります。

 一つの例をあげてみましょう。知り合いから、Excel は起動できるが、Word が起動できなくなった、とサポートの要請がありました。話を聞いてみると

ということでした。この時点で怪しい事項としては、A.Word が壊れた or アンインストールされてしまっている、B.関連づけが狂った、のいずれかではないか、とあたりを付けました。さっそく Word の実行ファイルを探すために、Explorer を使い、C:\Program Files\Microsoft Office 以下でファイルを探させたところ、Word の実行ファイルは存在していることが確認できました。となれば、単体で Word は起動するはず、と考え、スタートメニューから Word を起動するよう指示したところ、やはり Word が起動しないとの回答で、どうやら Word が壊れてしまった可能性が高まりました。急ぎ仕事で使いたい、ということではありましたが、さすがに Office のインストールを電話を経由して行うことは、かなり苦労することは確実でしたので、翌日会社でもう一度見てみることにしました。電話の向うで、ため息を吐く感触が伝わってきました。

 翌日、会社に PC を持参してもらい、現物を確認したところ、奇妙なことがわかりました。Word の文書ファイルをダブルクリックすると、タスクバーには Word のバーが追加され、最小化状態では起動しているようなのです。まさかと思い、タスクバー上のバーを右クリックし、『元のサイズに戻す』を選択したところ、Word は正しく起動するではありませんか?

 本人に確認したところ、なんと昨日の時点から、タスクバーにボタンが増えていることは気づいていたのですが、それが Word の最小化状態での起動だとは思わなかった、というではありませんか!Windows ユーザーであれば、タスクバーに起動中のアプリケーションが表示されることは、当然知っているものと考えていましたが、このことさえ知らずに、『Word が起動しない』と騒いでいたのです。確認をしなかったとはいえ、タスクバーの役目等は、最低限の基礎知識であり、Windows を使ってすでに一年以上経過しているユーザーが、まさか知らないとは夢にも思いませんでした。ここで、もし相手の見ている画面を確認できていたら、ものの15秒程度で、問題は解決していたはずでした。

 このような要望から、ネットワーク越しに相手の画面を別の PC 上に表示し、かつ操作を可能にする、という要望が高まってくるのは、ある意味では当然の結果となります。そこで、ソフトウェアハウスでは、このような要望を実現するためのソフトを開発しました。このようなリモートコントロールソフトには、商用版としては、Symantec pcAnywhere 、フリーでは VNC 、最近では Windows XP に搭載されたリモートデスクトップ接続、などの製品があります。

VPNとはなに?

 リモートコントロールソフトは非常に便利なのですが、その反面セキュリティには十分な注意を払う必要があります。リモートコントロールを行う、ということは、その端末の前で作業を行っていることと同一の行為であり、セキュリティが甘いと、端末を丸ごと乗っとられる危険性もあるわけです。

 このため、リモートコントロールソフトを使う場合は、コントロールされる PC とコントロールする PC を RAS 接続して使用することが望ましいといえます。RAS 接続を行うということは、通話料金が発生するということになるわけですが、距離が遠くなればなるほど、通話料金は高価になり、下手をすれば出向いた方が安価に済む場合も出てくることになります。また RAS 接続は、双方で同種の接続方式でなければ使用できないため、アナログモデムの対向を組むか ISDN TA での対応を組むか、のいずれかになります。最近良く利用されている AirH はもちろん、PacketOne なども利用することができません。

 さて、これらのソフトウェアは動作環境として TCP/IP ネットワークを必要としています。TCP/IP ネットワークと言えば、Internet も巨大な TCP/IP ネットワークといえるわけで、Internet を使ったリモートコントロールができれば、通信経費はもちろん、通信デバイスの問題も一気に解決するわけです。AIrH や PacketOne でも、プロバイダのアクセスポイントに接続してしまえば、Internet 上では同等の扱いになりますので、大変便利になります。とはいえ、問題が無いわけではありません。

 Internet 上をそのまま流した場合、流れたデータを横取りされてしまう危険性があります。従って、他人がデータを横取りできない、もしくは横取りされても内容を理解できないようにするセキュリティの確保が絶対条件になります。セキュリティの確保として考えられることは、Internet へ流れていく時点で暗号化し、Internet から取り込んだ状態で複合化を行うことが必要となります。しかし、同じソフトウェアを使用している時に同じ暗号化を使ったのでは、そのソフトの利用者にとっては、暗号化されていないことと同様になります。従って、このようなリモートコントロールソフトを使う場合には、極力プライベートなネットワーク上で使用しなければならない、ということになります。

 そんな悩みを解決してくれる機能が、VPN(Virtual Private Network)と呼ばれるものです。VPN とは簡単にいえば、Internet の中に仮想(Virtual) の個人専用(Private) の ネットワーク(Ntwork) を構築するということです。Internet 上に仮想的なパイプを構築し、内部的には LAN と同様に使えれば、費用は最少で効果は絶大となります。現在、個人で PC を購入して、Internet に接続しない家庭は、ほとんど考えられず、何らかの方法で Internet に接続していることが、当然のようになりつつあります。通信コストそのものもはるかに低価格ですむようになり、擬似常時接続環境を構築しているところも少なくありません。それぞれが Internet に接続し、VPN 接続した場合の通信コストも、市内通話料金程度となり、通信コストもかなり低くおさえることができるようになり、従来で専用線でなければできなかったことあが、非常に安価にすませることができるようになるわけです。もちろん、セキュリティが確保できていなければ、いくら安価であっても意味がないので、きちんとした暗号化が要求されることになります。この暗号化では、ユーザー認証はもちろんですが、接続後のデータそのものも暗号化されている必要があることになります。

VPN の導入1(VPN サーバー)

 Windows で VPN を使う場合、どのようなものが必要になるのでしょうか。VPN にはいくつかの方法がありますが、Windows では PPTP(Point to Point Tunneling Protocol) と呼ばれる機能が搭載されています。PPTP には、接続を受け付ける側(PPTP サーバー)と接続を行う側(PPTP クライアント)の二種類があります。PPTP クライアントは Windows 95 OSR2 以降(要 DUN 1.3の導入)に搭載されており、PPTP サーバーは NT Server 4.0 、Windows 2000 Server 以降のサーバー製品に搭載されています。Windows 2000 Pro や Windows XP Pro に対応するオンラインソフトの PPTP サーバーがあればありがたいのですが、残念ながら、見つけることは出来ませんでした。

 今回は NT4.0 Server を VPN サーバーにしました。Windows NT 4.0 Server の VPN は、RAS(Remote Access Service)の拡張として実装されており、VPN というより RAS を設定しているような感触に陥りました。余談ですが、私が始めて、Dial on Demand 環境を構築したときも、NT4 の RAS(+DeleGate)でしたね.....なんとも、NT Server には付き合う時間が長いですね。

ダイアルインの許可

 NT 4.0 Server の RAS を設定する際に、注意する点としては『RAS のユーザー認証には NT 4.0 のドメインユーザーデータベースが使われる』というところがあります。RAS は着信を受け付けると、ユーザー認証が行われるわけですが、この際には、NT4.0 Server にユーザー登録されていることが絶対条件となります。さらに『当該ユーザーは【ダイアルインを許可する】が設定されていなければならない』という点も注意しなければなりません。NT4.0 のユーザー認証までは考慮するのですが、ダイアルインの許可はうっかりしてしまうことがあります。実はこのトラップにはまり、結構な時間悩んでしまったりしています.....

IP アドレスの配布

 RAS で接続する場合のプロトコルは TCP/IP を使うことになりますが、ここで問題となるのが IP アドレスの付番です。ここで、私は LAN 内の DHCP サーバーから割り当てを浮けようと考え、NT Server のセットアップ時に、『DHCP リレーエージェント』を組込んだのですが、この構成では、いくらやっても IP アドレスのリースが行われないのです。やむなく静的 IP アドレスプールを設定して対応しました。もしかすると、RAS で DHCP を使う場合には、Windows に付属の DHCP サーバーでないとうまく行かないのかもしれません。

Service Pack のあて方

 さらには NT4.0 を使う以上、Service Pack は 6a を当てておく必要がありますが、SP適用後に CD-ROM からファイルを読み込んだ場合に SP を再適用しなければならない、という仕様(?)がありますので、出来れば一括して導入したうえで SP を当てるようにすることが望ましいわけです。なので、NT4.0 のインストールを行ってから、SP を当てる前に VPN のモジュールを組み込んでおくことが望ましいといえます。

まとめ

 以上のことをまとめると、下記のようになります。

  1. NT4.0 の VPN は RAS の拡張として実装されている。
  2. VPN を使用するユーザーは NT4.0 へユーザー登録されている必要がある。
  3. VPN を使用するユーザーは ダイアルインの許可 が与えられている必要がある。
  4. RAS の設定は静的アドレスプールを使う。
  5. ServicePack6a は最後に当てる。必要なモジュールを組み込んでから当てる。

VPN の導入2(VPN クライアント)

 サーバーだけがあってもしょうがないので、クライアントの設定も行います。VPN クライアントは Windows 95OSR2 以降となっていますが、Windows 95 OSR2 の場合は DUN1.3(Dial Up Network) のアップデートが必要となります。Windows 98 からは、標準添付となっています。我が家の場合、クライアントは Windows 98 以降か Linux のため、特に何も使わずにできました。

 Windows 98 で VPN クライアントを導入する場合は『コントロールパネル』の『アプリケーションの追加と削除』から行います。

  1. コントロールパネルを開きます。
  2. アプリケーションの追加と削除を開きます。
  3. Windows ファイルのタブを選択します。
  4. 通信を選択し、『詳細』を押します。
  5. 仮想プライベートネットワークを選択します。
  6. OK ボタンを押します。
  7. ファイルコピーが始まります。
  8. Windows が再起動します。

(ダブルクリックすると、縮小なしで表示されます)

VPN の導入3(サーバー設定)

同時接続数の設定

 VPN は、RAS の一部となっていますので、基本的には RAS の設定をした事のある人にとっては、ほぼ同一の方法となります。異なるのは、受け口がシリアルポート(COM)でなく、ネットワーク(VPN1)となっていることです。それ以外は、RAS 接続と同様の設定になります。

 まずは同時接続数を設定します。同時接続数とは、VPN 接続を同時に受け付ける回線数となり、ここで設定した以上の VPN 接続は受け入れられなくなります。多数の VPN 接続を行うと、パケット処理がオーバーヘッドとなりますので、適切な値を設定します。

 VPN の設定は、ネットワークの設定になりますので、ネットワークのプロパティを開いて行います。同時接続数は、『プロトコル』タブを開いて『Point to Point Tunneling Protocol』をダブルクリックして設定します。私は同時接続数については、2と設定しています。同時に接続する可能性が2回線なので、2としています。実家から自宅に VPN 接続して、さらに外部の PC に対してリモートメンテナンスをする可能性を考慮して、2回線としています。





使用するプロトコルの設定

 次に受け付ける回線の設定を行います。VPN 接続では Internet 網を通ることから、TCP/IP のみにします。NetBEUI や IPX/SPX を使う必要は私にはなかったので、TCP/IP 以外のチェックボックスをクリアします。その後、『構成』のボックスをクリックして、TCP/IP の設定を行います。ここで、VPN 接続してきたクライアントに対して割り当てる IP アドレスの設定を行います。

 ここで最初は DHCP を設定していたのですが、どうにもうまくいかないので、静的アドレスプールを設定しました。なお、ここで設定するアドレスは、VPN 接続を受け付ける LAN の アドレス付番と対応させておく必要があります。なぜならば、VPN 接続した PC は、LAN 内からはここで割り当てられた IP アドレスで認識されることになりますので、ネットワークアドレスが異なっていることは非常にまずいことになります。なお、実際に割り当てた IP アドレスについては、セキュリティの観点から、伏せています。

暗号化の設定

 次に暗号化の設定を行います。VPN では、Internet 網を通じてデータの送受信と行うため、ログイン時だけでなく、セッションを張っている間は、すべてのデータを暗号化を行う必要があります。従って、『Microsoft 暗号化認証が必要』とし、『データの暗号化が必要』もチェックします。

 なお、ここで設定した情報は、後からクライアントで設定する場合にも使用することとなりますので、別途記録しておくましょう。手抜きをしてしまった私は、ここで、どういう設定をしていたのか、いちいち VPN サーバーを開いて確認する羽目になり、動作確認に手間取ってしまうという失態を演じてしまいました。

バーチャルホスト

 もう一つ注意する点があります。それは VPN サーバーは Internet から直接見えている必要がある、ということです。VPN クライアントは VPN サーバーを呼び出す時に IP アドレスを使用するため、VPN サーバーにはグローバル IP アドレスが割り当てられているか、もしくは割り当てられていることと同様の設定になっていることが必要になります。ところが、Router を使っている場合、グローバル IP アドレスは Router に割り当てられるため、Internet から見えるのは Router 止まり、となってしまいます。

 そこで、ここでは Router の機能を使うことにしました。私の使用している Planex BRL04A には、バーチャルホストと呼ばれる機能があります。これは、外部からアクセスされた場合に、Router の代わりに LAN 内の PC にデータを流し、見かけ上は PC が見えるようになります。反面、直接 Internet へさらされていることに他ならないので、きちんとしたセキュリティが必要となります。

Dynamic DNS

 VPN サーバーが外部から見える、となっても、問題はまだ残っています。それは、割り当てられている IP アドレスをどうやって調べるか、ということです。我が家の場合、固定 IP アドレスのサービスを受けていないため、必ずしも同じ IP アドレスが割り当てられる保証はありません。VPN で接続する場合、VPN クライアントは IP アドレスを頼りに VPN サーバーを探すことになるため、IP アドレスがはっきりしないと、接続できないことにもなりかねないのです。

 この問題には Dynamic DNS を使うことで、対応しました。以前テスト的に Web サーバーをあげていたのですが、この時に Dynamic DNS のサービス提供を受けていたことを思い出し、これを再利用することにしました。Dynamic DNS へ登録するドメイン名については、独自ドメインを取る方法もありましたが、ドメインの維持管理の問題から、@nifty のサブドメインを使用しています。

VPN の導入4(クライアント設定)

 VPN の設定といって、特に変わったところはそれほどありません。ただ、ダイアルアップの場合には電話番号を入れるところに、接続するサーバーのアドレスを記述すること、パスワードの暗号化とデータの暗号化を有効にすること、ネットワークへのログオンをチェックすること、が VPN 特有の設定項目です。

 VPN の設定、といっても、Windows 上ではダイアルアップネットワークの特殊系、という位置づけとなっており、通常のダイアルアップと異なるのは、使用するモデムの選択として、「Microsoft VPN Adapter」を選択する、ということです。

 ネットワークの設定は、下記の通りです。一般のダイアルアップネットワークとの設定の差は、「ネットワークへのログオン」「暗号化パスワードを使う」「データの暗号化を使用する」をチェックしていることです。Internet の盗聴を防ぐためにも、パスワードとデータの暗号化は必須の選択事項です。

VPNの設定(接続)

 VPN の接続には、TCP/IP ネットワーク上に存在している必要があります。このため、本来は事前に Internet へ接続することが必要となるのですが、テストとしては、LAN 上でも行うことができますので、まずは LAN 上でテストを行います。

 LAN 上で VPN 接続を行うには、ダイアルアップネットワークに作成した VPN 接続のアイコンをダブルクリックします。接続のための、ユーザー名とパスワードを入力するわけですが、これは VPN サーバーである NT4 に登録したユーザー名とパスワードを入力することになります。後は、ダイアルアップで Internet へ接続していることと全く同様に操作します。

 VPN 接続は、ダイアルアップネットワークの拡張なので、接続に成功した場合は、タスクトレイにアイコンが追加されます。また、VPN 接続のための IP アドレス割り当てを受けますので、これでも確認することができます。VPN 接続が行われると、LAN 内でのみ使うことができる機能を使用して、確認することをお勧めします。

 LAN 内での接続試験が完了できたならば、続いては公衆回線を使用してテストを行います。LAN 内と異なり、公衆回線網を使う場合は、伝送速度が非常に限定されるため、多少の待ちが必要となりますので、気を長く持つことが必要です(^_^;;

 VPN 接続ができたならば、LAN 内でできる作業を行い、本当に VPN 接続できているのかを確認します。LAN 内で行ったテストと同様のことを行っておくことをお勧めします。

Router と VPN 接続

 これまでのところでは、Router のヴァーチャルホスト機能を使って、外部からのパケットをすべて VPN サーバーに流すことで、VPN 接続を可能にしていましたが、Internet 環境に NT4.0 Server をそのまま見せておくことには、不安が残ります。Klez や Nimda といったワームの増殖を抑える意味でも、そして今後のセキュリティアップデートが望めないことから、最低限の部分だけを開放することが重要になります。

 VPN 接続で使われているポートは TCP:1723 と GRE:47 となっています。ということは、VPN 接続できる環境とは、[VPN サーバーの IP アドレス]の TCP:1723 および GRE:47 への接続要求だけを通過させられれば、VPN 接続できる環境になるわけです。

 ここでも Router の機能を使うことにしました。BRL04A には、ローカルサーバーという機能があります。これは、Internet からくる特定のポートへのアクセスを、LAN 内の PC に振り分けることができます。そこで、1723 番と 47番のアクセスを VPN サーバーに流すように設定をしました。この設定を行い、VPN 接続が問題なく行えることが確認できました。

 いろいろな意味で NT Server を Internet にさらけ出すことは、かなりの不安があります。現在も猛威を振るっている Nimda や CodeRed などといった Windows をターゲットにした WORM が数多くあります。また、Internet 上からの不正アクセスも IDS が多数検知しています

 最近の Router では、VPN 対応として、VPN パススルー機能が搭載されていますが、これは、実のところ、ここで設定している内容を、事前に Router に設定していることに他なりません。VPN 接続のサーバー機能ではなく、VPN に必要なパケットを通す(パススルー)する機能なので、別途 VPN サーバーが必要となります。VPN サーバー機能を有した Router には、Yamaha の RT55i がありますが、家庭向け製品ではかなり限定されます。これから VPN 接続を考えている場合は、VPN サーバー機能を有した Router を導入することをお勧めします。


Last Update 2003/02/26 . Copyright 2003 . All RIghts Reserved .