読者です 読者をやめる 読者になる 読者になる

Windows2008R2とWindows7による、L2TP/IPSec接続環境の構築(構築 - 証明書編)

Windows VPN Server

概要に続き、今度は構築する。

なお、SSTPを構築した時の構成を引き継ぐので、重複している部分は記載せず。
Windows2008R2とWindows7による、SSTP接続環境の構築(構築編)


---2012/8/24 追記---
日本セキュリティチーム - セキュリティ アドバイザリ 2743314 カプセル化されていない MS-CHAP v2 認証により、情報漏えいが起こる を公開 より、PPTPでのMS CHAP v2 の一部にセキュリティ的な問題があるとのこと。
一方、L2TPへは影響がないとのことだが、今後のことも考え、PEAP形式でも接続できるように追記。
---2012/8/24 追記 ここまで---

 

参考

事前共有キーの方法ですが、それでも十分参考になりました。ありがとうございます。
3流プログラマのメモ書き - (WindowsServer2008)会社と自宅間で L2TP/IPSec VPNを構築してみた

 

手順概要

No 端末 内容
1 ルーター 必要なポートをOpen
2 dc 接続用のセキュリティグループ作成
3 dc RADIUSサーバーの構築
4 dc 証明書テンプレートの作成
5 dc 証明書のWeb発行
6 dc 証明書のエクスポート
7 vpn 証明書のインポート
8 vpn ルーティングとリモートアクセスの構築
9 vpn NICの設定変更
10 client 接続設定の作成


 

必要なポートをOpen (ルーター)

 L2TP/IPSecにて必要なポート一覧は以下。
 TechNet - VPN およびファイアウォール

 

L2TP用のセキュリティグループを作成 (dc)

「ActiveDirectoryドメインサービス > ActiveDirectoryユーザーとコンピューター」にて実行

項目
グループのスコープ ●グローバル
グループの種類 ●セキュリティ


あとは接続するユーザーを追加する

 

RADIUSサーバーのセットアップ (dc)

  • ネットワークポリシーとアクセスサービス > NPS(ローカル)
  • 標準構成にて「ダイヤルアップ接続またはVPN接続用のRADIUSサーバー」を選択
  • VPNまたはダイヤルアップ接続を構成する を選択
画面 項目
〜接続の種類の選択 ○仮想プライベートネットワーク(VPN)接続 チェック
  名前 <任意の名前>

 
VPNサーバーの指定画面では、追加ボタンにて以下のサーバーを追加

タブ 項目
設定 フレンドリ名 <任意の名前>
  アドレス VPNサーバーのインターネット側IPアドレス
  共有シークレット <任意の値:生成すると楽>
認証方法の構成 Microsoft暗号化認証バージョン2 (MS-CHAPv2) チェック
ユーザーグループの指定 グループ <先ほど作成したユーザーグループ>
IPフィルターの指定 デフォルトのまま
暗号化設定の指定 □最強の暗号化 チェック
  □基本/強力な暗号化 チェックを外す
領域名の指定 デフォルトのまま


---2012/8/24 追記---
上記の設定のままでは単なるMS-CHAPv2 であるため、PEAP MS-CHAPv2 も追加。

  1. サーバーマネージャー > ネットワークポリシーとリモートアクセス > NPS(ローカル) > ポリシー > ネットワークポリシー > 上記にて作成したポリシーのプロパティ
  2. 「制約」タブ > 「認証方法」> 右側の「追加」ボタン > 「Microsoft: 保護された EAP (PEAP)」を選択。


なお、単なるMS-CHAPv2が不要な場合には、その下の「セキュリティレベルの低い認証」より、「Microsoft 暗号化バージョン 2 (MS-CHAPv2)」のチェックボックスを外す。

---2012/8/24 追記 ここまで---


証明書テンプレートの作成 (dc)

1.証明書テンプレートの複製

TechNet - ネットワーク アクセスの認証と証明書 - 証明書の登録方法を選択する より、「VPN サーバーまたは IAS サーバー、非ドメイン メンバ」の場合は、「RAS および IAS サーバー」のテンプレートが推奨されているため、それに従う。

  • ActiveDirectory証明書サービス > 証明書テンプレート > RASおよびIASサーバー > 右クリック > テンプレートの複製
  • Windows Server 2003 Enterprise(3)」を選択
  • 以下を入力
タブ 項目
全般 テンプレート表示名 <任意>
要求処理 □秘密キーのエクスポートを許可する チェック
  最小キーサイズ 1024*1
サブジェクト名 ○要求に含まれる チェック
発行の要件 □CA証明書マネージャーの許可 チェック

 

