“Active Directory 認証”での”Client VPN”の構築

AWS

以前、下記の記事を書きましたが、この記事は”Client VPN”環境が構築済みの前提での接続手順でした。今回は、その”Client VPN”環境の構築に関してです。

“Active Directory 認証”での”Client VPN”への接続手順

構築の流れは、以下の通りです。

  • サーバ証明書の準備
    • OpenVPNのダウンロードとインストール
    • サーバ証明書の作成
  • “Directory Service”の準備
  • “Route 53 Resolver”のインバウンドエンドポイントを準備
  • “Client VPN”の作成
    • クライアントVPNエンドポイントの作成
    • サブネットの関連付け
    • 受信の承認(アクセスを有効にする送信先の設定)
  • “Client VPN”へのVPN接続

サーバ証明書の準備

認証 – AWS クライアント VPN」に詳しい手順が書かれており、Windows上でのサーバ証明書の作成部分は下記となります。

上記の手順を具体的に以下で実施していきます。

OpenVPNのダウンロードとインストール

Community Downloads | OpenVPN」からWindows(64-BIT)のインストーラーをダウンロードしてインストールします。

Community Downloads | OpenVPN

いきなり「Install Now」は行わず、「Customize」します。

手順の通り「EasyRSA 3 Certificate Management Scripts」の「Will be installed on local hard drive」を選択して「Install Now」します。

サーバ証明書の作成

コマンドプロンプトを管理者として実行します。(上述の手順には記載されていません)

上述の手順に従い、コマンドを実行します。今回は「相互認証」は利用せず、”Active Directory 認証”のみの利用なので、サーバ証明書の作成までです。(クライアント証明書は作成しません)

> C:
> cd \Program Files\OpenVPN\easy-rsa
> EasyRSA-Start
...
# ./easyrsa init-pki
...
# ./easyrsa build-ca nopass
...
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:xxx.xxx.xxx.xxx
...
# ./easyrsa build-server-full server nopass
...Code language: PHP (php)

“Client VPN”の構築に必要なファイルは、下記に作成されます。

  • 証明書: C:\Program Files\OpenVPN\easy-rsa\pki\issued\server.crt
  • プライベートキー: C:\Program Files\OpenVPN\easy-rsa\pki\private\server.key
  • 証明書チェーン: C:\Program Files\OpenVPN\easy-rsa\pki\ca.crt

ACM(AWS Certificate Manager)に証明書をインポート

AWSコンソール(ACM)からインポートします。

上記で作成した各ファイルの「—–BEGIN XXXXXXXX—–」から「—–END XXXXXXXX—–」までを貼り付けてインポートします。

“Directory Service”の準備

“Active Directory 認証”を利用するので、以前の記事に従い、”Directory Service”でディレクトリを準備します。

“Directory Service”のセットアップと”WorkSpaces”上でのユーザー管理

ディレクトリが準備できたら、VPN接続するユーザーも追加しておきますが、下記のようにデフォルトでチェックが入っている「ユーザーは次回ログオン時にパスワード変更が必要」のチェックを外しておく必要があります。(“Client VPN”のセルフサービスポータルにログインできません)

“Route 53 Resolver”のインバウンドエンドポイントを準備

VPNエンドポイントを利用したAWSサービスへのプライベート接続を利用する場合に、”Route 53 Resolver”のインバウンドエンドポイントは必要になります。どうせ、どこかで利用するので、以前の記事に従い、最初から準備しておきます。

ClientVPN接続からのCodeCommitへのプライベートアクセス

インバウンドエンドポイント作成時に割り振られるIPアドレスを、以下の”Client VPN”の設定でのDNSサーバーに入力します。

“Client VPN”の作成

クライアントVPNエンドポイントの作成

AWSコンソール(VPC)から作成できます。

CIDRのネットマスクは”/22″以上にする必要があります。

上記で設定したサーバー証明書とディレクトリを指定します。

当然、クライアント接続ログの出力もします。

上記で設定したDNSサーバー(Resolver)のIPアドレスを指定します。

サブネットの関連付け

サブネットの関連付けが終わるまで”Client VPN”は利用できません。

下記のように、2個のプライベートサブネット(AZ別)を関連付けます。

これで、”Client VPN”が利用可能になりました。

受信の承認(アクセスを有効にする送信先の設定)

“Client VPN”が使用可能になっても、VPNからアクセスできるネットワークを設定しないと何もできません。

サブネットの関連付けで指定したサブネットのCIDR(x2)を指定します。

この状態で、ようやく”Client VPN”が利用できます。

“Client VPN”へのVPN接続

 VPNの接続確認は、冒頭で紹介した記事に従って実施することができます。

“Active Directory 認証”での”Client VPN”への接続手順

最後に

上記の内容では、いっさい、セキュリティグループに関して言及しませんでした。とはいえ構築時に、いくつかセキュリティグループは登場するので、通信要件に合わせてセキュリティグループに必要な設定をすることも、忘れないでください!