本連載の第70~72回で、PPTPを使ったリモートアクセスVPNを取り上げた。PPTPは、IPsecと違ってクライアント側で固定IPアドレスを必要としないほか、利用可能なクライアント側OSの幅が広い利点がある一方で、NAT/IPマスカレードによるアドレス変換を介したLANの内側から接続できない場合があるのが難点だ。

この問題を解決するために、Windows Server 2008で新たに導入されたVPNプロトコルがSSTP(Secure Socket Tunneling Protocol)だ。クライアント側で利用できるOSがWindows Vista SP1以降とWindows 7に限定される難点があるものの、PPTPやIPsecよりもネットワーク環境に左右されない利点がある。

SSTPの概要

SSTPは、SSLの内側にPPPフレームをカプセル化する方法で実現されており、IPパケット同士のカプセル化によるトンネリングは行っていない。

その代わり、SSLによる暗号化通信機能を実現するために、WebサーバでSSLを利用する場合と同様、VPNゲートウェイにサーバ証明書を用意する必要がある。使用するサーバ証明書は、インターネットで公的な証明力がある認証局(CA : Certificate Authority)からでも、Windowsサーバの証明書サービスで自家運用する認証局からでもインストールできる。ただし後者は、公的な証明力がない、内輪限りの「オレオレ証明書」となる。

本稿では話を単純にするため、VPNゲートウェイでRRASを動作させるだけでなく、SSTPで必要になるサーバ証明書を発行するためのActive Directory証明書サービスも、同じサーバで稼動させる想定としている。よって、証明書サービスの安全を確保するには、RRAS以外のサーバ機能は動作させないようにして、RRASをVPNゲートウェイとして構成しファイアウォールを有効にするほうが良いだろう。

注意が必要なのは、SSTPを使用するVPNゲートウェイで、同時にIISを動作させないようにする点だ。IISでもSSLを利用できるため、両方の機能を同時に使用すると競合が発生する。SSTPとIISは排他利用と考えるべきだろう。

SSTPを利用するために必要な作業

SSTPサーバ機能はPPTPを使用する場合と同様に、RRAS(Routing and Remote Access Service)をVPNゲートウェイとして構成した時点で利用可能になっているので、改めてSSTPサーバ機能を追加する操作は必要ない。ただしSSLを使用することから、暗号化に必要なデジタル証明書を準備する作業が発生する。

もちろん、既存の認証局からサーバ証明書を購入してもよいが、内輪だけで通用すればよいなら、本連載の第65~67回で取り上げたのと同じ要領で、証明書サービスを使って「オレオレ証明書」を導入する方法も使える。その際の手順は以下の通りだ。

  1. VPNゲートウェイにActive Directory証明書サービスの役割を追加する
  2. そのActive Directory証明書サービスを使って、VPNゲートウェイ用のサーバ証明書を発行する
  3. VPNゲートウェイで、サーバ証明書の配置替えを行う
  4. Active Directory証明書サービス自身のCA証明書を発行して、VPNゲートウェイとクライアントの両方にインストールする
  5. クライアント側では、VPNプロトコルとして明示的にSSTPを指定する

自家運用する認証局から発行したサーバ証明書をインストールするだけでは、そのサーバ証明書の正当性を検証できない。利用者が勝手に立ち上げた認証局から発行した、いわゆる「オレオレ証明書」は、Windowsに当初からインストールしてある認証局の証明書では検証できないからだ。そのため、「4.」の作業が必要になる。

なお、同じサーバでIISによるSSLとSSTPを同時に稼働させないようにする必要がある点には注意したい。なぜなら、機能的に重複してしまうからだ。まだ先は長いので、続きの説明は次回に譲ることにしよう。