2.Web発行を可能にする
  • ActiveDirectory証明書サービス > <CA名> > 証明書テンプレート> 右クリック > 新規作成 > 発行する証明書テンプレート
  • 先ほど作成した証明書テンプレートを選択

 

証明書のWeb発行 (dc)

dcのIEを使って証明書のWeb発行を行うことで、ドメイン外に対しても証明書を発行できる。

なお、IEを使う場合は、事前にセキュリティレベルを下げておく。

 

1.証明書の発行要求
  • http://localhost/certsrv/ へとアクセス
  • 証明書を要求する > 証明書の要求の詳細設定 > このCAへの要求を作成し、送信する
  • 「証明書テンプレート」欄で上記作成した証明書テンプレートを選択し、以下を入力し、送信
    • 要求IDが表示されるのでメモ
区分 項目
オフラインテンプレート用の識別情報 名前 VPNサーバーのFQDN名>
追加オプション フレンドリ名 VPNサーバーのFQDN名>

 

2.保留の解除
  • ActiveDirectory証明書サービス > <CA名> > 保留中の要求 > 該当の要求ID > 右クリック > すべてのタスク > 発行

 

3.証明書のダウンロード・インストール
  • http://localhost/certsrv/
  • 保留中の証明書の要求の状態 > 該当する証明書 > この証明書のインストール
    • 正しくインストールされました、の表示

 

4.証明書のエクスポート

・MMC > スナップインの追加と削除 > 証明書 > 追加 > ユーザーアカウント
・個人 > 証明書 > <発行した証明書> > 右クリック > すべてのタスク > エクスポート
・ウィザードは以下

画面 項目
秘密キーのエクスポート ○はい、秘密キーをエクスポートします チェック
エクスポートファイルの形式 PKCS #12 チェック
  証明のパスにある証明書を可能であればすべて含む チェック*2
  すべての拡張プロパティをエクスポートする チェック
パスワード パスワード <任意>
エクスポートするファイル ファイル名 <任意>


 

証明書のインポート (vpn)

  • MMC > スナップインの追加と削除 > 証明書 > 追加 > コンピューターアカウント > ローカルコンピューター
  • 個人 > 右クリック > すべてのタスク > インポート
画面 項目
インポートする証明書ファイル ファイル名 <先ほどのファイル>
パスワード パスワード <先ほどのパスワード>
  □すべての拡張プロパティを含める チェック
証明書ストア ○証明書をすべて次のストアに配置する チェック


これにより、CA証明書とVPN用証明書が「証明書\個人」へとインポートされる


ただし、CA証明書が正しい場所にないので、場所を変更する

  • 個人 > <CA証明書> > 右クリック > 切り取り
  • 信頼されたルート証明機関 > 証明書 > 右クリック > 貼り付け


以上で、CA証明書・VPN証明書ともにエラーがない状態となる。


 

ルーティングとリモートアクセスの構築 (vpn)

1.役割の追加
  • 役割 > 役割の追加
画面 選択
サーバーの役割の選択 ■ネットワークポリシーとアクセスサービス
役割サービスの選択 ■ルーティングとリモートアクセス サービス

 

2.ルーティングとリモートアクセスの設定
  • 役割 > ネットワークポリシーとアクセスサービス > ルーティングとリモートアクセス >ルーティングとリモートアクセスの構成と有効化

なお、VPNサーバーはルーティングのみであるため、「静的パケットフィルター」はセットアップする。

画面 項目
構成 ○リモートアクセス (ダイヤルアップまたはVPN) チェック
リモートアクセス VPN チェック
VPN接続 ネットワークインターフェイス <インターネット側のNIC
  □選択したインターフェイスに静的パケットフィルタ〜 チェック
ネットワークの選択 ネットワークインターフェイス <LAN側のNIC
IPアドレスの割り当て ○指定したアドレス範囲 チェック:任意のアドレス範囲
複数のリモートアクセスサーバーの管理 ○はい (RADIUS使用) チェック
RADIUSサーバーの選択 プライマリRADIUSサーバー <作成したRADIUSサーバー>
  共有シークレット RADIUSサーバーの共有シークレット>

 

3.VPNの設定変更

IPv6まわりの設定は解除しておく

  • 役割 > ネットワークポリシーとアクセスサービス > ルーティングとリモートアクセス > 右クリック > プロパティ > IPv6タブ
  • IPv6転送を有効にする」「規定のルートアドバタイズを有効にする」のチェックを外す

 

