前回は、サイト接続型のVPNを異なるVPN装置で実現するためのポイントを解説した。今回はリモートアクセス型のVPN機器の導入から運用に関するポイントをIPSecVPNとSSL-VPNに焦点を当てて解説する。
自宅や公衆無線LANサービスから社内の情報資源にアクセスするリモートアクセスVPNの導入を検討しているほとんどの企業が最初に頭を悩ますのが、IPSecVPNとSSL-VPNのどちらを選択するかである。
IPSec製品とSSL-VPN製品は現在全く異なる製品として扱われているが、近い将来これらは統合される方向にある。大手ネットワーク機器ベンダが機能を統合した製品を発表するほか、大手IPSecVPNアプライアンスメーカーの米NetScreenがSSL-VPNメーカーの米Neoterisを買収したことに代表されるように、その流れは加速されると見られている。
また、どちらの製品を使用するか迷ってしまい、どうしても判断できない場合や、おのおのの長所を生かした柔軟性のあるリモートアクセスVPN環境を構築したい場合などは、VPN製品メーカーに機能統合の予定を確認するのも1つの方法だろう。
ここでは、下記の切り口で比較することで、IPSecVPNとSSL-VPNのそれぞれの適している環境を解説していくこととする。
(1)VPN使用時の情報資源へのアクセス
SSL-VPNを使用して社内の情報資源にアクセスする際には、ポータルサイトに表示されている情報資源を選択(クリック)する。スキルの高いユーザーにとっては何の問題もない操作だが、スキルの低いユーザーにとっては社内と社外にいる場合でオペレーションが異なるため混乱する可能性がある。特に混乱しやすいのは、Webブラウザに登録されているブックマークやお気に入りといわれるものと、メール本文に記述されている社内サーバのURLやMicrosoftネットワークのNetBIOS名などである。
前者の場合、社内のWebサーバをポータルに登録し、ユーザー教育を徹底することで比較的容易に混乱を解決することができるが、後者の場合解決は難しい。例えば、社内の業務連絡のメールに「\\intra_server\data\information.txtをご覧ください」と記述した場合、ほとんどのユーザーはこの記述をクリックして情報資源にアクセスしようとすると思う。しかし、この方法では目的の情報資源にアクセスすることができない(図1)。
SSL-VPNを使用しているときには、ポータルから目的のサーバを選択し、目的のディレクトリを選択した後、ようやく目的のテキストファイルを読み出すというオペレーションになってしまう。このオペレーションはスキルの低いユーザーにとっては大きな混乱を招く可能性があるにもかかわらず、軽視されがちな内容であるので注意する必要がある。
一方、IPSecを使用した場合、VPN接続するオペレーションは介在するが、接続できた後は基本的に社内にいるときと同じオペレーションですべての情報資源にアクセスを行うため、混乱を来たす可能性は低い。
(2)どのようなアプリケーション(情報資源)にアクセスするか?
IPSecはIPを使用するアプリケーションであれば、基本的にどのようなアプリケーションでも使用することが可能である(マルチキャストを使用するアプリケーションは対応不可)。
一方、SSL-VPNはアクセス可能な情報資源に制限がある。具体的には、SSL-VPNの特徴であるクライアントレスの環境では、Webインターフェイスアプリケーション以外にはアクセスできない。しかし、Javaアプレットや専用クライアントソフトウェアを使用することで、この制限を克服し、専用クライアントソフトウェアを使えば、UDPを使用するアプリケーションまでSSL-VPNで利用が可能になる。
ただし、1つだけ注意が必要である。専用クライアントをサポートしている多くの製品は、自動的にクライアントソフトウェアをインストールするのだが、このときの端末にはAdministrator権限でLogonしていなければならない。従って、VPNユーザーにAdministrator権限を使用させたくない企業は、事前に管理者がクライアントソフトウェアをインストールするなどの運用が必要となり、クライアントレスというSSL-VPN最大のメリットを享受できなくなる。
(3)どのような端末を使用したいのか?
IPSecは接続するVPNゲートウェイに対応した、クライアントソフトウェアをインストールしなければならないため、プラットフォームに依存してしまう。
一方、SSL-VPNはWebブラウザさえあれば、社内のWindowsサーバやWebサーバへ安全にアクセスすることが可能である。従って、IPSecのクライアントソフトウェアが対応できないPDAや携帯電話などの端末からも社内の情報資源にアクセスすることが可能である。
PDAや携帯電話を活用するリモートアクセス環境構築にはSSL-VPNが適している。
(4)どのような使用用途か?
外部の企業とのエクストラネットでリモートアクセスVPNを使用したい場合は、IPSecよりもSSL-VPNの方が適している。
SSL-VPNを使用した場合、IPSecにはないメリットがいくつかある。その1つがクライアントレスである。SSL-VPNを使用する場合は基本的にWebブラウザさえあればよいが、IPSecの場合は専用のクライアントソフトウェアを導入する必要がある。外部のユーザーに対しクライアントソフトウェアの導入を強制するのは非常に難しい。
もう1つのメリットはアプリケーションレベルで細かいアクセス制御が可能な点である。IPSecを使用した場合、IPアドレスとプロトコルレベルのアクセス制御しかできない。
エクストラネットではユーザーが所属する企業や団体により、公開する情報や取引する内容が異なるため、アプリケーションレベルでアクセス制御を実現できるSSL-VPNの方が適している。
リモートアクセスVPNを実現する方式が決定したら、使用するVPN機器を決定しなくてはならない。ここでは製品を選択する際の注意事項を説明する。
なお、機器を選択するうえで、運用や管理の容易性は非常に重要な内容であるが、管理する側のスキルなどによる個人差があるためここでは説明を省かせていただく。
(1)同時アクセス数
IPSec対応のハードウェア製品を選択する場合にはSA*1の数に注意しなければならない。前編でも述べたように、このタイプの製品の多くはSAの数に制限があるため、想定する同時アクセス数分のSAしか使用できない製品では、Re-key*2の際にSAの数がオーバーし、通信ができなくなる可能性があるからだ。従って、機器がサポートするSAの数は、想定する同時アクセス数に多少の余裕を持たせる必要がある。
*1
IPSecでは、共通鍵でやりとりする前の手続きとして、論理的コネクションを張る。これをSAという。
*2
SAには寿命(Life Duration)が設定されており定期的にSAを更新する。この動作をRe-Keyと呼ぶ。
(2)クライアントソフトウェア
クライアントソフトウェアが対応するOSを確認するのは当たり前のことだが、OSによって使用できない機能があることは意外に知られていないため、ここで説明する。
リモートアクセスVPN環境下ではNATやIPアドレスの重複や認証の問題で、以下の機能が最低限必要となる。
Xauthに代表されるユーザー認証機能や、NAT環境に対応するためのNAT Traversal機能については、ほとんどのメーカーでOSに関係なくサポートされている。
しかし、IPSec DHCPに代表されるIPアドレスが重複してしまう環境下で、仮想インターフェイスにIPSec通信用のIPアドレスを割り振り、通信させる機能については、Windows2000以降のOSでしかサポートされていないことが多い。カタログを見ただけでは読み取ることができないため機器を購入する際にベンダに忘れずに確認した方がよいだろう。
*3
Xauth(Extended Authentication within ISAKMP/Oakley)は、IKEプロトコルを拡張することで、従来組織内で利用してきたワンタイムパスワードやRADIUSなどを使用した認証サービスを利用できるようにするものである。dtaft-beaulieu-ike-xauth-02.txtを参照。
*4
Hybrid認証とは、Xauthと同様IKEプロトコルを拡張し各種認証サービスを利用できるようにするものである。Xauthと異なり、VPN機器の認証は証明書で行い、クライアントの認証を各種認証サービスを使用して行うのが特徴である。A Hybrid Authentication Mode for IKEを参照。
*5
NAT Traversalは、IPsec通信に先立ち行われるIKEネゴシエーションで、VPNゲートウェイ間または、VPNゲートウェイとVPNクライアントの間にアドレス変換の有無を自動的に検出する機能を提供する。
アドレス変換が検出されると、IPsecパケットはUDPでカプセリングされて通信が行われる。この機能は、UDP encapsulationで提供される。
これら一連の動作が一般的にNAT Traversalと呼ばれ、本文のNAT Traversal機能も一連の動作を意味している。draft-ietf-ipsec-nat-t-ike-07.txtおよびdraft-ietf-ipsec-udp-encaps-07.txtを参照。
(1)冗長化の有無
SSL-VPNの場合、冗長化システムの構築方法が大きく分けて2つある。1つ目はIPSecと同様に2台の機器を同期させPrimary機に障害が発生しても、Secondary機で通信を継続させる方法である。しかし、現状ではこの機能を有したSSL-VPN機器は少数である。
もう1つの方法は、SSL-VPN機器2台をおのおの独立して稼働させる方法である。具体的には、Primary機をSSL-VPN-1.example.co.jpとし、Secondary機をSSL-VPN-2.example.co.jpとして、Primary機がダウンしたら、Secondary機に接続し直す方法である。
スキルの低いユーザーが多い場合、この方法を使用するのは困難である。そのような場合はDNSのラウンドロビン(round robin:負荷分散の振り分けアルゴリズム)を使用して対応することが可能であるが、一方の機器がダウンしてしまうと、最初(認証)から再接続することになるので、あらかじめユーザーに周知徹底しておくことが必要である(図2)。
(2)認証システム
SSL-VPNはだれもが持っているWebブラウザを利用して、社内の情報資源にアクセスするため、より厳格な認証システムを採用した方がよい。
例えば、ワンタイムパスワードを利用すると、ワンタイムパスワードを発行するためのPIN(Personal Identification Number)を使った記憶による認証と、ワンタイムパスワードを発行するトークンを使った所持物による認証が行われ、2つの要素による認証(2要素認証)が行われ、通常のユーザー名およびパスワードによる認証より厳格に認証が行われる。
ただし、クライアント証明書で認証を行う場合は注意しなければならない。多くの機器が証明書の失効検証を行わないのである。クライアント証明書の失効検証が行われないと、ユーザー紛失した証明書を拾得した悪意ある人間が不正に社内の情報資源にアクセスすることが可能となってしまう。従って、クライアント証明書で認証を行いたい場合は、クライアント証明書の失効検証を行う機器を選択しなければならない。
リモートアクセス環境を構築する際には、VPN機器設置に伴うネットワークの変更、ユーザーのアクセス制御、ユーザーアカウントの登録や外部認証サーバとの連携など多くの作業が発生する。
それぞれの作業で注意すべき点も多いが機器やネットワーク環境に依存するところが多いためここでは説明は行わない。システム構築時に実施する事前動作検証の際にどのような点を確認すれば運用にスムーズに入ることができ、運用管理を容易に行うことができるかに焦点を絞って説明を行う。
(1)ログに関する確認
ログの管理はセキュリティ管理の基本ともいえる重要なものである。ログ管理を円滑に行うためにVPN機器でどのようなログが残せるかを事前に確認しておくとよい。ユーザーのアクセスログをはじめ、認証に失敗した際のログや、許可されていない情報資源へのアクセスなどの通常使用方法では発生しないログがどのように残るかはぜひ確認していただきたい。また、VPN機器の設定変更などのために管理者アカウントでアクセスした際のログが残るかどうかも事前に確認しておくとよい。
VPN機器のログは機器内に保存できる容量に限りがある。従って、定期的にログをローテーションさせたうえ、ログサーバなどに保存するような運用をする必要がある。これらの一連のログ管理を効率的に実施する方法も事前に確認しておいた方がよいだろう。
(2)設定変更に関する確認
VPN機器を運用すると新たにユーザーに開放する情報資源の追加などで、アクセス制御の設定変更が発生する。ここではアクセス制御の設定内容に関する確認ではなく、アクセス制御の設定が反映されるタイミングを確認してほしい。
多くのIPSecVPN機器は設定を有効にしたタイミングで設定内容が反映される。しかし、一部の製品では設定内容が反映されると同時に、クライアントとのIPSec通信に必要なSA情報が消去されるものが存在する。このような製品では、ユーザーがVPNを使用していないタイミングで設定を反映させるか、事前にユーザーに通知したうえで設定変更を行う運用が必要である。
一方、SSL-VPN製品は、アクセス制御の設定を有効にしてもそのときに使用されているセッションには反映されない製品が多いという特徴がある。また製品によっては、アクセス制御設定変更時にはVPN通信が止まってしまう製品もある。このような製品もユーザーがVPNを使用していないタイミングや、ユーザーに事前通信したうえで設定変更を行う運用が必要である。従って、設定変更を行う際のVPN通信に与える影響を事前に確認し、運用ルールに反映する必要がある。
(3)ユーザー情報に関する確認
ユーザーが少数の場合、ユーザー情報を再設定する作業はそれほど大きな負荷ではない。しかし、ユーザーが数十人以上の中・大規模の場合、ユーザー情報を再度設定し直す作業は、大きな負荷となる。
万が一の機器障害などに備えユーザー情報は必ずバックアップしておいた方がよい。事前検証では、バックアップ手順を確認するとともに、障害復旧を円滑に行うためユーザー情報の復旧の手順も忘れずに確認する必要がある。
(4)MTUに関する確認
VPN通信のパケットを取得して、DF(フラグメント不可)ビット*6の値を確認する。DF=0であれば経路上でMTUが小さなネットワークを介しても、パケットがフラグメントされ通信は行われるためMTUに関する問題は発生しない。
*6
経路上でのパケット分割を制御する値。実際には、IPヘッダのFlagフィールドに含まれ、DF(Don't Flagment)ビットが1になっている場合は、パケット分割が禁止される。DF=1が設定されると経路上でパケット分割(フラグメント)できないため、IPパケットサイズがMTUを超えてる場合パケットが破棄される。
※注意
一部のブロードバンドルータではフラグメントされたパケットが通過しない問題を有しているものがあるため、そのようなブロードバンドルータを使用している際には通信障害が発生する。
DF=1の場合はMTUの経路上で小さなネットワークがあった場合、VPN機器にPMTUパケット*7が送信される。このPMTUがVPN機器に届かない限り、VPN製品はパケットサイズを小さくすることがないため通信不能状態が続くことになる。従って、PMTUがVPN機器に届くように周辺のネットワーク機器のフィルタリング設定を変更する必要がある(図3)。
*7
DF=1になっているためパケットを分割できず破棄した際に、送信元に対しパケットサイズを小さくするようにICMPパケットが送信される。この動作はPath MTU Discoveryと呼ばれている。本文では混乱を防ぐために、パケット破棄した際に送信するICMPパケットのことをPMTUパケットと記載している。
今回の特集の最後に、リモートアクセスVPN環境を運用する際の注意事項を解説する。今回の解説では特にセキュリティ面に焦点を当てる。
(1)クライアントセキュリティ
クライアントセキュリティと一口でいっても、いくつかのとらえ方がある。ここでは特に注意が必要な以下の項目について解説する。
(2)バージョンアップについて
VPN製品はセキュリティかかわる技術を実装しているため、ソフトウェアやハードウェアは最新に保つ必要がある。従って、バージョンアップやセキュリティパッチの適用は小まめに行うべきである。
特に、ソフトウェア製品を使用したVPN環境では、VPN製品が稼働するOSのバージョンやセキュリティパッチの適用も忘れずに実施していただきたい。ただし、VPN製品のサポートOSの関係でバージョンアップやセキュリティパッチなどが適用できない場合などは、VPN製品購入元にセキュリティパッチが適用できない場合の脆弱性回避策などを確認するなどして脆弱性対策を確実に行っていただきたい。
(3)証明書に関する確認
SSL-VPNを使用する場合、VPN機器側に証明書が必須である。ほとんどのVPN機器は内部CA機能を有しているので、それを使用してVPN機器用の証明書を発行することが可能である。
しかし、内部CAの証明書はWebブラウザの信頼されたルート証明書(IEの場合は信頼されたルート証明機関/NetScape7.1の場合は証明書マネージャの認証局)に登録されていないため、VPN接続するたびにセキュリティの警告が表示されることになる。
これを防ぐには、SSL-VPN機器の証明書にWebブラウザに登録された認証機関が発行する証明書を使用するか、SSL-VPN機器の証明書をクライアント端末に登録すればよい。間違ってもセキュリティ警告が出たときには、何も考えずに「はい」や「OK」ボタンをクリックすればよいという教育を行わないよう注意していただきたい。なぜならば、それが習慣となってしまうと悪意あるサイトにアクセスした際に表示されたセキュリティ警告に対しても無意識のうちに「はい」や「OK」ボタンをクリックしてしまう可能性が高くなるためである。
リモートアクセスVPN導入の目的は、「いつでも」「どこでも」「安全に」企業の情報資源にアクセスできる環境を用意することで業務の効率化を図ることである。従って、いかにしてユーザーに使用させるかが課題となる。ユーザーの利便性を向上させることはよいことだが、それによりセキュリティレベルを下げることがないよう、十分に配慮してリモートアクセスVPN環境を運用していただきたい。
松島 正明(まつしま まさあき)
新日鉄ソリューションズ
1998年 新日鉄情報通信システム株式会社 入社。2000年 日本ネットワークセキュリティ協会(JNSA)相互接続WGリーダ。2002年 JNSA インターネットVPN WGリーダを勤める。
Copyright © ITmedia, Inc. All Rights Reserved.