インターネットに安全で暗号化されたアクセス方法が必要ですか?なぜWindows Server上でOpenVPNを利用しないのでしょうか?最初のVPNの設定は少し手間がかかるかもしれませんが、正しい場所に来ました!
このチュートリアルでは、無料のVPNを設定してWindows Serverから悪意のあるエンティティを排除する方法を学びます。
ネットワークを安全にする準備はできましたか?それでは、さっそく始めましょう!
前提条件
このチュートリアルは実践的なデモンストレーションです。一緒に進める場合は、次のものを準備してください:
- A Windows Server – This tutorial uses Window Server 2019 R2.
- A client machine to test the VPN server – This demo uses Windows 10 64 bit.
- デスクトップにWindows Serverに接続するための「リモートデスクトップ(RDP)」またはご希望のデスクトップマネージャクライアント – このデモではデフォルトの「RDP」ウィンドウクライアントを使用します。
Windows ServerにOpenVPNをインストールする
OpenVPNはさまざまなオペレーティングシステムで動作しますが、OSのインストールには含まれていません。このチュートリアルでは、サーバにOpenVPNをインストールすることから始めましょう。
1. お気に入りのブラウザを開き、OpenVPNのダウンロードページに移動します。サーバーにWindows 64-bit MSI インストーラパッケージをダウンロードし、インストーラを実行します。

2. 次に、インストーラウィザードの最初のページでカスタマイズをクリックします。 カスタマイズオプションを選択することで、VPNサーバーに追加のアイテムをインストールすることができます。

3. カスタムインストールページで、OpenVPNサービスのドロップダウンメニューをクリックし、ローカルハードドライブにインストールされますと選択します。このオプションは、OpenVPNサービスをシステムにインストールし、システム起動時にOpenVPNサービスを有効にします。

4. 今度は、下にスクロールし、OpenSSLユーティリティのドロップダウンメニューをクリックし、ローカルハードドライブにインストールされますオプションを選択します。このオプションにより、OpenVPNサービスに必要なOpenSSLライブラリと開発ヘッダが利用可能になり、一部の暗号化機能に必要です。
今すぐインストールをクリックして、サーバーにOpenVPNをインストールします。

5. インストールが完了したら、閉じるをクリックします。

サーバーとクライアントのための証明書とキーの生成
サーバーにOpenVPNがインストールされましたが、サーバーとクライアントの接続をどのように保護しますか?サーバーとクライアントのための証明書とキーを生成します。
証明書とキーは、サーバーとクライアント間の暗号化された接続を提供するために使用されます。証明書を生成すると、固有の公開鍵と秘密鍵が取得されます。
1. 管理者としてコマンドプロンプトを開きます。一部のOpenVPNコマンドは、実行するために昇格した権限が必要です。

2. 次に、以下のコマンドを実行してeasy-rsa
シェルを起動します。easy-rsa
シェルは、証明書、キー、および設定の管理に使用されます。
EasyRSAは、このチュートリアルの残りの部分での主要なコマンドラインインターフェースとなります。

3. 以下の./easyrsa clean-all
コマンドを実行して、既存のキーと設定をクリアします。このコマンドにより、クリーンな設定で開始できます。

4. 今度は、./easyrsa init-pki
コマンドを実行して、公開鍵基盤(PKI)を初期化し、証明書とキーのための新しいディレクトリ構造を作成します。
公開鍵基盤(PKI)は、サーバーとクライアントが使用するための公開鍵と秘密鍵を作成および管理するためのフレームワークです。
はいと入力してEnterキーを押して、既存のキーを破棄し、新しいPKIを作成することを確認してください。以下に示します。

5. 以下のコマンドを実行して、証明機関(CA)を作成します(build-ca
)。CAはサーバーとクライアントに証明書を発行し、証明書に署名し、証明書を失効させるなどの役割を担います。
パスワードを入力する必要がないように、nopass
オプションを使用しています。クライアントに証明書とキーをコピーするたびにパスワードを入力する必要はありません。./easyrsa build-ca nopass
VPNを設定する際には、証明機関(CA)によって署名されたサーバーおよびクライアントの証明書を生成する必要があります。

6. 以下のコマンドを実行して、サーバーの証明書とキー(build-server-full
)を作成します。このコマンドはOpenVPNサーバーの証明書とキーを作成し、CAで署名し、ファイルをkeysサブディレクトリに配置します。

7. 次に、以下のコマンドを実行してDiffie-Hellmanパラメータ(gen-dh
)を生成し、easyrsa
シェルを終了します。
Diffie-Hellmanは、二つのユーザーが安全でない接続上で暗号鍵を交換するためのプロトコルです。Diffie-Hellmanを使用することで、暗号化キーが盗まれてもVPNが安全に保たれるようになります。