4.ポートの設定変更
  • 役割 > ネットワークポリシーとアクセスサービス > ルーティングとリモートアクセス > ポート > 右クリック > プロパティ
  • L2TP以外は、「WAN Miniport」の構成のすべてのチェックボックスを外す
  • L2TPは、送信要求は行わないため、「リモートアクセス接続」のみ
  • ポート数は任意に増減しておく

参考:にわか管理者のためのWindowsサーバ入門 - PPTPによるリモートアクセスVPN(2)

   

5.ルーティングとリモートアクセスの再起動
  • 役割 > ネットワークポリシーとアクセスサービス > ルーティングとリモートアクセス > 右クリック > すべてのタスク > 再起動

 

NICの設定変更 (vpn)

インターネット側のNICのプロパティのうち、以下の2つはOffにしておく。

  • Microsoft ネットワーク用クライアント
  • Microsoft ネットワーク用ファイルとプリンター共有

参考:にわか管理者のためのWindowsサーバ入門 - PPTPによるリモートアクセスVPN(1)

 

VPNクライアントの設定 (client)

1.接続の作成
  • コントロールパネル > ネットワークと共有センター > 新しい接続またはネットワークのセットアップ
画面 項目
接続オプション 職場へ接続します 選択
どの方法で接続 インターネット接続(VPN)を使用します 選択
接続前にインターネット接続 インターネット接続は後でセットアップします 選択
接続に使用するインターネットアドレス インターネットアドレス VPNサーバーのFQDN名>
  接続の名前 <任意>
ユーザー名とパスワード <任意で設定:ドメイン名は「.local」は不要>  

 

2.接続の設定変更
  • コントロールパネル > ネットワークと共有センター > アダプターの設定の変更 > <先ほどのアダプタ> > プロパティ
    • L2TPだけにする


データの暗号化は、RADIUSで「最強の暗号化」のみを指定しているため、「暗号化が必要」という選択では接続することができないことに注意。

タブ 項目
セキュリティ VPNの種類 L2TP/IPSec
  データの暗号化 最強の暗号化
  CHAP チェックを外す
  □MS-CHAP v2 チェック
ネットワーク IPv6 チェックを外す


---2012/8/24 追記---
クライアント側もPEAPに対応できるよう、設定を変更する。
上記で作成したL2TP接続のプロパティを開き、以下を入力。

タブ 項目
セキュリティ 認証 「●拡張認証プロトコルを使う」をチェックする
ドロップダウンでは「Microsoft: 保護された EAP (PEAP)(暗号化は有効)」を選択


さらに、「プロパティ」ボタンを押下し、以下を入力。

項目
接続のための認証方法 ■サーバーの証明書を検証する チェックする
■次のサーバーに接続する チェックし、dcのFQDN名を入力
信頼されたルート証明機関 dcのCA名をチェックする
認証方式を選択する セキュリティで保護されたパスワード (EAP-MS-CHAPv2) 選択
■高速再接続を有効にする チェックする
■ネットワークアクセス保護を強制する チェックする

---2012/8/24 追記 ここまで---

 

4.インターネット接続とVPN接続を並立する

以下の記載通り、VPN接続のTCP/IPプロパティ「リモートネットワークでデフォルトゲートウェイを使う」をOff。


以上で、L2TP/IPSecによるVPNの構築ができる。

 

clientで接続したときのエラーメッセージ

エラー718:リモートコンピュータが時間内に応答しなかったため、接続は切断しました。

dcには「エラーID:14、ソース:NPS」が表示記録される。
→dcとvpn間で、共有シークレットが異なる場合に発生した。

エラー629:この接続はリモートコンピュータによって切断されました。

vpnに「エラーID:20255、ソース:RemoteAccess」が記録される。
→dcとvpn間でデータの暗号化の強度が異なるときに発生した。

エラー789:リモートコンピュータと最初にネゴシエートするときにセキュリティ層でエラーが検出されたため、接続に失敗しました。

dc・vpnともにエラー情報が残らない。
→テンプレートを複製した時に最小キーの長さを2048としたために、
 clientに配布されているコンピュータ証明書の長さ1024と異なり、発生した。

作業を進める中で困ったこと

コンピュータ証明書をWeb配布することができずに悩んだ

証明書を複製して解決。

 

ドメインの証明機関から、ドメイン外のコンピュータへ証明書を配布する方法に悩んだ

一度ドメインの証明機関にダウンロードした後、秘密鍵とともにエクスポートすることで解決。

 

参考資料

2.証明書関連

 

*1:コンピュータ証明書のキーサイズは1024。ちなみに、最小キーサイズを2048にしたところ、接続することができなかった

*2:CA証明書も同時にエクスポートするため