仙石浩明の日記

2006年4月13日

VPN-Warp 入門編 (1)

KLabセキュリティ(株)の製品に VPN-Warp という SSL VPN ソリューションがあります。 この製品は、最初のプロトタイプを私が開発し、 社内インフラ構築で長年 (といっても KLab(株) が設立からまだ 6年なので、 せいぜいそのくらいですが) 使い倒すことによって信頼性があがってきたものを、 商品化したものです。 私自身が最初に開発した、という愛着もあるので、 「仙石浩明CTO の日記」という場を利用して、 VPN-Warp を内部構造も含めて解説していきたいと思います。

VPN-Warp は、ふつうの SSL VPN に比べ、以下の特徴があります:

  1. サーバ側の設定が簡単
    特殊な設定の必要がありません。 イントラネット上の Web サーバに専用ソフトウェアをインストールするだけです。
  2. 既存のイントラネット環境を利用
    ファイアウォールの設定を変える必要がありません。
  3. PC、携帯電話、PDA などから利用可能
    主要端末に対応しています。
  4. ファイアウォール内部の情報を完璧に保護
    SSL により暗号化・認証 (クライアント・サーバ間の相互認証) で 高度なセキュリティを実現します。
  5. クライアント側への簡単な導入
    特別なソフトが必要なく SSL 証明書のインポートだけで使えます。
  6. 安定したシステム
    定評ある KLab のデータセンタを利用するため安心です。

VPN-Warp って何?

一言で言うと、ポートフォワーダです。 ssh のポートフォワードを使ったことがある人は多いと思うのですが、 基本はアレと同じです。 ssh だと、ローカルホスト (例えば自分の PC) 上で

ssh -L 8080:intra:10080 remote "sleep 1d"

などと実行することにより、 ローカルホストの 8080 番ポートを (remote から見て) intra:10080 番ポートへフォワードできます。 intra:10080 に、イントラへアクセス可能な http proxy が動いていれば、 ローカルホストの 8080 番ポートをイントラの http proxy として 使うことができるわけですね。

じゃ、ssh でいいんじゃない? なんで VPN-Warp を使うの?

ssh のポートフォワーダには大きく分けて二つの欠点があります:

  1. リモートホスト (この例では remote) にログインアカウントが必要
    ポートフォワードするためだけに、 ssh でログインできる権限を与える というのは、いかにも牛刀ですよね? また、サーバのアカウントというのは滅多矢鱈に増やせるものでもないので、 例えば数千人を超えるユーザにサービスする方法としては現実的ではありません。
  2. 外部からリモートホストへアクセスできることが必要
    この例の remote はイントラ内へアクセスできることが必要です。 イントラ内へアクセスできるサーバを 外部からアクセスできるセグメント (例えば DMZ) に置くのは 現実的ではありませんから、普通はいったん外部からアクセス可能な サーバ (例えばファイアウォール) の 適当なポート (例えば 10022 番ポート) で受けて、 それをイントラ内へフォワードするように設定しておくことになります。 DMZ に置くよりはマシであるものの、 外部から直接ログインできてしまうことにかわりはありません。

この二つの欠点は、どちらも「リモートホスト」の セキュリティレベルを下げる要因になります。 単刀直入に言えば、外部の第三者が「リモートホスト」にログインして フルコントロール権限を奪うリスクが高まっている、ということです。

次回は、VPN-Warp が上記欠点をどのように解決しているか説明します。

Filed under: システム構築・運用 — hiroaki_sengoku @ 08:06

1件のコメント »

  1. VPN-Warp 入門編

    CTO日記のほうで
    「VPN-Warp入門編」を始めた。
    VPN-Warpというのは、port forwarder で、「relay agent」プログラムを動かしているマシンへ、「リレーサーバ」経由で TCP トンネルを掘ることができる。
    つまり、イントラの中だろうが固定IPがついてない NAT の中だろう…

    コメント by GCD — 2006年4月13日 @ 11:46

この投稿へのコメントの RSS フィード。

コメントする