これで、OpenVPNサービスに必要なすべてのSSL/TLSキーファイルが以下の表にリストされています。
Folder Path | Content |
C:\Program Files\OpenVPN\easy-rsa\pki | CA file, DH file, and other OpenSSL-related files like a config file. |
C:\Program Files\OpenVPN\easy-rsa\pki\private | Include the private key files of CA, Server, and Client certificates. |
C:\Program Files\OpenVPN\easy-rsa\pki\issued | Contains issued server and client certificates. |
8. 最後に、ファイルエクスプローラーを開き、以下にリストされているファイルをC:\Program Files\OpenVPN\config-autoフォルダとC:\Program Files\OpenVPN\easy-rsa\pki\privateフォルダにコピーします。
C:\Program Files\OpenVPN\easy-rsa\pki\ca.cert |
C:\Program Files\OpenVPN\easy-rsa\pki\dh.pem |
C:\Program Files\OpenVPN\easy-rsa\pki\issued\server.cert |
C:\Program Files\OpenVPN\easy-rsa\pki\private\server.key |
Windowsファイアウォールのルールを設定する
OpenVPNサーバーの設定が完了したら、次はサービスにアクセスできるようにする必要があります。Windowsファイアウォールを設定してOpenVPNトラフィックを許可する必要があります。
1. 以下のnetsh
コマンドを実行して、Windowsファイアウォールを通過するトラフィックを許可します。
- Windowsファイアウォール(
firewall
)を構成するために、ルール名OpenVPN
(add rule name="OpenVPN"
)を追加します。 - このルールを使用して、すべてのローカルIPアドレス(
localip=any
)と外部デバイス(remoteip=any
)が通信できるようにします。 - サーバーが開くポート(
localport=1194 remoteport=0-65535
)と使用するプロトコルの種類(protocol=UDP
)を指定します。

2. 好きなテキストエディタでC:\Program Files\OpenVPN\config-auto\server.ovpnファイルを開き、以下のように内容をプレビューします。
.ovpnファイルは、OpenVPNの設定ファイルです。暗号化や認証キーなど、OpenVPNがVPNに接続するために必要なすべての情報が含まれています。このチュートリアルでは、VPNサーバーとの接続を設定するために、.ovpnファイルが必要です。

最後に、以下のコマンドを実行してOpenVPNサービスを再起動し、変更を適用します。

クライアントの設定
OpenVPNでは、VPNに接続する任意のマシンをクライアントと呼びます。このデモでは、Windows 10を使用してサーバーに接続します。
1. 「サーバーにOpenVPNをインストールする」****セクションで行ったように、クライアントにOpenVPNをインストールします。
2. サーバーから以下のファイルをクライアントのC:\Program Files\OpenVPN\configフォルダにコピーします。
C:\Program Files\OpenVPN\easy-rsa\pki\ca.cert |
C:\Program Files\OpenVPN\easy-rsa\pki\issued\client.crt |
C:\Program Files\OpenVPN\easy-rsa\pki\issued\client.key |
3. 最後に、C:\Program Files\OpenVPN\config\client.ovpnファイルを開き、以下の内容でファイルを埋めます。 YOUR_OPENVPN_IP
を実際のWindows ServerのIPアドレスに置き換えてください。
クライアントのVPN接続をテストする
サーバーとクライアントのインストールと設定が完了したら、それらの間の接続が正常に機能するかどうかをテストする時です。
Windows 10のクライアントで、OpenVPN GUIを実行します。

通知領域のOpenVPNステータスアイコン(鍵のアイコンを持つモニター)を右クリックし、接続を選択してクライアントをVPNに接続します。
クライアントが接続されると、OpenVPNステータスアイコンが緑色に変わり、以下のようなvpn is now connectedの通知が表示されます。

二重チェックとして、割り当てられたIPアドレス(10.8.0.2
)を使用してVPNサーバーにping
を送信できます。
以下の出力は、VPNが意図した通りに機能していることを確認しています。

結論
このチュートリアルでは、Windows ServerにOpenVPNをインストールするための適切な手順を学びました。また、OpenVPNサーバーとクライアントをOpenVPN設定ファイル(.ovpn)を使用して構成する方法も学びました。現時点では、安全にウェブを閲覧するためにインターネット接続を保護するために使用できる、完全に機能するVPNサービスを持っています。
今、この新たな知識を使って、AWS VPC VPN Gatewayを使用してAmazon AWS VPCへのVPN接続を拡張するのはどうでしょうか?